我正在运行
linearmodels包中的
PanelOLS
。
通常情况下,一些观察结果会被遗漏。当我在
R
中运行等效命令时(我认为等效命令是 plm
),我得到以下结果:
Unbalanced Panel: n=11, T=17-61, N=531
因此面板不平衡:有些人只拥有 17 个时间段的完整数据,而另一些人则拥有更多时间段的完整数据。但回归仍然存在。
等效的Python命令是:
import linearmodels.panel as pnl
model = pnl.PanelOLS.from_formula(formula, data=src)
这给了我一个警告:
输入包含缺失值。删除缺少观察值的行。
还有一个错误:
MyPythonInstallation\lib\site-packages\linearmodels\panel\model.py in _validate_data(self)
207
208 if matrix_rank(x) < x.shape[1]:
--> 209 raise ValueError('exog does not have full column rank.')
210 self._constant, self._constant_index = has_constant(x)
211
ValueError: exog does not have full column rank.
我该如何继续我的回归?
(我意识到OP不再致力于此,但以防万一其他人需要它......)
当我马虎时,另一个可能的原因在背后咬我(抱歉,我的意思是快速和高效)——检查您是否包含了其他变量的线性组合(例如滞后和差异)。
我也有同样的错误。就我而言,我正在使用的数据帧的一列被视为“对象”数据类型。将该列更改为“浮点”数据类型解决了我的问题。
由于OP不再处理该问题,我的答案无法得到认证。但就我而言,公式由几列组成,而不是数据中的所有列,这导致了错误。
我能够通过从公式中未使用的数据中删除其他列来解决这个问题。