我有面板数据,需要应用spml,但我一直遇到同样的错误,尽管我尝试了,但我无法克服它。
基本上,我有一个由36个单位和261天观察组成的平衡小组。 我用 6 列创建了 data.frame (名为 aaa )
银行,日期,CDS,X1,X2,X3
和 9396 行(如果考虑列标签,则为9397)。
下面: *单位和日期是我的索引 * CDS是因变量 * X1,X2和X3是自变量。
我还创建了一个类“matrix”和结构num [1:9396,1:9396]的listw对象(名为W2)。
我通过使用以下代码将 Kronecker 应用于初始矩阵W来获取我的listw对象:
(Kronecker (diag(261), W)
然后我以这种方式表达了“公式”:
fm <- (Cds) ~ (X1) + (X2) + (X3)
然后,应用了splm:
spmltest<-spml(fm, data = aaa, index = c("Bank","Date"), listw = w2)
这是我得到的错误:
lag.listw(listw,u,zero.policy = zero.policy):对象出错 长度不同。
我试图检查但在我看来,物体实际上并没有不同的长度。
知道我错的地方吗?任何帮助或建议将不胜感激。谢谢。
(Ps:我知道我应该指定模型(如果是固定的或随机的),但我认为这不会解决这个具体问题。如果我错了,请告诉我)
(Pss:我还发现有人已经问过同样的问题并以这种方式解决了:“软件包”splm“的作者指出,面板ID的设置方式存在错误。单位必须较慢(1,1,1,.....; 2,2,2 ...; ....; 77,77,77,....),时间id必须更快( 1,2,3,....,31; ....; 1,2,3 ... 31)两者。相应地设置数据后,我可以得到结果“。 我只是无法理解它的意思越来越慢。如果这意味着数据应按空间单位而不是按时间排序,我的数据已按此方式排序。)
答案 0 :(得分:0)
我的模型中遇到了同样的问题。
我通过“id”和“time”设置数据库的前两列,解决了(特别感谢Millo Giovanni)。您也不需要继续使用kronecker产品,R会在空间矩阵W中进行扩展。
并且不要忘记以相同的顺序识别数据,“id”和“time”由index = c(“id”,“time”)识别。
有我的代码:
SEM&lt; - spml(公式= gdp~oivrev,data = data,index = c(“id”,“year”),listw = W,model =“within”,lag = F,spatial.error = “b”)
我希望它可以帮到你。
答案 1 :(得分:0)
我的经验是,当我使用包含NA值的面板时遇到相同的错误。 当我用NA删除数据时,代码工作正常。 祝你好运!
答案 2 :(得分:0)
您需要设置index = Null,因为您使用的是Kronecker产品