使用statsmodels从OLS模型获取变换的X值

问题描述 投票:0回答:1

我正在尝试进行线性回归。对于结果,我想将每个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)。但是,由于它们进入了模型,所以我也希望能将它们从模型中删除。而不是转换原始数据集中的数据。

在R中,我将使用res$model来获取它。

python regression statsmodels
1个回答
0
投票

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

[那。)

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

© www.soinside.com 2019 - 2024. All rights reserved.