I'm using the Huff model for some analysis I'm doing. For those not aware, the Huff model is a probabilistic model for retail trade area analysis.
H_ij is the probability that a person at location
i will visit a place at location
A_j is the attractiveness of location
D_ij is the distance the person at location
i is from location
\alpha is the attractiveness enhancement parameter
\beta is the distance decay parameter
I have a dataset comprised of over two million elements. For each element, I know the person's ZIP code as well as the ZIP code they visited. So, "locations" in this context of the Huff model are ZIP codes. I'm using the number of people that visited a ZIP code as the attractiveness of the location (i.e.,
What I need is a method for estimating the two parameters,
\beta, from data. How can I determine what these parameters should be?
After thinking about this, I realized that this is really an optimization problem. I think the approach I'm going to take is using a metaheuristic global optimization algorithm:
- Search will select the
\betaparameters randomly, according to its rules.
- For each entry in the dataset, I select a random number,
r. I compute the Huff probability,
H, that the person in the entry visited the ZIP code where I know they visited. If
r < H, then we got it right.
- So, the "fitness" for a particular set of parameters,
\beta, is the number of cases we get right. This is therefore a maximization problem.
- We run this lots of times (because each search is stochastic) with reasonable ranges for
0 < \alpha, \beta <= 20), and the winning
\betaare the ones that produce the maximal fitness.
Does this seem like a reasonable solution?