R에서 표준화된 회귀 계수를 계산하는 방법


일반적으로 다중 선형 회귀를 수행할 때 모델 출력의 결과 회귀 계수는 표준화되지 않습니다 . 즉, 원시 데이터를 사용하여 가장 적합한 선을 찾습니다.

 model <- lm(price ~ age + sqfeet, data=df)

하지만 각 예측변수와 반응변수를 표준화한 후(원래 값에서 각 변수의 평균값을 뺀 후 변수의 표준편차로 나누는 방식) 회귀분석을 실행하면, 결과는 다음과 같다. 표준화된 회귀계수 .

R에서 표준화된 회귀 계수를 계산하는 가장 간단한 방법은 scale() 함수를 사용하여 모델의 각 변수를 표준화하는 것입니다.

 model <- lm(scale(price) ~ scale(age) + scale(sqfeet), data=df)

다음 예에서는 실제로 표준화된 회귀계수를 계산하는 방법을 보여줍니다.

예: R에서 표준화된 회귀 계수를 계산하는 방법

12개 주택의 연령, 면적, 판매 가격에 대한 정보가 포함된 다음 데이터 세트가 있다고 가정합니다.

 #create data frame
df <- data. frame (age=c(4, 7, 10, 15, 16, 18, 24, 28, 30, 35, 40, 44),
                 sqfeet=c(2600, 2800, 1700, 1300, 1500, 1800,
                          1200, 2200, 1800, 1900, 2100, 1300),
                 price=c(280000, 340000, 195000, 180000, 150000, 200000,
                         180000, 240000, 200000, 180000, 260000, 140000))

#view data frame
df

   age square feet price
1 4 2600 280000
2 7 2800 340000
3 10 1700 195000
4 15 1300 180000
5 16 1500 150000
6 18 1800 200000
7 24 1200 180000
8 28 2200 240000
9 30 1800 200000
10 35 1900 180000
11 40 2100 260000
12 44 1300 140000

그런 다음 연령면적을 예측 변수로 사용하고 가격을 응답 변수로 사용하여 다중 선형 회귀를 수행한다고 가정합니다.

 #fit regression model
model <- lm(price ~ age + sqfeet, data=df)

#view model summary
summary(model)

Call:
lm(formula = price ~ age + sqfeet, data = df)

Residuals:
   Min 1Q Median 3Q Max 
-32038 -10526 -6139 21641 34060 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) 34736.54 37184.32 0.934 0.374599    
age -409.83 612.46 -0.669 0.520187    
sqfeet 100.87 15.75 6.405 0.000125 ***
---
Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 24690 on 9 degrees of freedom
Multiple R-squared: 0.8508, Adjusted R-squared: 0.8176 
F-statistic: 25.65 on 2 and 9 DF, p-value: 0.0001916

모델 결과에서 표준화되지 않은 회귀 계수를 볼 수 있습니다.

  • 인터셉트: 34736.54
  • 나이: -409.83
  • 평방피트: 100.87

첫눈에 보면, 회귀표의 계수가 -409.833 이기 때문에 연령이 부동산 가격에 훨씬 더 큰 영향을 미치는 것으로 보입니다. 이에 비해 면적 예측 변수의 계수는 100.866입니다 .

그러나 표준 오차는 평방피트보다 연령에 따라 훨씬 더 크기 때문에 해당 p-값이 실제로 연령에 비해 크고(p = 0.520) 평방피트에 비해 작습니다(p = 0.000).

회귀 계수의 차이가 극심한 이유는 두 변수에 대한 척도의 차이가 너무 크기 때문입니다.

  • 연령 범위는 4세부터 44세까지입니다.
  • 평방 피트 값의 범위는 1,200에서 2,800입니다.

대신 원시 데이터를 정규화 하고 새로운 회귀 모델을 적합하다고 가정해 보겠습니다.

 #standardize each variable and fit regression model
model_std <- lm(scale(price) ~ scale(age) + scale(sqfeet), data=df)

#turn off scientific notation
options(scipen= 999 )

#view model summary
summary(model_std)

Call:
lm(formula = scale(price) ~ scale(age) + scale(sqfeet), data = df)

Residuals:
    Min 1Q Median 3Q Max 
-0.5541 -0.1820 -0.1062 0.3743 0.5891 

Coefficients:
                            Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.0000000000000002253 0.1232881457926768426 0.000 1.000000
scale(age) -0.0924421263946849786 0.1381464029075653854 -0.669 0.520187
scale(sqfeet) 0.8848591938302141635 0.1381464029075653577 6.405 0.000125
                 
(Intercept)      
scale(age)       
scale(sqfeet)***
---
Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.4271 on 9 degrees of freedom
Multiple R-squared: 0.8508, Adjusted R-squared: 0.8176 
F-statistic: 25.65 on 2 and 9 DF, p-value: 0.0001916

이 표의 회귀 계수는 표준화되었습니다 . 즉, 이 회귀 모델에 맞게 표준화된 데이터를 사용했음을 의미합니다.

표의 계수를 해석하는 방법은 다음과 같습니다.

  • 평방피트가 일정하다고 가정할 때 연령이 1 표준편차 증가하면 주택 가격이 0.092 표준편차 감소합니다.
  • 연령이 일정하다고 가정할 때 평방피트의 1 표준편차 증가는 주택 가격의 0.885 표준편차 증가와 관련이 있습니다.

이제 우리는 면적이 연령보다 주택 가격에 훨씬 더 큰 영향을 미친다는 것을 알 수 있습니다.

참고 : 각 예측 변수에 대한 p-값은 이전 회귀 모델의 p-값과 정확히 동일합니다.

어떤 최종 모델을 사용할지 결정할 때 이제 우리는 주택 가격을 예측하는 데 연식 보다 면적이 훨씬 더 중요하다는 것을 알고 있습니다.

추가 리소스

다음 튜토리얼에서는 회귀 모델에 대한 추가 정보를 제공합니다.

회귀표를 읽고 해석하는 방법
회귀 계수를 해석하는 방법
선형 회귀에서 P 값을 해석하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다