Col*_*uck 2 python linear-regression dataframe pandas
我的Pandas OLS代码行正常运行,但是无法拉出要在其他相关函数中使用的参数:
ES_15M_LR = pd.ols(y = ES_15M_Last_300_Periods['Close'], x = ES_15M_Last_300_Periods['Date'])
Run Code Online (Sandbox Code Playgroud)
上面的代码很好用,但是当我尝试从中提取参数时,我得到了错误:
AttributeError: 'OLS' object has no attribute 'params'
Run Code Online (Sandbox Code Playgroud)
例如,我尝试过:
ES_15M_LR.params
Run Code Online (Sandbox Code Playgroud)
以及:
ES_15M_LR.params.x
Run Code Online (Sandbox Code Playgroud)
...拉x系数(斜率)。那将得到与上述相同的错误。但是,我可以看到统计数据按预期运行:
我只是似乎无法自动提取参数,而我需要将其作为其他函数的变量。有人可以协助吗?
首先,强烈建议您使用statsmodels,因为...
pandas.stats.ols,pandas.stats.plm并且pandas.stats.var例程已弃用,并将在以后的版本中删除(GH6077:MIGRATE:将统计代码移至statsmodels /在熊猫中弃用#6077)
关于param访问,
import numpy as np
import pandas as pd
import statsmodels.api as sm
df = pd.DataFrame(np.random.randint(0,100,size=(100, 2)), columns=list('AB'))
model = sm.OLS(df['A'], df['B'])
fit = model.fit()
print fit.params
B 0.724865
print fit.summary()
OLS Regression Results
==============================================================================
Dep. Variable: A R-squared: 0.533
Model: OLS Adj. R-squared: 0.528
Method: Least Squares F-statistic: 113.0
Date: Thu, 16 Feb 2017 Prob (F-statistic): 4.66e-18
Time: 10:27:13 Log-Likelihood: -509.62
No. Observations: 100 AIC: 1021.
Df Residuals: 99 BIC: 1024.
Df Model: 1
Covariance Type: nonrobust
==============================================================================
coef std err t P>|t| [0.025 0.975]
------------------------------------------------------------------------------
B 0.7249 0.068 10.629 0.000 0.590 0.860
==============================================================================
Omnibus: 3.447 Durbin-Watson: 1.724
Prob(Omnibus): 0.178 Jarque-Bera (JB): 2.856
Skew: 0.301 Prob(JB): 0.240
Kurtosis: 2.432 Cond. No. 1.00
==============================================================================
Run Code Online (Sandbox Code Playgroud)