【问题标题】:How to extract a particular value from the OLS-summary in Pandas?如何从 Pandas 的 OLS-summary 中提取特定值?
【发布时间】:2016-05-29 09:17:13
【问题描述】:

是否有可能从 pandas 的线性回归摘要中获得其他值(目前我只知道一种获取 beta 和截距的方法)?我需要得到 R 平方。 这是手册的摘录:

In [244]: model = ols(y=rets['AAPL'], x=rets.ix[:, ['GOOG']])

In [245]: model
Out[245]: 
-------------------------Summary of Regression Analysis---------------------   ----
Formula: Y ~ <GOOG> + <intercept>
Number of Observations:         756
Number of Degrees of Freedom:   2
R-squared:         0.2814
Adj R-squared:     0.2805
Rmse:              0.0147
F-stat (1, 754):   295.2873, p-value:     0.0000
Degrees of Freedom: model 1, resid 754
-----------------------Summary of Estimated Coefficients------------------------
      Variable       Coef    Std Err     t-stat    p-value    CI 2.5%   CI 97.5%
--------------------------------------------------------------------------------
      GOOG     0.5442     0.0317      17.18     0.0000     0.4822     0.6063
 intercept     0.0011     0.0005       2.14     0.0327     0.0001     0.0022
---------------------------------End of Summary---------------------------------

谢谢

【问题讨论】:

    标签: pandas linear-regression


    【解决方案1】:

    Docs handling the results of the regression - 这将允许您从回归结果中提取多个值:

    # Given
    model = ols(y=rets['AAPL'], x=rets.ix[:, ['GOOG']]).fit()
    

    r-squared的情况下使用:

    # retrieving model's r-squared value
    model.rsquared
    

    如果是p-values,请使用:

    # return p-values and corresponding coefficients in model
    model.pvalues
    

    更多参数(fvaluesess)请参考doc

    【讨论】:

      【解决方案2】:

      尝试:

      print model.r2
      

      例如:

      import pandas as pd
      from pandas import Panel
      from pandas.io.data import DataReader
      import scikits.statsmodels.api as sm
      
      symbols = ['MSFT', 'GOOG', 'AAPL']
      
      data = dict((sym, DataReader(sym, "yahoo")) for sym in symbols)
      
      panel = Panel(data).swapaxes('items', 'minor')
      
      close_px = panel['Close']
      
      # convert closing prices to returns
      rets = close_px / close_px.shift(1) - 1
      model = pd.ols(y=rets['AAPL'], x=rets.ix[:, ['GOOG']])
      print model.r2
      

      文档:http://statsmodels.sourceforge.net/stable/index.html

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-13
      • 2021-12-22
      • 1970-01-01
      • 1970-01-01
      • 2020-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多