V tomto cvičení budem pracovať s databázou
economics.csv, ktorá obsahuje makroekonomické časové rady
USA od roku 1967. Cieľom je analyzovať faktory ovplyvňujúce osobnú
spotrebu (pce).
Premenné: - pce: osobná spotreba
(Personal Consumption Expenditures) - pop: populácia -
psavert: miera úspor (percento) - uempmed:
mediánová dĺžka nezamestnanosti (v týždňoch) - unemploy:
počet nezamestnaných (v tisícoch)
Budem modelovať vzťah:
\[ pce_i = \beta_0 + \beta_1 unemploy_i + \beta_2 psavert_i + \beta_3 uempmed_i + \varepsilon_i \]
Hypotézy: - H₀: Koeficienty \(\beta_j = 0\) (žiadny vplyv) - H₁: Aspoň jeden koeficient je štatisticky významný - Očakávam negatívny vplyv nezamestnanosti a pozitívny vplyv úspor na spotrebu.
library(zoo)
library(tseries)
library(lmtest)
library(sandwich)
library(car)
library(ggplot2)
library(dplyr)
rm(list = ls())
setwd(getwd())
data <- read.csv("economics.csv", header = TRUE)
# odstránime nepotrebný index
data <- data[, !names(data) %in% c("Unnamed..0")]
# kontrola chýbajúcich údajov
colSums(is.na(data))
X date pce pop psavert uempmed unemploy
0 0 0 0 0 0 0
# nahradíme chýbajúce hodnoty mediánom
for (col in names(data)) {
Quitting from Cvicenie6_economics.Rmd:34-62 [setup]
if (is.numeric(data[[col]])) {
data[[col]][is.na(data[[col]])] <- median(data[[col]], na.rm = TRUE)
}
}
summary(data)
X date pce pop psavert
Min. : 1.0 Length:574 Min. : 506.7 Min. :198712 Min. : 2.200
1st Qu.:144.2 Class :character 1st Qu.: 1578.3 1st Qu.:224896 1st Qu.: 6.400
Median :287.5 Mode :character Median : 3936.8 Median :253060 Median : 8.400
Mean :287.5 Mean : 4820.1 Mean :257160 Mean : 8.567
3rd Qu.:430.8 3rd Qu.: 7626.3 3rd Qu.:290291 3rd Qu.:11.100
Max. :574.0 Max. :12193.8 Max. :320402 Max. :17.300
uempmed unemploy
Min. : 4.000 Min. : 2685
1st Qu.: 6.000 1st Qu.: 6284
Median : 7.500 Median : 7494
Mean : 8.609 Mean : 7771
3rd Qu.: 9.100 3rd Qu.: 8686
Max. :25.200 Max. :15352
pairs(data[, c("pce", "unemploy", "psavert", "uempmed")],
main = "Vzťahy medzi premennými")
model <- lm(pce ~ unemploy + psavert + uempmed, data = data)
summary(model)
Call:
lm(formula = pce ~ unemploy + psavert + uempmed, data = data)
Residuals:
Min 1Q Median 3Q Max
-4039.1 -770.1 -80.3 647.2 5173.8
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 7915.52973 262.80237 30.120 < 2e-16 ***
unemploy -0.18838 0.03966 -4.749 2.58e-06 ***
psavert -751.70486 18.47682 -40.684 < 2e-16 ***
uempmed 558.56555 25.65874 21.769 < 2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 1238 on 570 degrees of freedom
Multiple R-squared: 0.8795, Adjusted R-squared: 0.8789
F-statistic: 1387 on 3 and 570 DF, p-value: < 2.2e-16
# Normalita rezíduí
shapiro.test(residuals(model))
Shapiro-Wilk normality test
data: residuals(model)
W = 0.95121, p-value = 7.823e-13
# Heteroskedasticita
bptest(model)
studentized Breusch-Pagan test
data: model
BP = 58.513, df = 3, p-value = 1.221e-12
# Autokorelácia
dwtest(model)
Durbin-Watson test
data: model
DW = 0.26131, p-value < 2.2e-16
alternative hypothesis: true autocorrelation is greater than 0
# Reziduálne grafy
par(mfrow = c(2, 2))
plot(model)
pce.Na základe modelu môžem zhodnotiť, ktoré faktory najviac ovplyvňujú osobnú spotrebu v ekonomike USA.