我正在尝试对面板数据进行多元回归分析。我需要使用不同的因变量运行数百个回归,并将所有结果存储在数据结构中,然后我可以查看。我正在使用Python并使用statsmodels运行回归,但不使用公式,因为它们使得更难循环遍历因变量。我正在尝试并且未能使用linearmodels包调整固定效果。
似乎我的问题是我的数据集非常稀疏;它包含很多'NaN'。我理解它的方式,pandas包括一个数据结构data.set_index('time','entity'),我可以用它来运行面板数据回归,控制固定效果。但是当我通过这个函数发送我的数据集时,它似乎会自动丢弃整个数据集中每行都有一个'NaN'的行,它会丢弃每一行,然后退出程序。
当使用statsmodels的回归时,我可以在回归函数OLS(y,x,missing ='drop')中删除缺失值。有没有办法在控制固定效果的同时做到这一点?或者在Python中非常稀疏的数据集中控制固定效果的其他方法?或者我错过了什么?
一个例子,假设dataSet是一个DataFrame:
dataSet = {'entity': ['northpole', 'northpole', 'northpole', 'southpole', southpole', 'southpole'], 'time': [2014, 2015, 2016, 2014, 2015, 2016], 'col1': [1, 3, 5, 3, 1, -1], 'col2' : [1, 4, 7, 4, 1, -2], 'col3': [NaN, NaN, 4, 5, 3, 0], 'col4': [4, 5, NaN, NaN, NaN, NaN]}
dataSetNew = dataSet.set_index('entity', 'time'])
variable = PanelOLS(dataSetNew.col1, dataSetNew.col2, entity_effects = True, time_effects = True)
程序没有完成计算dataSetNew。它给我以下错误消息:
/home/user/anaconda3/lib/python3.6/site-packages/linearmodels/utility.py:476: MissingValueWarning:
Inputs contain missing values. Dropping rows with missing observations.
warnings.warn(missing_value_warning_msg, MissingValueWarning)
之后退出。