【问题标题】:How to change params function names in statsmodels如何更改 statsmodels 中的参数函数名称
【发布时间】:2022-06-23 05:42:14
【问题描述】:

我想看看在使用“params”作为截距和自变量时是否有办法更改输出名称。目标是将其放入数据框中以供以后使用。我知道您可以在使用时更改 xnames model.summary(yname=\"Status\", xname=[\'Alpha\', \'Beta\'], title=\'Regression\') 但我只想要参数而不是整个摘要。

这是输出

Intercept    125.682063
SP50          -0.288299
dtype: float64 

这是我想将其更改为

Alpha        125.682063
Beta         -0.288299
dtype: float64

这是代码

df = pd.read_excel(\"dataset\\Special_Proj.xlsx\") 
df[\'Date\'] = pd.to_datetime(df[\'Date\'], format=\'%m/%d/%y\')
tickers = [\'FDX\', \'BRK\', \'MSFT\', \'NVDA\', \'INTC\', \'AMD\', \'JPM\', \'T\', \'AAPL\', \'AMZN\', \'GS\']

def rolling_regression_stats():
    first52 = df[(df[\'Date\'] <= \'2000-12-22\')]

    for t in tickers:
        model = smf.ols(f\'{t} ~ SP50\', data=first52).fit()
        coef_and_intercept = model.params
        print(coef_and_intercept,\'\\n\\n\')
        

rolling_regression_stats()

总的来说,这就是我想要实现的目标。

    标签: python pandas scikit-learn statistics statsmodels


    【解决方案1】:

    params 访问器返回 pandas.Series,因此您可以像通常使用系列一样使用它。特别是在您的代码中,您需要做的就是使用这一行:

    coef_and_intercept = model.params.set_axis(['Alpha', 'Beta'])
    

    【讨论】:

    • 使用重新索引时,它确实更改了名称,但我得到了 NaN 值
    • 编辑了答案,应该改用set_axis
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-20
    • 1970-01-01
    • 2018-06-10
    • 2016-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多