[英]Standardized coefs in regression with a categorical predictor: there's something wrong
據我了解,標准化系數可以用作效果大小的指標(可以使用經驗法則,例如Cohen's 1988)。 我還了解到,標准化系數以標准偏差表示 ,這使它們相對接近Cohen的d。
我還了解,獲取標准化系數的一種方法是預先對數據進行標准化。 另一個方法是使用MuMIn
包中的std.coef
函數。
使用線性預測變量時,這兩種方法是等效的:
library(tidyverse)
library(MuMIn) # For stds coefs
df <- iris %>%
select(Sepal.Length, Sepal.Width) %>%
scale() %>%
as.data.frame() %>%
mutate(Species = iris$Species)
fit <- lm(Sepal.Length ~ Sepal.Width, data=df)
round(coef(fit), 2)
round(MuMIn::std.coef(fit, partial.sd = TRUE), 2)
在這兩種情況下,系數均為-0.12。 我將其解釋為: 對於Sepal.Width的每1標准偏差增加,Sepal.Length減小其SD的0.12 。
但是,這兩種方法在分類預測器中得出的結果不同 :
fit <- lm(Sepal.Length ~ Species, data=df)
round(coef(fit), 2)
round(MuMIn::std.coef(fit, partial.sd = TRUE), 2)
相比於setosa(截距),1.12和0.46,其給出對於雲芝的效果。
我應該說什么能說“ 雜色和setosa之間的區別是Sepal.Length的SD的……”? 非常感謝
您沒有標准化與Species
相關的隱式變量,因此這些系數不會標准化。
您可以這樣做,如下所示:
dummies <- scale(contrasts(df$Species)[df$Species,])
fit <- lm(Sepal.Length ~ dummies, data = df)
round(coef(fit), 2)
# (Intercept) dummiesversicolor dummiesvirginica
# 0.00 0.53 0.90
如果將partial.sd
參數設置為FALSE
則這與MuMIn::std.coef
的結果一致。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.