簡體   English   中英

如何在 R 中獲得自舉模型或具有穩健 SE 的模型的標准化回歸系數

[英]How to obtain standardized regression coefficients for bootstrapped models or models with robust SE in R

在 R 中,當我們擬合回歸 model 時,不幸的是標准化系數不容易獲得。 幸運的是,有一個 package lm.beta可以提取它們。 例如:

fit.model1.lm <- lm(Sepal.Length ~ Sepal.Width + Petal.Width, iris)
lm.beta(fit.model1.lm)

但是,如果我們使用自舉(例如來自simpleboot ):

fit.model1.boot <- lm.boot(fit.model1.lm)

或者如果我們使用穩健的標准錯誤(例如來自sandwich包):

coeftest(fit.model1.lm, vcov = vcovHC(fit.model1.lm))

通過lm.beta獲得標准化系數是不可能的,因為它們僅適用於 class lm的對象。

在那種情況下如何獲得它們呢?

為了獲得標准化的系數,我們還可以在估計之前對變量進行scale

library("lm.beta")
fit.model1.lm <- lm(Sepal.Length ~ Sepal.Width + Petal.Width, iris)
lm.beta(fit.model1.lm)
# Call:
#   lm(formula = Sepal.Length ~ Sepal.Width + Petal.Width, data = iris)
# 
# Standardized Coefficients::
# (Intercept) Sepal.Width Petal.Width 
#   0.0000000   0.2100575   0.8948486 
(fit.model1.lm.st <- lm(Sepal.Length ~ Sepal.Width + Petal.Width, 
                        cbind(lapply(iris[-5], scale), iris[5])))
# Call:
#   lm(formula = Sepal.Length ~ Sepal.Width + Petal.Width, data = cbind(lapply(iris[-5], 
#                                                                              scale), iris[5]))
# 
# Coefficients:
# (Intercept)  Sepal.Width  Petal.Width  
#  -1.422e-15    2.101e-01    8.948e-01  

因此,在lm.boot中使用scale d lm fit (此處fit.model1.lm.st )將為您提供所需的標准化引導系數。

library("simpleboot")
set.seed(42)  # for sake of reproducibility
(fit.model1.boot <- lm.boot(fit.model1.lm.st, R=200))
# BOOTSTRAP OF LINEAR MODEL  (method = rows)
# 
# Original Model Fit
# ------------------
# Call:
# lm(formula = Sepal.Length ~ Sepal.Width + Petal.Width, data = cbind(lapply(iris[-5], 
#                                                                              scale), iris[5]))
# 
# Coefficients:
# (Intercept)  Sepal.Width  Petal.Width  
#  -1.422e-15    2.101e-01    8.948e-01  

library(lmtest)
library(sandwich)
coeftest(fit.model1.lm.st, vcov=vcovHC(fit.model1.lm.st))
# t test of coefficients:
#   
#                Estimate  Std. Error t value  Pr(>|t|)    
# (Intercept) -1.4222e-15  4.4920e-02  0.0000         1    
# Sepal.Width  2.1006e-01  4.7055e-02  4.4641 1.591e-05 ***
# Petal.Width  8.9485e-01  5.2321e-02 17.1031 < 2.2e-16 ***
# ---
# Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM