Ich schätze ein Fixed-Effects-Modell auf räumlichen Panel-Daten mit dem R-Paket "splm". Das stark ausgewogene Panel besteht aus 77 Landkreisen und 31 Beobachtungsjahren. Die abhängige Variable ist County-weise Erträge einer Ernte. Wenn ich Rendement-Zeit-Trend und individuelle Fixed-Effekte zurückgebe, bekomme ich den Fehler, dass sich Objektlängen unterscheiden, obwohl ich ein perfekt ausgeglichenes Panel habe und der gleiche Satz von Counties verwendet wird, um die räumliche Gewichtsmatrix zu erstellen.R räumliche Panel-Fixed-Effekte: Fehler in der lag.listw, Objektlängen sind unterschiedlich
Unten habe ich einen "Panel-Datensatz" erstellt, der meinen Daten ähnelt, und auch die Längen- und Breitengraddaten für die Counties mit Zufallszahlen generiert. Sogar mit diesen zufälligen Daten tritt derselbe Fehler auf.
##generated panel data for yield
set.seed(97531)
yield.normal <- as.data.frame(matrix(rnorm(2387*1, mean=1.92, sd=0.5), ncol=1))
colnames(yield.normal) = "yield"
yield.normal$panelid = with(yield.normal, seq(1:77))
yield.normal$timeid = with(yield.normal, seq(1:31))
yield.normal$county = with(yield.normal, as.factor(seq(1:77)))
yield.normal$countyname = paste0("county",yield.normal$county)
yield.normal$trnd = with(yield.normal, seq(1:31))
#generate coordinates of the 77 Oklahoma counties
latitude.county = sample(36.83013180:33.90212700, size = 77, replace = T)
longitude.county = sample(-94.81059550:-102.62162110, size = 77, replace = T)
lat.long.data = cbind2(longitude.county,latitude.county)
colnames(lat.long.data)=c("lon","lat")
#Create spatial weight matrix
distNeighbr = spdep::dnearneigh(lat.long.data, d1=0, d2=5)
wtmat1 = spdep::nb2listw(distNeighbr, style='W')
#Estimate the spatial fixed-effects model
spatial.FE.model = splm::spml(yield~trnd, data = yield.normal, index = c("timeid", "panelid"), listw = wtmat1, model = "within", effect ="individual", method = "eigen")
Fehlerbericht:
Fehler in lag.listw (listw, u, zero.policy = zero.policy): Object Längen unterscheiden
Ausgabe aus: traceback()
ist wie folgt:
8: stop ("Objektlängen unterscheiden sich")
7: lag.listw (listw, u, zero.policy = zero.policy)
6: Fun (X [[i]], ...)
5: lapply (X = ans [Index], FUN = FUN, ...)
4: tapply (y, inde, Funktion (u) lag.listw (listw, u, zero.policy = zero.policy), vereinfachen = TRUE)
3: fehlende oder (Tapply (y, inde, Funktion (u) lag.listw (listw, u, zero.policy zero.policy), vereinfacht = TRUE))
2: spfeml (Formel = Formel, Daten = Daten, Index = Index, Listw = Liste, Listw2 = Listw2, na.action, Modell = Modell, Effekte = Effekte, cl = cl, ...)
1: splm :: spml (Ausbeute ~ trnd + as.factor (Grafschaft) - 1, Daten = yield.normal, Index = c ("timeid", "panelid"), listw = wtmat1, Modell = "innerhalb", effect = "individuell", method = "eigen")
Bitte helfen Sie mir, dieses Problem zu lösen.