On Thu, 30 Sep 2010, Danlin Yu wrote:


Jorge:

From what I see on your code, I would suspect that you kind of confuse the bandwidth with numbers of nearest neighbor. In your code, you use 20, and I assume that meant the 20 nearest neighbors that you want for GWR calibration. Yet you didn't specify the adapt parameter in the code, which make the code think 20 is a distance value. I am not sure how the distance of 20 with longitude and latitude values would be, but I suspect this might be the cause.

See ?spDistsN1, the distances are in kilometers.

In addition, in the coordinates specification, longitude shall be the x, and latitude the y.


Exactly!

Try:

test=gwr(y~x1+x2,data=yourdata,cbind(longitude, latitude),adapt=0.05,gwr.bisquare,longlat=T)

to see what happens (I use 0.05 just for testing purpose, which means 5% of the total sample as the nearest neighbor for local estimation. Since you have more than 10,000 samples, the value will result in a local sample (local nearest neighbors) of 500. If you wan to try 20, then you can probably use 0.002 for the adapt parameter).


I agree that adapt= may here be a better choice than a fixed bandwidth. I do not, however, think that local R2 will be available for this number of data points, as the hat matrix would be too big for memory. Please read up on the difference between fit points and data points, and consider fitting a model with hat matrix on a subset of the data, then using the fittedGWRobject= argument to provide the elements needed to get to local R2 (which is not the R2 of each local fit, it seems). Have you tried fitting in GWR3, SAM, or ArcGIS?

Hope this helps,

Roger

Hope this helps.

Cheers,
Dr. Danlin Yu



On 2010-9-30 12:53, Jorge Fernando Saraiva de Menezes wrote:
Dear list,

When I run a gwr using a model with two independent variables my local R2
only has NA values. I've read in some topic that this is problably because
the function cannot estimate localR2 correctly.
I tryed to get the same result with the columbus data, but was not able to.
Does anyone know what usually cause this? maybe a small or large bandwdth?
And a side question, when longlat=T,and your coordinates are in WGS84 the
values of bandwidth must be given in degrees?


I'm using R2.10.1 and package spgwr version 0.6-2. i give a summary of my
variables below. also my data is information collected in 10433 islands of
the American continent, which mean that I have distances between my points
varying from few meters to thousands of kilometers. I use a bandwidth of 20,
and used the bisquare method.

summary of my data
             y          x1            x2
Min.      0.00    1.310e-02   4.254e-02
1st Qu.  32.00  8.319e-01   1.628e+00
Median   47.00  1.696e+00  2.005e+01
Mean     84.25   2.043e+02 1.329e+02
3rd Qu. 143.00   5.822e+00 1.758e+02
Max.    425.00   5.152e+05  3.114e+03

code
test=gwr(y~x1+x2,,cbind(latitude,longitude),20,gwr.bisquare,longlat=T)

Thanks in advance,
Jorge Menezes

        [[alternative HTML version deleted]]

_______________________________________________
R-sig-Geo mailing list
R-sig-Geo@stat.math.ethz.ch
https://stat.ethz.ch/mailman/listinfo/r-sig-geo



--
Roger Bivand
Economic Geography Section, Department of Economics, Norwegian School of
Economics and Business Administration, Helleveien 30, N-5045 Bergen,
Norway. voice: +47 55 95 93 55; fax +47 55 95 95 43
e-mail: roger.biv...@nhh.no

_______________________________________________
R-sig-Geo mailing list
R-sig-Geo@stat.math.ethz.ch
https://stat.ethz.ch/mailman/listinfo/r-sig-geo

Reply via email to