python - Python - 为相同/或不同数据帧/秒内的多个回归创建一个 For 循环
问题描述
希望有人可以帮助我,这是我在这里的第一个问题。
我有一个数据框,其中日期(索引)作为 Y 轴,X 轴(列)包含所有因变量(目标变量)以及 X 轴(列)上的 4 个回归量(自变量),例如:
Date XYZ ABC DEF 'regressor1' 'regessors2' 'regressor3' 'regressor4'
03/01/2020 1 1.5 1.6 5.3 4.3 3.1 3.3
02/01/2020 0.8 1.3 1.3 5.2 4.2 3.7 3.4
31/12/2019 0.7 1.1 1.4 5.11 4.1 3.8 3.09
有 289 个因变量(XYZ、ABC、DEF ......“289th V”)和 4 个回归量。我有数据框,其中 DV 和 IV 是分开的,也有一个。
我需要创建一个 For 循环,该循环采用目标变量的第一列并对所有 4 个回归量进行回归,然后采用目标变量的第二列并回归,然后是第三列,以此类推,直到第 289 个目标变量。
作为输出,我需要一个截取列表,最好采用这种格式:
Date "INTERCEPT"
03/01/2020 1.3
02/01/2020 0.8
31/12/2019 0.7
""""
""""
""""
"289th date" 1.3
以及每个目标变量的常规回归输出(摘要),例如:
## # A tibble: 4 x 5
## term estimate std.error statistic p.value
## <chr> <dbl> <dbl> <dbl> <dbl>
## 1 (Intercept) 0.00112 0.00100 1.12 0.265
## 2 mkt_excess 0.888 0.0234 37.9 0
## 3 smb 0.0301 0.0345 0.873 0.383
## 4 hml -0.110 0.0357 -3.07 0.00227
我需要的最重要的事情是每个变量的显着性和截距(残差)系数。
对不起,如果这很长,如果有人感兴趣,它类似于 Fama-French 回归,但使用基金回报来理解一些实证研究的相关性。
我有两种尝试方法:
fundlist = []
for x in range(1, len(yycolumns)):
fundlist[x] = sm.ols(formula='yy[x].iloc[:,0] ~ X_1', data=yycolumns[x]).fit()
x2 = model5.params['const']
fundlist.append(x)
fundlist.append(x2)
return
这个只是运行,但从不显示任何内容....
第二种方法:
fundlist = []
x = 0
for x in enumerate(yycolumns):
model5 = smf.OLS(yy.iloc[:,int(x)], carhart4).fit()
x2 = model5.params['const']
fundlist.append(x)
fundlist.append(x2)
x+=1
return
这给出了这个错误:
TypeError Traceback (most recent call last)
<ipython-input-40-56e49c1e4c74> in <module>
6 for x in enumerate(yycolumns):
----> 7 model5 = smf.OLS(yy.iloc[:,int(x)], carhart4).fit()
8 x2 = model5.params['const']
9 fundlist.append(x)
TypeError: int() argument must be a string, a bytes-like object or a number, not 'tuple'
任何帮助将非常感激。
解决方案
推荐阅读
- node.js - 您如何将某些内容传递给路由器?
- python - 将列表中的最后一个元素移动到新列表
- javascript - 如何使用 o.js 同时执行多个查询
- r - 从 zip 文件下载非常大(1400 万行)csv 的快速方法?解压缩和 read_csv 和 read.csv 永远不会停止加载
- ruby-on-rails - 如何为通过 OmniAuth 的所有请求设置自定义标头?
- django - Django设置默认空url
- python - 随机点击文本文件中的链接
- wso2 - 将根上下文定向到 Docker 上的 Developer Portal WSO2?
- javascript - Cheerio 从 .text() 获取包含中断和 H 标记的内容
- laravel - 如何在控制器中使用 Laravel 中的自定义保护登录用户