Ani trochę. Wielkość współczynników zależy bezpośrednio od skal wybranych dla zmiennych, co jest dość arbitralną decyzją modelowania.
Aby to zobaczyć, rozważ model regresji liniowej przewidujący szerokość płatka tęczówki (w centymetrach) na podstawie jego długości płatka (w centymetrach):
summary(lm(Petal.Width~Petal.Length, data=iris))
# Call:
# lm(formula = Petal.Width ~ Petal.Length, data = iris)
#
# Residuals:
# Min 1Q Median 3Q Max
# -0.56515 -0.12358 -0.01898 0.13288 0.64272
#
# Coefficients:
# Estimate Std. Error t value Pr(>|t|)
# (Intercept) -0.363076 0.039762 -9.131 4.7e-16 ***
# Petal.Length 0.415755 0.009582 43.387 < 2e-16 ***
# ---
# Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#
# Residual standard error: 0.2065 on 148 degrees of freedom
# Multiple R-squared: 0.9271, Adjusted R-squared: 0.9266
# F-statistic: 1882 on 1 and 148 DF, p-value: < 2.2e-16
Nasz model osiąga skorygowaną wartość R ^ 2 wynoszącą 0,9266 i przypisuje wartość współczynnika 0,415755 do zmiennej Płatek.
Jednak wybór zdefiniowania Płatka. Długość w centymetrach był dość arbitralny i zamiast tego moglibyśmy zdefiniować zmienną w metrach:
iris$Petal.Length.Meters <- iris$Petal.Length / 100
summary(lm(Petal.Width~Petal.Length.Meters, data=iris))
# Call:
# lm(formula = Petal.Width ~ Petal.Length.Meters, data = iris)
#
# Residuals:
# Min 1Q Median 3Q Max
# -0.56515 -0.12358 -0.01898 0.13288 0.64272
#
# Coefficients:
# Estimate Std. Error t value Pr(>|t|)
# (Intercept) -0.36308 0.03976 -9.131 4.7e-16 ***
# Petal.Length.Meters 41.57554 0.95824 43.387 < 2e-16 ***
# ---
# Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#
# Residual standard error: 0.2065 on 148 degrees of freedom
# Multiple R-squared: 0.9271, Adjusted R-squared: 0.9266
# F-statistic: 1882 on 1 and 148 DF, p-value: < 2.2e-16
Oczywiście nie wpływa to w żaden sposób na dopasowany model - po prostu przypisaliśmy Petal.Length.Mength (41.57554) o 100x większy współczynnik niż do Petal.Length (0.415755). Wszystkie pozostałe właściwości modelu (skorygowane R ^ 2, statystyki t, wartości p itp.) Są identyczne.
Zasadniczo przy dopasowywaniu znormalizowanych modeli liniowych najpierw znormalizuje się zmienne (na przykład, aby uzyskać średnią 0 i wariancję jednostkową), aby uniknąć faworyzowania niektórych zmiennych nad innymi na podstawie wybranych skal.
Zakładając znormalizowane dane
Nawet jeśli znormalizowałeś wszystkie zmienne, zmienne o wyższych współczynnikach mogą nadal nie być tak przydatne w przewidywaniach, ponieważ zmienne niezależne są rzadko ustawiane (mają niską wariancję). Jako przykład rozważmy zestaw danych ze zmienną zależną Z i zmiennymi niezależnymi X i Y przyjmującymi wartości binarne
set.seed(144)
dat <- data.frame(X=rep(c(0, 1), each=50000),
Y=rep(c(0, 1), c(1000, 99000)))
dat$Z <- dat$X + 2*dat$Y + rnorm(100000)
Z założenia współczynnik Y jest z grubsza dwa razy większy niż współczynnik X, gdy oba są używane do przewidywania Z za pomocą regresji liniowej:
summary(lm(Z~X+Y, data=dat))
# Call:
# lm(formula = Z ~ X + Y, data = dat)
#
# Residuals:
# Min 1Q Median 3Q Max
# -4.4991 -0.6749 -0.0056 0.6723 4.7342
#
# Coefficients:
# Estimate Std. Error t value Pr(>|t|)
# (Intercept) -0.094793 0.031598 -3.00 0.0027 **
# X 0.999435 0.006352 157.35 <2e-16 ***
# Y 2.099410 0.031919 65.77 <2e-16 ***
# ---
# Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#
# Residual standard error: 0.9992 on 99997 degrees of freedom
# Multiple R-squared: 0.2394, Adjusted R-squared: 0.2394
# F-statistic: 1.574e+04 on 2 and 99997 DF, p-value: < 2.2e-16
Mimo to X wyjaśnia więcej wariancji w Z niż Y (model regresji liniowej przewidujący Z z X ma wartość R ^ 2 0,2065, podczas gdy model regresji liniowej przewidujący Z z Y ma wartość R ^ 2 0,0511):
summary(lm(Z~X, data=dat))
# Call:
# lm(formula = Z ~ X, data = dat)
#
# Residuals:
# Min 1Q Median 3Q Max
# -5.2587 -0.6759 0.0038 0.6842 4.7342
#
# Coefficients:
# Estimate Std. Error t value Pr(>|t|)
# (Intercept) 1.962629 0.004564 430.0 <2e-16 ***
# X 1.041424 0.006455 161.3 <2e-16 ***
# ---
# Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#
# Residual standard error: 1.021 on 99998 degrees of freedom
# Multiple R-squared: 0.2065, Adjusted R-squared: 0.2065
# F-statistic: 2.603e+04 on 1 and 99998 DF, p-value: < 2.2e-16
przeciw:
summary(lm(Z~Y, data=dat))
# Call:
# lm(formula = Z ~ Y, data = dat)
#
# Residuals:
# Min 1Q Median 3Q Max
# -5.0038 -0.7638 -0.0007 0.7610 5.2288
#
# Coefficients:
# Estimate Std. Error t value Pr(>|t|)
# (Intercept) -0.09479 0.03529 -2.686 0.00724 **
# Y 2.60418 0.03547 73.416 < 2e-16 ***
# ---
# Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#
# Residual standard error: 1.116 on 99998 degrees of freedom
# Multiple R-squared: 0.05114, Adjusted R-squared: 0.05113
# F-statistic: 5390 on 1 and 99998 DF, p-value: < 2.2e-16
Przypadek wielokolinearności
Trzeci przypadek, w którym duże wartości współczynników mogą wprowadzać w błąd, byłby w przypadku znacznej wielokoliniowości między zmiennymi. Jako przykład rozważmy zestaw danych, w którym X i Y są silnie skorelowane, ale W nie jest silnie skorelowane z pozostałymi dwoma; próbujemy przewidzieć Z:
set.seed(144)
dat <- data.frame(W=rnorm(100000),
X=rnorm(100000))
dat$Y <- dat$X + rnorm(100000, 0, 0.001)
dat$Z <- 2*dat$W+10*dat$X-11*dat$Y + rnorm(100000)
cor(dat)
# W X Y Z
# W 1.000000e+00 5.191809e-05 5.200434e-05 0.8161636
# X 5.191809e-05 1.000000e+00 9.999995e-01 -0.4079183
# Y 5.200434e-05 9.999995e-01 1.000000e+00 -0.4079246
# Z 8.161636e-01 -4.079183e-01 -4.079246e-01 1.0000000
Zmienne te mają prawie taką samą średnią (0) i wariancję (~ 1), a regresja liniowa przypisuje znacznie wyższe wartości współczynników (w wartości bezwzględnej) X (około 15) i Y (około -16) niż W ( około 2):
summary(lm(Z~W+X+Y, data=dat))
# Call:
# lm(formula = Z ~ W + X + Y, data = dat)
#
# Residuals:
# Min 1Q Median 3Q Max
# -4.1886 -0.6760 0.0026 0.6679 4.2232
#
# Coefficients:
# Estimate Std. Error t value Pr(>|t|)
# (Intercept) 1.831e-04 3.170e-03 0.058 0.954
# W 2.001e+00 3.172e-03 630.811 < 2e-16 ***
# X 1.509e+01 3.177e+00 4.748 2.05e-06 ***
# Y -1.609e+01 3.177e+00 -5.063 4.13e-07 ***
# ---
# Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#
# Residual standard error: 1.002 on 99996 degrees of freedom
# Multiple R-squared: 0.8326, Adjusted R-squared: 0.8326
# F-statistic: 1.658e+05 on 3 and 99996 DF, p-value: < 2.2e-16
Jednak wśród trzech zmiennych w modelu W najważniejsze jest: Jeśli usuniesz W z pełnego modelu, R ^ 2 spadnie z 0,833 do 0,166, podczas gdy jeśli upuścisz X lub Y, R ^ 2 jest praktycznie niezmienione.