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-값과 정확히 동일합니다.
어떤 최종 모델을 사용할지 결정할 때 이제 우리는 주택 가격을 예측하는 데 연식 보다 면적이 훨씬 더 중요하다는 것을 알고 있습니다.
추가 리소스
다음 튜토리얼에서는 회귀 모델에 대한 추가 정보를 제공합니다.