jer*_*eyz 7 python pandas statsmodels
我正在尝试对 Pandas Dataframes 运行面板回归:
目前我有两个数据框,每个数据框包含 52 行(日期)* 99 列(99 个股票):带有数据表示的 Markdown 文件
运行时:
est=sm.OLS(Stockslist,averages).fit()
est.summary()
Run Code Online (Sandbox Code Playgroud)
我得到 ValueError: 形状 (52,99) 和 (52,99) 未对齐:99 (dim 1) != 52 (dim 0)
有人可以指出我做错了什么吗?该模型只是 y(i,t)=x(i,t)+误差项,因此没有截距。但是我想在未来添加时间效果。
亲切的问候,杰伦
尝试以下操作 - 我已从上述链接复制了股票数据并为该x列添加了随机数据。对于面板回归,您需要评论中提到的“MultiIndex”。
df = pd.DataFrame(df.set_index('dates').stack())
df.columns = ['y']
df['x'] = np.random.random(size=len(df.index))
df.info()
MultiIndex: 100 entries, (2015-04-03 00:00:00, AB INBEV) to (2015-05-01 00:00:00, ZC.PA)
Data columns (total 2 columns):
y 100 non-null float64
x 100 non-null float64
dtypes: float64(2)
memory usage: 2.3+ KB
regression = PanelOLS(y=df['y'], x=df[['x']])
regression
-------------------------Summary of Regression Analysis-------------------------
Formula: Y ~ <x> + <intercept>
Number of Observations: 100
Number of Degrees of Freedom: 2
R-squared: 0.0042
Adj R-squared: -0.0060
Rmse: 0.2259
F-stat (1, 98): 0.4086, p-value: 0.5242
Degrees of Freedom: model 1, resid 98
-----------------------Summary of Estimated Coefficients------------------------
Variable Coef Std Err t-stat p-value CI 2.5% CI 97.5%
--------------------------------------------------------------------------------
x -0.0507 0.0794 -0.64 0.5242 -0.2063 0.1048
intercept 2.1952 0.0448 49.05 0.0000 2.1075 2.2829
---------------------------------End of Summary---------------------------------
Run Code Online (Sandbox Code Playgroud)
正如您上面提到的,我按以下方式更改了代码:
运行回归并添加时间效应
<class 'pandas.core.frame.DataFrame'>
MultiIndex: 5096 entries, (2015-04-03 00:00:00, AB INBEV) to (25/03/16, ZC.PA)
Data columns (total 2 columns):
indvalues 5096 non-null float64
avgvalues 5096 non-null float64
dtypes: float64(2)
memory usage: 119.4+ KB
from pandas.stats.plm import PanelOLS
regression=PanelOLS(y=df["indvalues"], x=df[["avgvalues"]], time_effects=True)
Run Code Online (Sandbox Code Playgroud)现在回归效果非常好!谢谢斯特凡·詹森
| 归档时间: |
|
| 查看次数: |
14441 次 |
| 最近记录: |