繁体   English   中英

使用 statsmodels 从 OLS 模型中获取转换后的 X 值

[英]Getting transformed X values from OLS model using statsmodels

我正在尝试进行线性回归。 根据结果​​,我想将每个x与其自己的估计系数相乘: x i · β i

但是,我正在对x i进行很多转换。

例如:

import statsmodels.api as sm
import statsmodels.formula.api as smf
import numpy as np

def log_plus_1(x):
    return np.log(x + 1.0)

df = sm.datasets.get_rdataset("Guerry", "HistData").data
df = df[['Lottery', 'Literacy', 'Wealth', 'Region']].dropna()
formule = 'Lottery ~ pow(Literacy,2) + log_plus_1(Wealth)'
mod = smf.ols(formula=formule, data=df)
res = mod.fit()
res.params

现在我需要pow(Literacy, 2)log_plus_1(Wealth) 但自从他们进入模型后,我也希望让他们离开那里。 而不是从原始数据集转换数据。

在 RI 中将使用res$model来获取它。

数据存储为模型的属性,例如设计矩阵是mod.exog ,因变量或响应变量是mod.endog

(我不确定我是否记得正确以下的细节:在这种情况下,patsy 在创建转换后的设计矩阵后返回的数据应该是一个 Pandas DataFrame,并且应该存储在mod.data.orig_exog或类似的东西中那。)

res.predict自动处理转换,即 patsy 使用公式信息转换预测中的解释变量数据,其方式与创建模型时转换数据的方式相同。
predict只返回预测而不是内部转换的 predict exog

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM