R-공분산 분석
회귀 분석을 사용하여 예측 변수의 변동이 반응 변수에 미치는 영향을 설명하는 모델을 만듭니다. 예 / 아니오 또는 남성 / 여성 등과 같은 값을 가진 범주 형 변수가있는 경우도 있습니다. 단순 회귀 분석은 범주 형 변수의 각 값에 대해 여러 결과를 제공합니다. 이러한 시나리오에서는 예측 변수와 함께 범주 형 변수를 사용하고 범주 형 변수의 각 수준에 대한 회귀선을 비교하여 범주 형 변수의 효과를 연구 할 수 있습니다. 이러한 분석은 다음과 같이 불립니다.Analysis of Covariance 일컬어 ANCOVA.
예
R 내장 데이터 세트 mtcars를 고려하십시오. 여기서 우리는 필드 "am"이 변속기 유형 (자동 또는 수동)을 나타냅니다. 그것은 값이 0과 1 인 범주 형 변수입니다. 자동차의 갤런 당 마일 값 (mpg)은 마력 ( "hp")의 값 이외에도 그것에 의존 할 수 있습니다.
"mpg"와 "hp"간의 회귀에 대한 "am"값의 효과를 연구합니다. 그것은 사용하여 수행됩니다aov() 함수 뒤에 anova() 여러 회귀를 비교하는 함수입니다.
입력 데이터
데이터 세트 mtcars에서 "mpg", "hp"및 "am"필드를 포함하는 데이터 프레임을 만듭니다. 여기서는 "mpg"를 반응 변수로, "hp"를 예측 변수로, "am"을 범주 형 변수로 사용합니다.
input <- mtcars[,c("am","mpg","hp")]
print(head(input))
위 코드를 실행하면 다음과 같은 결과가 생성됩니다.
am mpg hp
Mazda RX4 1 21.0 110
Mazda RX4 Wag 1 21.0 110
Datsun 710 1 22.8 93
Hornet 4 Drive 0 21.4 110
Hornet Sportabout 0 18.7 175
Valiant 0 18.1 105
ANCOVA 분석
"hp"를 예측 변수로 사용하고 "mpg"를 응답 변수로 "am"과 "hp"간의 상호 작용을 고려하여 회귀 모델을 만듭니다.
범주 형 변수와 예측 변수 간의 상호 작용이있는 모델
# Get the dataset.
input <- mtcars
# Create the regression model.
result <- aov(mpg~hp*am,data = input)
print(summary(result))
위 코드를 실행하면 다음과 같은 결과가 생성됩니다.
Df Sum Sq Mean Sq F value Pr(>F)
hp 1 678.4 678.4 77.391 1.50e-09 ***
am 1 202.2 202.2 23.072 4.75e-05 ***
hp:am 1 0.0 0.0 0.001 0.981
Residuals 28 245.4 8.8
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
이 결과는 두 경우 모두 p 값이 0.05 미만이므로 마력과 변속기 유형 모두 갤런 당 마일에 상당한 영향을 미친다는 것을 보여줍니다. 그러나 p- 값이 0.05보다 크므로이 두 변수 간의 상호 작용은 중요하지 않습니다.
범주 형 변수와 예측 변수 간의 상호 작용이없는 모델
# Get the dataset.
input <- mtcars
# Create the regression model.
result <- aov(mpg~hp+am,data = input)
print(summary(result))
위 코드를 실행하면 다음과 같은 결과가 생성됩니다.
Df Sum Sq Mean Sq F value Pr(>F)
hp 1 678.4 678.4 80.15 7.63e-10 ***
am 1 202.2 202.2 23.89 3.46e-05 ***
Residuals 29 245.4 8.5
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
이 결과는 두 경우 모두 p 값이 0.05 미만이므로 마력과 변속기 유형 모두 갤런 당 마일에 상당한 영향을 미친다는 것을 보여줍니다.
두 모델 비교
이제 두 모델을 비교하여 변수의 상호 작용이 실제로 중요하지 않은지 결론을 내릴 수 있습니다. 이를 위해 우리는anova() 함수.
# Get the dataset.
input <- mtcars
# Create the regression models.
result1 <- aov(mpg~hp*am,data = input)
result2 <- aov(mpg~hp+am,data = input)
# Compare the two models.
print(anova(result1,result2))
위 코드를 실행하면 다음과 같은 결과가 생성됩니다.
Model 1: mpg ~ hp * am
Model 2: mpg ~ hp + am
Res.Df RSS Df Sum of Sq F Pr(>F)
1 28 245.43
2 29 245.44 -1 -0.0052515 6e-04 0.9806
p- 값이 0.05보다 크므로 마력과 전동 유형 간의 상호 작용이 중요하지 않다는 결론을 내립니다. 따라서 갤런 당 마일리지는 자동 및 수동 변속기 모드 모두에서 자동차의 마력에 비슷한 방식으로 달라집니다.