Python回归FOR循环中的行不匹配错误

2024-09-27 00:11:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望用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个观测值的最终数据帧


Tags: ofcsv数据代码importdfoutputdata

热门问题