ValueError:exog没有完整的列排名

时间:2017-10-16 16:15:10

标签: python linearmodels

我正在使用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.

如何进行回归?

2 个答案:

答案 0 :(得分:1)

(我意识到OP不再为此工作,但以防万一其他人需要它...)

当我马虎时,另一个可能在我后面咬我的原因(对不起,我的意思是快速高效)-检查是否包含了其他变量的线性组合变量(例如,滞后和差异)

答案 1 :(得分:0)

我有同样的错误。在我的情况下,我使用的数据框的列之一被视为“对象”数据类型。将该列更改为“ float”数据类型可以为我解决问题。