我希望用Python构建一个FOR循环程序,以迭代方式运行数百个OLS回归。我有一个包含24个观察值和701个变量的数据框。”Y'为因变量,所有其他为自变量(X1至X700)
我的目标是运行700个简单的回归——在每个X上回归Y
这是我当前使用的代码:
import pandas as pd
import numpy as np
import statsmodels.formula.api as sm
df = pd.read_csv(r'file_location\regression_data.csv') # input dataset that contain 701 variables and 24 observations
list_iv # this list contains names of all the 700 independent variables (X1 to X700). Read from a .csv file
list_dsn # this contains list of strings (v1, v2, v3…..v700). Read from a .csv file
gbl = globals()
for i, k in zip(list_iv, list_dsn):
gbl['output_'+k] = sm.ols('Y ~ i',data=df).fit()
运行上述代码时,出现以下错误:
raise PatsyError(msg, origin)
PatsyError: Number of rows mismatch between data argument and i (24 versus 1)
DR ~ i
^
我是不是遗漏了什么?请帮忙
请注意-在每次迭代中,我将分别使用output_k.params、output_k.pvalues和output_k.bse创建一个包含回归系数、p值和标准误差的数据帧。所有这700个数据帧将被连接起来,以创建包含700个观测值的最终数据帧
目前没有回答
相关问题 更多 >
编程相关推荐