簡體   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