[英]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.