Ekonometrija kroz R II dio

Uklonimo sve objekte iz okruzenja (isto mozemo uraditi i klikom misa).

rm(list=ls())

R ima mnostvo paketa. Jedan on njih ima na raspolaganju podatke koji su primjeri za anlizu. Prvo instaliramo, a kad je jednom instaliran paket potrebno ga je pozvati. Nazvacemo objekat stednja i spremiti ga u okruzenje. Kakvi su podaci? Da vidimo strukturu str(), odnosno klase pojedinih promjenljivih.Imamo 50 observacija za po 5 promjenljivih.Podatke mozemo sagledati po kolonama. - [,1] sr numeric agregatne licne stednje - [,2] pop15 numeric % of population under 15 - [,3] pop75 numeric % of population over 75 - [,4] dpi numeric real per-capita disposable income - [,5] ddpi numeric % growth rate of dpi

#install.packages("datasets.load")
library("datasets.load")
data(LifeCycleSavings)
stednja<- data.frame(LifeCycleSavings)
str(LifeCycleSavings) 
## 'data.frame':    50 obs. of  5 variables:
##  $ sr   : num  11.43 12.07 13.17 5.75 12.88 ...
##  $ pop15: num  29.4 23.3 23.8 41.9 42.2 ...
##  $ pop75: num  2.87 4.41 4.43 1.67 0.83 2.85 1.34 0.67 1.06 1.14 ...
##  $ dpi  : num  2330 1508 2108 189 728 ...
##  $ ddpi : num  2.87 3.93 3.82 0.22 4.56 2.43 2.67 6.51 3.08 2.8 ...

Kao sto smo rekli, deskriptivna statistika je obavezna. Posmatramo, trazimo da li imamo nesto neobicno, posmatramo minimalne i maksimalne vrijednosti. U konretnom slucaju, tesko je nesto zakljuciti u smislu postojanja manjkavosti.

summary(LifeCycleSavings)
##        sr             pop15           pop75            dpi         
##  Min.   : 0.600   Min.   :21.44   Min.   :0.560   Min.   :  88.94  
##  1st Qu.: 6.970   1st Qu.:26.21   1st Qu.:1.125   1st Qu.: 288.21  
##  Median :10.510   Median :32.58   Median :2.175   Median : 695.66  
##  Mean   : 9.671   Mean   :35.09   Mean   :2.293   Mean   :1106.76  
##  3rd Qu.:12.617   3rd Qu.:44.06   3rd Qu.:3.325   3rd Qu.:1795.62  
##  Max.   :21.100   Max.   :47.64   Max.   :4.700   Max.   :4001.89  
##       ddpi       
##  Min.   : 0.220  
##  1st Qu.: 2.002  
##  Median : 3.000  
##  Mean   : 3.758  
##  3rd Qu.: 4.478  
##  Max.   :16.710

Dakle, pogledajmo par grafickih prikaza:

plot(stednja)

hist(stednja$sr)

hist(stednja$pop15)

hist(stednja$pop75)

hist(stednja$dpi)

hist(stednja$ddpi)

Pogledajmo sada model u kojem posmatramo stednju kao zavisnu promjenljivu, a sve ostale promjenljive kao regresore.

stednja.lm <- lm(sr~pop15+pop75+dpi+ddpi, data=stednja)
summary(stednja.lm)
## 
## Call:
## lm(formula = sr ~ pop15 + pop75 + dpi + ddpi, data = stednja)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -8.2422 -2.6857 -0.2488  2.4280  9.7509 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 28.5660865  7.3545161   3.884 0.000334 ***
## pop15       -0.4611931  0.1446422  -3.189 0.002603 ** 
## pop75       -1.6914977  1.0835989  -1.561 0.125530    
## dpi         -0.0003369  0.0009311  -0.362 0.719173    
## ddpi         0.4096949  0.1961971   2.088 0.042471 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 3.803 on 45 degrees of freedom
## Multiple R-squared:  0.3385, Adjusted R-squared:  0.2797 
## F-statistic: 5.756 on 4 and 45 DF,  p-value: 0.0007904

Mozemo testirati da li koeficijenti koji se odnose na regresore imaju statisticku znacajnost. Odnosno, imamo hipotezu da \(\beta_1=\beta_2=\beta_2=\beta_4=0\) posebno - da bi u potpunosti bilo jasno sta softver izbaci kao rezultat. Kako je p vrijednost mala, mozemo odbaciti navedenu hipotezu. Ovdje smo imali F test - zajednicki smo testirali sve koeficejnte. Pojedinacne p vrijednosti se odnose na pojedine koeficijente, te omogucavaju interpretaciju rezultata u tom smislu. Dakle, uradimo istu stvar direktno (dobijamo isti rezultat kao sto je u ispisu). U sustini, uslovno govoreci, testiramo da li je vrijednost \((1-R^2)\) statisticki znacajno razlicita od nule.

TSS<-sum((stednja$sr-mean(stednja$sr))^2)
RSS<-sum(stednja.lm$res^2)
((TSS-RSS)/4)/(RSS/45)
## [1] 5.755681
1-pf(5.75579, 4,45)
## [1] 0.0007902729

Zasto u imeniocu imamo 4, odnosno 45? (n-1 stepeni slobode)

Pogledajmo nesto drugaciji model, odnosno model u kojem imamo jedan manje regresor nego u prethodnom slucaju.

stednja.lm2<- lm(sr~pop75+dpi+ddpi, data=stednja)

Kako mozemo “pjeske” ispitati statisticku znacajnost pojedino koeficijenata, odnosno konkretno onog vezanog za promjenljivu pop75. Izracunajmo RSS i statistiku F testa.

sum(stednja.lm2$res^2)
## [1] 797.7249
(797.72-650.71)/(650.71/45)
## [1] 10.16651
1-pf(10.16651, 1, 45)
## [1] 0.002603116

Mozemo sada dalje odrediti statitiku t testa, odnosno p vrijednost.

sqrt(10.167)
## [1] 3.188573
2*(1-pt(3.188,45))
## [1] 0.002606756

Dakle, odbacujemo \(H_0\) da je pop75 jednako nuli, odnosno da nije statisticki znacajan.

Napomenimo da poredenje dva “ugnjezedena” (nested) modela u ovakvim slucajevima je mozda pogodnije putem ANOVA. Analiza varijacija, polazi od varijacija…

anova(stednja.lm2, stednja.lm)

Pogledajmo neke grafikone.

plot(stednja.lm, scale=0, page=1, all.terms=T)

plot(stednja.lm2, scale=0, page=1, all.terms=T)

Sto se tice samo pristupa rezultatima:

stednja.lm <- lm(sr~pop15+pop75+dpi+ddpi, data=stednja)
output<-summary(stednja.lm)
SSR <- deviance(stednja.lm)
LL <- logLik(stednja.lm)
DegreesOfFreedom <- stednja.lm$df
Yhat <- stednja.lm$fitted.values
Coef <- stednja.lm$coefficients
Resid <- stednja.lm$residuals
s <- stednja.lm$sigma 
RSquared <- stednja.lm$r.squared
CovMatrix <- s^2*stednja.lm$cov # ili vcov()
aic <- AIC(stednja.lm)