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