我有面板数据,需要应用 spml,但我一直遇到同样的错误,尽管我尝试过,但我无法克服它。
基本上,我有一个由 36 个单位和 261 天的观察组成的平衡小组。我创建了一个包含6列的data.frame(名为aaa)
银行、日期、CDS、X1、X2、X3
和9396行(如果考虑列标签,则为 9397)。
这里: * 单位和日期是我的索引 * CDS 是因变量 * X1、X2 和 X3 是自变量。
- 银行是一个具有36 个级别的因素,
- Date 是一个整数向量int [1:9396],
- CDS、X1、X2 和 X3 都是数字向量num [1:9396]。
我还创建了一个“矩阵”类和结构 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”的作者指出,panel ids的设置方式有误,空间单位一定是较慢 (1,1,1,.....; 2,2,2...;....;77,77,77,....) 并且时间 id 必须更快 (1,2 ,3,....,31;....; 1,2,3...31) 的两个。在相应地设置数据后,我可以得到结果“。我只是不明白它是什么意味着越来越慢。如果这意味着数据应该按空间单位而不是按时间排序,那么我的数据已经按这种方式排序了)。