python - Python回归FOR循环中的行不匹配错误
问题描述
我正在寻找在 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 个观测值的最终数据帧。
解决方案
推荐阅读
- ios - 为什么 swift 无法在 ForEach 循环中使用 array[index+1] 渲染视图?
- twitter-bootstrap - 如何将 Bootstrap 框架限定为仅在一个 css id 下“应用”?
- c - 与硬编码输入相比,使用 fgets 从用户获取密钥时无法打印密钥流
- r - R 中 SF 库中的 St_perimeter
- javascript - 为什么我的 html 元素值对象不是数组,为什么它们彼此不等价?
- json - 将 GeoJSON 文件导入 React-Leaflet
- android - RecyclerView在搜索后使用onClick获取错误的位置
- flask - 如何在 Heroku 上部署 Python 包装器?
- git - 更改 git 子模块
- sql - Python 线程和 SQLite 数据库