我使用R程序包“splm”估计了空间面板数据上的固定效应模型。强大的平衡小组由77个县和31年的观察组成。因变量是一个作物的郡产量。当我随着时间的推移趋势和单个固定效应回归时,即使我有完美平衡的面板并且使用相同的一组县来创建空间权重矩阵,我也会得到对象长度不同的错误。R空间面板固定效应:lag.listw中的错误,对象长度不同
下面我生成了一个类似于我的数据的“面板数据集”,并且还生成了随机数字的县的经度和纬度数据。即使使用这个随机数据,也会发生相同的错误。
##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")
错误报告:对象 长度不同于
输出::
在lag.listw(listw,U,zero.policy = zero.policy)错误
traceback()
是如下:8:停止(“物体长度不同”)
7:lag.listw(listw,U,zero.policy = zero.policy)
6:FUN(X [[I]],...)
5:lapply(X = (y,inde,function(u)lag.listw(listw,u,zero.policy = zero.policy),simplify = TRUE )
3:不公开(tapply(Y,印出,函数(U)lag.listw(listw,U,zero.policy zero.policy),简化= TRUE))
2:spfeml(formula = formula,data = data,index = index,listw = listw,listw2 = listw2,na.action,model = model,effects = effects, cl = cl,...)
1:splm :: spml(yield_trnd + as.factor(county)-1,data = yield.normal,index = c(“timeid”,“panelid”),listw = wtmat1,model = “within”,effect =“individual”,method =“eigen”)
请帮我解决这个问题。