OkBublewrap

모형의 적절성 본문

Statistics/회귀분석

모형의 적절성

옥뽁뽁 2021. 5. 19. 22:13

가정

$$1.E(\epsilon_{i})=0, 모든 i에 대해$$

$$2.(1) V(\epsilon_{i})=\sigma ^{2}, 모든 i에 대해(등분산성)$$

$$(2) \epsilon_{i} 들은 서로 독립이다.(독립성)$$

$$(3) \epsilon_{i}는 모든 i에 대해 정규분포를 따른다(정규성)$$

 

 

잔차

$$\epsilon_{i}=y_{i}-\hat{y_{i}}$$

 

으로 정의된다.

 

1. x에 대해

2. y의 예측값 y_h에 대해

3. 시간의 순서에 따라

값을 그려봐야한다.

 

<최대산소흡입량 자료>

n <- 1:10
x <- c(1.54,1.74,1.32,1.50,1.46,1.35,1.53,1.71,1.27,1.50)
y <- c(132.0,135.5,127.7,131.1,130.0,127.6,129.9,138.1,126.6,131.8)

library(dplyr)
data <- cbind(n,x,y) %>% data.frame()

View(data)을 입력했을 때 나온값

잔차를 구하기 위해서 y_h을 구해야한다.

lm(y~x, data) 

lm(formula = y ~ x, data = data)

Coefficients:
(Intercept)            x  
   -3.84333      0.04072 

으로 y_h = -3.84333 + 0.04072*x으로 회귀방정식을 얻을 수 있다.

 

 

data$y_h <- -3.84333 + 0.04072*x # data에 변수명 y_h에 회귀방정식 넣기
data$e <- y-data$y_h # data에 변수명 e에 잔차값 넣기

여기까지하면 data를 보면 

 

    n     x    y      y_h         e
1   1 132.0 1.54 1.531710  0.008290
2   2 135.5 1.74 1.674230  0.065770
3   3 127.7 1.32 1.356614 -0.036614
4   4 131.1 1.50 1.495062  0.004938
5   5 130.0 1.46 1.450270  0.009730
6   6 127.6 1.35 1.352542 -0.002542
7   7 129.9 1.53 1.446198  0.083802
8   8 138.1 1.71 1.780102 -0.070102
9   9 126.6 1.27 1.311822 -0.041822
10 10 131.8 1.50 1.523566 -0.023566

 

으로 나온다.

 

1. x에 대한 잔차 그림

plot(x, data$e, xlim=c(125,140), main='RESIDUAL PLOT', ylab = 'RESIDUAL', xlab='x') 
abline(h=0,col="black",lty=1) # 평행선 넣기

x 에대한 잔차 그림

2. y_h에 대한 잔차 그림

plot(y, data$e, main='RESIDUAL PLOT', ylab = 'RESIDUAL', xlab='PREDICTED VALUE OF Y')
abline(h=0,col="black",lty=1)

y_h에 대한 잔차 그림

 

산점도

data_model <- lm(y~x, data)
summary(data_model)

Call:
lm(formula = y ~ x, data = data)

Residuals:
      Min        1Q    Median        3Q       Max 
-0.069879 -0.033144  0.001407  0.009581  0.084012 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept) -3.843326   0.609198  -6.309 0.000231 ***
x            0.040718   0.004648   8.761 2.26e-05 ***

 

예) Hooker 자료

hooker.xlsx
0.01MB

library(readxl)
hooker <- read_excel('c:/Temp1/hooker.xlsx')
head(hooker)

 

head(hooker)

온도을 x, 압력을 y로 변수명 지정

 

library(readxl)
hooker <- read_excel('c:/Temp1/hooker.xlsx')
head(hooker)

hooker$x <- hooker$온도
hooker$y <- hooker$압력

hooker_model <- lm(y~x, hooker)
plot(hooker_model)

산점도

 

잔차

추정된 회귀식

y_h = -66.5301+0.4509*x

 

summary(hooker_model)

Coefficients:
              Estimate Std. Error t value Pr(>|t|)    
(Intercept) -66.530052   1.456755  -45.67   <2e-16 ***
x             0.450915   0.007531   59.88   <2e-16 ***
---

 

결정계수 구하기

 

Residual standard error: 0.3223 on 25 degrees of freedom
Multiple R-squared:  0.9931, Adjusted R-squared:  0.9928 
F-statistic:  3585 on 1 and 25 DF,  p-value: < 2.2e-16

 

결정계수 값은 0.9931로 매우 높게 나왔다.

또 F검정은 2.2e-16으로 매우 유의하게 나왔다.

 

'Statistics > 회귀분석' 카테고리의 다른 글

중회귀모형(2)  (0) 2021.06.07
중회귀모형(1)  (0) 2021.06.04
최량선형불편추정량  (0) 2021.04.01
최대우도추정법  (1) 2021.03.31
최소제곱법  (0) 2021.03.19