Danlin and Roger, thanks for the answers. My intention was to use a fixed bandwidth , but as you told, I probably have a too small bandwidth since most of my sum of weigths are 1. I thought that by using a bandwidth of 20, it would mean 20 degrees. I'm also going to try fitting the model with a small subset and then applying it to the rest of my data. I tried fitting the model with SAM and ARCGIS and both crash because of memory so I might have memory problems as you told. About using adaptative kernel, I also think it would be best for the regression to use since island density changes in space ,but I'm afraid that this might not give the answer that I want, because a maximum distance to other islands has a different meaning for number of species (my dependent variable) than a maximum number of islands. Also I will correct the latitude-longitude error
Thanks for your time, Jorge 2010/10/1 Roger Bivand <roger.biv...@nhh.no> > On Fri, 1 Oct 2010, Roger Bivand wrote: > > 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? >> > > My analysis was incorrect, and the NA localR2 are coming from the very low > sums of weights for each observation: > > library(spgwr) > res.adpt <- gwr(PctBach ~ TotPop90 + PctRural + PctEld + PctFB + PctPov + > PctBlack, data=gSRDF, adapt=0.01) > summary(res.adpt$SDF) > res.adpt <- gwr(PctBach ~ TotPop90 + PctRural + PctEld + PctFB + PctPov + > PctBlack, data=gSRDF, adapt=0.001) > summary(res.adpt$SDF) > > With sums of local weights of 1, so only including the i'th observation in > its own local regression, the localR2 suffers numerical meltdown in several > elements. The hat matrix is not required to compute the localR2 if the data > points are the fit points. In your case, and with a 20km fixed bandwidth, > you most likely only have the i'th observations in their own local > regressions. > > Hope this helps more, > > Roger > > > >> 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 > > [[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