Стандартизация коэффициентов регрессии изменила значение - PullRequest
0 голосов
/ 01 февраля 2019

У меня изначально была такая формула: lm(PopDif ~ RailDensityDif + Ports + Coast, data = Pop) и я получил коэффициент 1 419 000 для RailDensityDif, -0,1011 для портов и 3418 для побережья.После масштабирования переменных: lm(scale(PopDif) ~ scale(RailDensityDif) + scale(Ports) + scale(Coast), data = Pop), мой коэффициент для RailDensityDif составляет 0,02107 и 0,2221 для побережья, поэтому теперь побережье более значимо, чем RailDensityDif.Я знаю, что масштабирование не должно менять значение - почему это произошло?

1 Ответ

0 голосов
/ 01 февраля 2019

tldr; Значения p , характеризующие статистическую значимость параметров в линейной модели, могут изменяться после масштабирования (стандартизации) переменных.


КакНапример, я буду работать с набором данных mtcars и регрессировать mpg на disp и drat;или на языке R formula mpg ~ disp + drat.

1.Три линейные модели

Мы реализуем три разные (OLS) линейные модели, различие заключается в разных стратегиях масштабирования переменных.

  1. Для начала мы не делаем никакихмасштабирование.

    m1 <- lm(mpg ~ disp + drat, data = mtcars)
    
  2. Далее мы масштабируем значения, используя scale, который по умолчанию выполняет две функции: (1) центрирует значения в 0, вычитая среднее, и (2) он масштабирует значения, чтобы иметь единичную дисперсию, путем деления (центрированных) значений на их стандартное отклонение.

    m2 <- lm(mpg ~ disp + drat, data = as.data.frame(scale(mtcars)))
    

    Обратите внимание, что мы можем применить scale непосредственно к data.frame, что приведет к масштабированию значений по столбцам.scale возвращает matrix, поэтому нам нужно преобразовать полученный объект обратно в data.frame.

  3. Наконец, мы масштабируем значения, используя scale без центрирования, но масштабируя значенияиметь единичную дисперсию

    m3 <- lm(mpg ~ disp + drat, data = as.data.frame(scale(mtcars, center = F)))
    

2.Сравнение оценок параметров и статистической значимости

Давайте проверим оценки параметров для m1

summary(m1)$coef
#               Estimate  Std. Error   t value     Pr(>|t|)
#(Intercept) 21.84487993 6.747971087  3.237252 3.016655e-03
#disp        -0.03569388 0.006652672 -5.365345 9.191388e-06
#drat         1.80202739 1.542091386  1.168561 2.520974e-01

Мы получим значения t из соотношения оценок параметров истандартные ошибки;значения p затем следуют из области под кривой pdf для df = nrow(mtcars) - 3 (поскольку у нас есть 3 параметра), где x > |t| (что соответствует двустороннему t -тестовое задание).Так, например, для disp мы подтверждаем t значение

summary(m1)$coef["disp", "Estimate"] / summary(m1)$coef["disp", "Std. Error"]
#[1] -5.365345

и p -значение

2 * pt(summary(m1)$coef["disp", "Estimate"] / summary(m1)$coef["disp", "Std. Error"], nrow(mtcars) - 3)
#[1] 9.191388e-06

Давайте возьмемвзгляд на результаты из m2:

summary(m2)$coef
#                 Estimate Std. Error       t value     Pr(>|t|)
#(Intercept) -1.306994e-17 0.09479281 -1.378790e-16 1.000000e+00
#disp        -7.340121e-01 0.13680614 -5.365345e+00 9.191388e-06
#drat         1.598663e-01 0.13680614  1.168561e+00 2.520974e-01

Обратите внимание, как значения t (то есть отношения оценок и стандартных ошибок) отличаются от значений m1,из-за центрирования и масштабирования данных, чтобы иметь единичную дисперсию.

Если, однако, мы не центрируем значения, а только масштабируем их, чтобы иметь единичную дисперсию

summary(m3)$coef
#              Estimate Std. Error   t value     Pr(>|t|)
#(Intercept)  1.0263872 0.31705513  3.237252 3.016655e-03
#disp        -0.4446985 0.08288348 -5.365345 9.191388e-06
#drat         0.3126834 0.26757994  1.168561 2.520974e-01

, мы можем видеть, что покаоценки и стандартные ошибки отличаются по сравнению с (немасштабированными) результатами m1, их соотношения (т.е. значения t ) идентичны .Таким образом (по умолчанию) scale(...) изменит статистическую значимость оценок параметров, в то время как scale(..., center = FALSE) не изменится.

Легко понять , почему деление значений на их стандартное отклонение не меняет отношенияоценок параметров OLS и стандартных ошибок при просмотре закрытой формы для оценки параметров OLS и стандартной ошибки, см., например, здесь .

...