06-1. Statistics(Regression analysis)(hp & mpg)
06-1. Statistics(Regression analysis)(hp & mpg)
[toc]
마력과 연비에 대한 회귀분석
문제
1
R의 mtcars 중 자동 트랜스미션 차 19대를 이용하여, 단순회귀모형을 이용하여, 마력(x), 연비(y)를 어떻게 설명할 수 있는지 살펴보자.이때 `유의수준 0.05`를 사용한다. 표 1의 분산분석표에서 검정통계량 F=38.088에 대한 유의확률 $p=1.025 x 10^-5$이 유의수준 0.05보다 작으므로, 𝘏0 : 𝛃 = 0 또는 𝘏0 : 단순회귀모형이 유의하지 않다를 기각한다. 즉, 추정된 단순회귀모형이 적합하여 유의하다.모형의 결정계수가 `R^2 = 189.923/264.588 = 0.6914`이므로, 마력은 연비의 총변동 중 69.14를 설명한다.
분산분석표
| 요인 | 제곱합(SS) | 자유도(df) | 평균제곱합(MS = ss/df) | 검정통계량(F) | 유의확률(P) |
|---|---|---|---|---|---|
| 회귀(마력 hp) | 182.937(SSR) | 1 | 182.937 | F=38.088 | 1.025e-05 |
| 잔차(residual) | 81.651(SSE) | 17 | 4.803 | ||
| 총합 | 264.588(SST) | 18 |
계수추정표
| 추정값(Estimate) | 표준오차(Std. Error) | 검정통계량(t value) | 유의확률(Pr(>|t|)) | |
|---|---|---|---|---|
| 절편(Intercept) | 26.624848 | 1.615883 | 16.477 | 6.92e-12 *** |
| 마력 | -0.059137 | 0.009682 | -6.172 | 1.02e-05 *** |
계수추정표로부터 구한 추정된 회귀직선식
회귀계수의 유의성 검정
절편과 기울기에 대한 유의성 검정을 수행한 결과는 다음과 같다.
- 절편의 p-value: ( p = 6.92 \times 10^{-12} )
- 기울기의 p-value: ( p = 1.02 \times 10^{-5} )
두 p-value 모두 유의수준 ( \alpha = 0.05 )보다 작으므로,
절편과 기울기 모두 통계적으로 유의하다.
따라서, 마력(hp)은 연비(mpg)에 유의한 영향을 미치는 변수라고 할 수 있다.
회귀식 해석
추정된 단순회귀모형에 따르면,
마력이 1 증가할 때, 연비는 약 0.05912 (mile/gallon) 감소한다.
즉, 마력과 연비 사이에는 음의 선형 관계가 존재한다.
잔차의 표준오차
잔차의 표준오차는 다음과 같다.
[ \hat{\sigma} = \sqrt{MSE} = 2.192 ]
이는 실제 관측값과 회귀직선 간 평균적인 오차의 크기를 나타낸다.
잔차의 정규성 검정
잔차의 정규성 가정을 확인하기 위해 QQ-plot과 Shapiro-Wilk 검정을 수행하였다.
- Shapiro-Wilk 검정 p-value: ( p = 0.1044 )
유의수준 0.05에서 p-value가 더 크므로 귀무가설을 기각할 수 없다.
따라서, 잔차는 정규분포를 따른다고 볼 수 있다.
또한 QQ-plot에서도 잔차가 대체로 직선에 근접하여,
정규성 가정이 크게 위배되지 않음을 확인할 수 있다.
결론
본 분석을 통해 다음과 같은 결론을 얻을 수 있다.
- 마력은 연비에 유의한 영향을 미친다.
- 마력이 증가할수록 연비는 감소하는 경향을 보인다.
- 회귀모형은 통계적으로 유의하며,
- 잔차의 정규성 가정 또한 만족된다.
따라서, 본 단순회귀모형은 데이터를 설명하는 데 적합한 모델이라고 할 수 있다.
잔차식
코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# =========================================
# 단순회귀분석 최종 코드 (자동 변속기 차량)
# x: hp(마력), y: mpg(연비)
# =========================================
# 1. 데이터 추출
x <- mtcars[mtcars$am == 0, "hp"]
y <- mtcars[mtcars$am == 0, "mpg"]
# 2. 회귀모형 적합
fit <- lm(y ~ x)
# 3. 분산분석표
anova(fit)
# 4. 계수추정표 및 요약
summary(fit)
# 5. 산점도 + 회귀직선
plot(x, y,
main = "Simple Regression Analysis",
xlab = "hp",
ylab = "mpg")
abline(fit)
text(130, 14, "mpg = 26.624848 - 0.059137*hp")
# 6. 회귀 진단 그래프
par(mfrow = c(2, 2))
plot(fit)
# 7. 잔차 정규성 검정
shapiro.test(fit$residuals)
# 8. 결정계수
summary(fit)$r.squared
- R^2 = 결정계수 = SSR/SST
End.





