I think Fortheringham and collegues are using the cross-validation to
obtain an optimal number of nearest neighbor to replace the optimal
bandwidth. This way, every data point will have the same number of
observations participating the locally weighted regression.
I cannot actually implement the code in R myself, but I would like to
list my understanding of using the cross-validation procedure to obtain
the optimal number of nearest neighbors. If I am wrong in any aspect,
please correct me:
1. Choose the weighting scheme (bi-squre, or similar ones like
tri-cube);
2. Set the minimum number of nearest neighbor as the number of
explanatory variables plus 2, and the maximum number as the number of
observations (I guess for large number of observations, this may be very
computational intensive);
3. Loop through the minimum to the maximum, and obtain a CV score for
each number of nearest neighbor;
4. The smallest CV yields the optimal number of nearest neighbor.
I hope this will help.