R

R 기초 21 - 선형회귀분석(회귀식 적합도에 대한 가설 검정)

코딩탕탕 2022. 10. 26. 10:33

 

# 회귀식 적합도에 대한 가설 검정
# iris dataset
head(iris, 3)
cor(iris[,-5]) #-를 붙이면 여집합이 된다.

cor(iris$Sepal.Length, iris$Sepal.Width) # -0.1175698, 음의 상관관계가 약하다
plot(iris$Sepal.Length, iris$Sepal.Width)

# Sepal.Length가 Sepal.Width 에 영향을 주는가?
# 선형회귀분석
model1
# 정량적인 분석 모델을 만들 때, 회귀분석을 쓴다.
model1 <- lm(formula = Sepal.Width ~ Sepal.Length, data=iris) # y ~ x
model1
summary(model1)
# p-value: 0.1519, 피밸류가 0.05 보다 커서 의미없는 모델이다.
# 평가 : Sepal.Length가  Sepal.width에 영향을 주지 않는다.
# Multiple R-squared:  0.01382, 1.38% 설명하고 있다. 즉, 너무 설명력이 약하다.
# 상관계수(cor : -0.1175698)를 제곱하면 Multiple R-squared(결정계수)가 나온다.
# 0.1175698**2 = 0.01382266



cor(iris$Sepal.Length, iris$Petal.Length) # 양의 상관 관계가 강하다
plot(iris$Sepal.Length, iris$Petal.Length) # 0.8717538
# Sepal.Length가 Sepal.Width 에 영향을 주는가? 궁금
# 선형회귀분석
model2 <- lm(formula = Petal.Length ~ Sepal.Length, data=iris) # y ~ x
model2
summary(model2)
# 모델의 피밸류가 p-value: < 2.2e-16 < 0.05 이므로 의미있는 모델
# 평가 : Sepal.Length가 Sepal.Width에 영향을 준다.




<console>
Call:
lm(formula = Sepal.Width ~ Sepal.Length, data = iris)

Residuals:
    Min      1Q  Median      3Q     Max 
-1.1095 -0.2454 -0.0167  0.2763  1.3338 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept)   3.41895    0.25356   13.48   <2e-16 ***
Sepal.Length -0.06188    0.04297   -1.44    0.152    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.4343 on 148 degrees of freedom
Multiple R-squared:  0.01382,	Adjusted R-squared:  0.007159 
F-statistic: 2.074 on 1 and 148 DF,  p-value: 0.1519

p-value의 값을 보면 0.05를 넘지 않으면 신뢰성이 높은 것이다.

R-squared도 1이 100%라고 치면 얼마나 잘 설명하는가에 대한 퍼센트라고 볼 수 있다.