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 <- 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)
matplot(y1, type='l', col=1:40, xlab='Income', ylab='Food Expenditure', main ='Prediction N=1 ')
matplot(y2, type='l', col=1:40, xlab='Income', ylab='Food Expenditure', main ='Food Expenditure vs. Prediction ')
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 }
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] 146.09925 184.51946 164.23597 66.90804 163.66636 283.37333 159.99964 ## [8] 267.71627 338.42453 265.58164 92.38219 264.84892 329.20575 351.52303 ## [15] 228.88673 195.29077 196.42103 193.51222 472.06960 372.72661 102.05845 ## [22] 94.95207 276.51248 291.10323 211.77755 397.03806 259.19405 201.16944 ## [29] 254.41617 280.35226 193.98679 502.49304 266.59672 159.61452 291.44410 ## [36] 364.92933 400.97678 394.07836 596.85796 509.90968
sink()