4 장

윤 재호

2021-07-20

단순회귀 모형

데이타

food = read.table(url("http://www.principlesofeconometrics.com/poe4/data/dat/food.dat"),header=F)
head(food)         
##       V1    V2
## 1 115.22  3.69
## 2 135.98  4.39
## 3 119.34  4.75
## 4 114.96  6.03
## 5 187.05 12.47
## 6 243.92 12.98

데이타 요약

summary(food)      # Summary statistics 
##        V1              V2       
##  Min.   :109.7   Min.   : 3.69  
##  1st Qu.:200.4   1st Qu.:17.11  
##  Median :264.5   Median :20.03  
##  Mean   :283.6   Mean   :19.60  
##  3rd Qu.:363.3   3rd Qu.:24.40  
##  Max.   :587.7   Max.   :33.40

데이타 그림

plot(food)         # Plot matrix 

모형

\[ Y_{i} = \alpha + \beta X_{i} + e_{i} \]

변수

x = food[,2]   # Income
y = food[,1]   # Food Expenditure

추정

reg <- lm(y ~ x)

추정 결과

summary(reg)  
## 
## Call:
## lm(formula = y ~ x)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -223.025  -50.816   -6.324   67.879  212.044 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   83.416     43.410   1.922   0.0622 .  
## x             10.210      2.093   4.877 1.95e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 89.52 on 38 degrees of freedom
## Multiple R-squared:  0.385,  Adjusted R-squared:  0.3688 
## F-statistic: 23.79 on 1 and 38 DF,  p-value: 1.946e-05

b1, b2

b1 <- coef(reg)[[1]] 
b2 <- coef(reg)[[2]]

b1
## [1] 83.416
b2
## [1] 10.20964

예측

N <- 40
sde <- 89.52
y1 <- b1+b2*x+rnorm(N, mean=0, sd=sde)

y2 <- data.frame()
y2 <- cbind(y1, y)

예측 (1회)

matplot(y1, type='l', col=1:40,
        xlab='Income', ylab='Food Expenditure', 
        main ='Prediction N=1 ')

예측 (1회)

matplot(y2, type='l', col=1:40,
        xlab='Income', ylab='Food Expenditure', 
        main ='Food Expenditure vs. Prediction ')

예측 (1,000회)

b1 <- coef(reg)[[1]] 
b2 <- coef(reg)[[2]]
yy <- data.frame()

trial <- 1
trials <- 1000
while(trial <= trials) {
  y3 <- b1+b2*x+rnorm(N, mean=0, sd=sde)
  yy <- rbind(yy, t(y3))
  trial <- trial + 1
}

예측 (1,000회)

matplot(t(yy), type='l', col=1:40,
        xlab='Income', ylab='Food Expenditure', 
        main ='Prediction N=1000 ')

화일 저장

sink(‘ch4.out’)

# Least sqaures prediction (one time) 

y1
##  [1] -51.20898 -20.43183  12.43865  17.46351 460.62604  54.10621 154.69972
##  [8] 206.58075 280.83184  64.46904 218.57039 310.49707 262.49777 272.45277
## [15] 215.89734 234.98174 237.78571 275.38732 333.07630 266.77325 324.91252
## [22] 243.95799 345.17388 270.86235 328.84266 490.64543 202.05131 226.63993
## [29] 502.94529 283.55355 318.18870 157.14806 286.38909 283.92843 373.02637
## [36] 366.09577 380.04090 344.57782 230.02346 365.05559

sink()

참고자료