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