Norge, som de fleste land, samler inn data og beregner et nasjonalregnskap. Dette kan sammenlignes med vanlig regnskap. Det skal gi innblikk i den økonomiske situasjon til landet. Hvis vi har en resesjon, vet vi det på grunn av nasjonalregnskapet.

Vi kan enkelt få tilgang til nasjonalregnskapet direkt via SSB sin webside. Som vanlig, begynner vi med å laste inn vår tidyverse pakke. I tillegg, skal vi laste inn en pakke som heter zoo, som hjelper oss jobbe med tidsrekke-data.

library(tidyverse)
library(zoo)

Data kommer fra SSB, per kvartal og det opprinnelige datasettet kan man finne her:

http://data.ssb.no/api/v0/dataset/59022.csv

Du kan lese mer om nasjonalregnskapet her:

https://www.ssb.no/nasjonalregnskap-og-konjunkturer

Men vi laster inn en kopi fra min webside som jeg har bearbeidet litt for å unngå noen tekniske problemer (noen symboler som R visst har vanskelig å tolke).

NR=read_csv2("https://jmaurit.github.io/anvendt_macro/lab/data/nr.csv",  col_names=FALSE, na = c(".", ".."), skip=1)
## Using ',' as decimal and '.' as grouping mark. Use read_delim() for more control.
## Parsed with column specification:
## cols(
##   X1 = col_character(),
##   X2 = col_character(),
##   X3 = col_character(),
##   X4 = col_double()
## )
#datasett fra SSB api side: https://data.ssb.no/api/v0/dataset/?lang=no

colnames(NR) = c("variabel", "kvartal", "enhet", "verdi") #gi variable-navnene. 
kvartal = as.yearqtr(NR$kvartal, format = "%YK%q")
NR["kvartal"] = as.Date(kvartal)
NR
## # A tibble: 8,364 x 4
##    variabel                           kvartal    enhet                     verdi
##    <chr>                              <date>     <chr>                     <dbl>
##  1 koh.nrpriv Konsum i husholdninger… 2000-01-01 Faste 2017-priser (mill… 214106
##  2 koh.nrpriv Konsum i husholdninger… 2000-01-01 Faste 2017-priser, seso… 220963
##  3 koh.nrpriv Konsum i husholdninger… 2000-04-01 Faste 2017-priser (mill… 220666
##  4 koh.nrpriv Konsum i husholdninger… 2000-04-01 Faste 2017-priser, seso… 224675
##  5 koh.nrpriv Konsum i husholdninger… 2000-07-01 Faste 2017-priser (mill… 226324
##  6 koh.nrpriv Konsum i husholdninger… 2000-07-01 Faste 2017-priser, seso… 224669
##  7 koh.nrpriv Konsum i husholdninger… 2000-10-01 Faste 2017-priser (mill… 232149
##  8 koh.nrpriv Konsum i husholdninger… 2000-10-01 Faste 2017-priser, seso… 223320
##  9 koh.nrpriv Konsum i husholdninger… 2001-01-01 Faste 2017-priser (mill… 217614
## 10 koh.nrpriv Konsum i husholdninger… 2001-01-01 Faste 2017-priser, seso… 225962
## # … with 8,354 more rows

Oppgave 1: Svar på følgende spørsmål basert på koden over. Det kan være nyttig å se på den originale datasettet ved å sette inn URLen i en nettleser.

1.) Hvorfor bruker vi read_csv2, isteden for read_csv til å laste inn vår data?

2.) Hva gjør kommandoen as.yearqtr(…)? Denne kommandoen kommer fra pakken, zoo?

Her bruker vi kommandoen unique til se på hva de unike kategoriene er for vår data:

unique(NR$enhet)
## [1] "Faste 2017-priser (mill. kr)"               
## [2] "Faste 2017-priser, sesongjustert (mill. kr)"

Vi kan velge mellom sesongjustert og ikke sesongjustert. Hva betyr sesongjustert? Er det grunner for å velge den ene eller den andre?

Vi velger å bruke sesongjusterte tall. Vi bruker filter kommandoen til å velge ut rader og select kommandfoen til å velge ut kolloner.

NRSA = filter(NR, enhet == "Faste 2017-priser, sesongjustert (mill. kr)")
NRSA = select(NRSA, variabel, kvartal, verdi) #ta med bare disse tre variablene 

Her ser vi at variabelen består av en kategori (brutto-investering, privatkonsum, osv) og deretter underkategorier. Vi vil splitte variablen inn til to deler - kategori og underkategori.

unique(NRSA$variabel)
##  [1] "koh.nrpriv Konsum i husholdninger og ideelle organisasjoner"                      
##  [2] "koh.nr61_  Konsum i husholdninger"                                                
##  [3] "koh.nr61vare  Varekonsum"                                                         
##  [4] "koh.nr61tjen  Tjenestekonsum"                                                     
##  [5] "koh.nr61L8  Husholdningenes kjøp i utlandet"                                      
##  [6] "koh.nr61L9  Utlendingers kjøp i Norge"                                            
##  [7] "koi.nr66_  Konsum i ideelle organisasjoner"                                       
##  [8] "koo.nroff Konsum i offentlig forvaltning"                                         
##  [9] "koo.nr64_  Konsum i statsforvaltningen"                                           
## [10] "koo.nr64sivil  Konsum i statsforvaltningen, sivilt"                               
## [11] "koo.nr6401  Konsum i statsforvaltningen, forsvar"                                 
## [12] "koo.nr65_  Konsum i kommuneforvaltningen"                                         
## [13] "bif.nr83_6 Bruttoinvestering i fast realkapital"                                  
## [14] "bif.nr83oljroer  Utvinning og rørtransport (bruttoinvestering)"                   
## [15] "bif.pub8X50A  Utenriks sjøfart (bruttoinvestering)"                               
## [16] "bif.nr83_6fn  Fastlands-Norge (bruttoinvestering)"                                
## [17] "bif.nr83_6fnxof  Fastlands-Norge utenom offentlig forvaltning (bruttoinvestering)"
## [18] "bif.nr83naer  Næringer (bruttoinvestering)"                                       
## [19] "bif.nr8307  Tjenester tilknyttet utvinning (bruttoinvestering)"                   
## [20] "bif.nr83rest  Andre tjenester (bruttoinvestering)"                                
## [21] "bif.nr83indberg  Industri og bergverk (bruttoinvestering)"                        
## [22] "bif.nr83vare  Annen vareproduksjon (bruttoinvestering)"                           
## [23] "bif.nr8368  Boliger (husholdninger) (bruttoinvestering)"                          
## [24] "bif.nr84_5  Offentlig forvaltning (bruttoinvestering)"                            
## [25] "biv.nr0890 Anskaffelser minus avhendelse av verdigjenstander"                     
## [26] "bil.nr8lu_ Lagerendring og statistiske avvik"                                     
## [27] "bif.nr8_ Bruttoinvestering i alt"                                                 
## [28] "makrok.nrianv Innenlandsk sluttanvendelse"                                        
## [29] "makrok.nrefn Etterspørsel fra Fastlands-Norge (ekskl. lagerendring)"              
## [30] "makrok.nreoff Etterspørsel fra offentlig forvaltning"                             
## [31] "eks.nrtot Eksport i alt"                                                          
## [32] "eks.nrtradvare  Tradisjonelle varer (eksport)"                                    
## [33] "eks.puboljegs  Råolje og naturgass (eksport)"                                     
## [34] "eks.nrskiplfly  Skip, plattformer og fly (eksport)"                               
## [35] "eks.nrtjen  Tjenester (eksport)"                                                  
## [36] "makrok.nrsanv Samlet sluttanvendelse"                                             
## [37] "imp.nrtot Import i alt"                                                           
## [38] "imp.nrtradvare  Tradisjonelle varer (import)"                                     
## [39] "imp.puboljegs  Råolje og naturgass (import)"                                      
## [40] "imp.nrskiplfly  Skip, plattformer og fly (import)"                                
## [41] "imp.nrtjen  Tjenester (import)"                                                   
## [42] "bnpb.nr23_9 Bruttonasjonalprodukt, markedsverdi"                                  
## [43] "bnpb.nr23_9fn Bruttonasjonalprodukt Fastlands-Norge, markedsverdi"                
## [44] "bnpb.nr23oljsj Oljevirksomhet og utenriks sjøfart"                                
## [45] "bnpb.nr23_6fn Bruttoprodukt Fastlands-Norge, basisverdi"                          
## [46] "bnpb.nr23_6fnxof  Fastlands-Norge utenom offentlig forvaltning (bruttoprodukt)"   
## [47] "bnpb.nr23indberg  Industri og bergverk (bruttoprodukt)"                           
## [48] "bnpb.nr23vare  Annen vareproduksjon (bruttoprodukt)"                              
## [49] "bnpb.nr23ptjfn  Tjenester inkl. boligtjenester (bruttoprodukt)"                   
## [50] "bnpb.nr24_5  Offentlig forvaltning (bruttoprodukt)"                               
## [51] "bnpb.nr29korr Produktavgifter og -subsidier"

Vi bruker funksjonen “separate” pakken til å gjøre dette:

NRSA = separate(NRSA, variabel, into = c("kateg", "variabel"), sep="\\.", extra = "merge")

Man kan lese mer om separate og tidyr her

Vi definerer de nye kolomene kateg og variabel som faktor:

Nå vil vi se litt nærmere på investering.

SSB kaller kategorien for Bruttoinvestering: Hvorfor brutto? Hva ville netto-investering vært?

Er investering en strømnings- eller en beholdnings-variabel?

investering = filter(NRSA, kateg =="bif") #henter inn brutto-investering - "bif"
investering["variabel"] = factor(investering$variabel)
levels(investering$variabel)
##  [1] "nr8_ Bruttoinvestering i alt"                                                 
##  [2] "nr83_6 Bruttoinvestering i fast realkapital"                                  
##  [3] "nr83_6fn  Fastlands-Norge (bruttoinvestering)"                                
##  [4] "nr83_6fnxof  Fastlands-Norge utenom offentlig forvaltning (bruttoinvestering)"
##  [5] "nr8307  Tjenester tilknyttet utvinning (bruttoinvestering)"                   
##  [6] "nr8368  Boliger (husholdninger) (bruttoinvestering)"                          
##  [7] "nr83indberg  Industri og bergverk (bruttoinvestering)"                        
##  [8] "nr83naer  Næringer (bruttoinvestering)"                                       
##  [9] "nr83oljroer  Utvinning og rørtransport (bruttoinvestering)"                   
## [10] "nr83rest  Andre tjenester (bruttoinvestering)"                                
## [11] "nr83vare  Annen vareproduksjon (bruttoinvestering)"                           
## [12] "nr84_5  Offentlig forvaltning (bruttoinvestering)"                            
## [13] "pub8X50A  Utenriks sjøfart (bruttoinvestering)"

Nå har vi en liste over de ulike brutto-investeringene. Vi rydder opp i navnene:

invest_var = c("Bruttoinvestering i alt",                      
 "fast realkapital",                                    
 "Fastlands-Norge",                                 
 "Fastlands-Norge utenom offentlig forvaltning",
 "Tjenester tilknyttet utvinning" ,                
 "Boliger",                         
  "Industri og bergverk",                      
 "Naeringer",                                   
 "Utvinning og roertransport",               
 "Andre tjenester",                              
 "Annen vareproduksjon",                         
 "Offentlig forvaltning",                           
 "Utenriks sjoefart")  

#her skal vi endre kategori-variablene, som blir kalt "levels"
levels(investering$variabel) = invest_var

Og da kan vi bruke ggplot og facet_wrap til å se på alle subkategoriene:

ggplot(investering, aes(x=kvartal, y=verdi)) +
  geom_line() +
  facet_wrap(~variabel, ncol=2, scales="free")

Kanskje dette er litt for mye informasjon - la oss begrense det litt:

invest_l <- c("Bruttoinvestering i alt",          
 "fast realkapital",
 "Fastlands-Norge utenom offentlig forvaltning",
 "Boliger", "Industri og bergverk",                      
 "Naeringer", "Utvinning og roertransport",               
 "Offentlig forvaltning")

Med denne kommandoen skal vi begrense vår datasett til kategoriene i variabel som vi har samlet in invest_l

investering_l <- filter(investering, variabel %in% invest_l)
#investering_l <- investering[investering$variabel %in% invest_l,]

ggplot(investering_l, aes(x=kvartal, y=verdi)) +
  geom_line() +
  facet_wrap(~variabel, ncol=2, scales="free")

Kan man se noen trender her?

Hvilke typer investering har gått ned de siste årene? Hvilke typer har gått opp? Kan du forklare hvorfor?

Vi har hatt veldig lave renter de siste par årene. Hvordan har det påvirket investering og i hvilken kategori?

Handelsbalansen - eksport og import

Nå ser vi litt på handelsbalansen - eksport og import

Først skal vi se på betegnelsene for alle hovedkategoriene.

unique(NRSA$kateg)
##  [1] "koh"    "koi"    "koo"    "bif"    "biv"    "bil"    "makrok" "eks"   
##  [9] "imp"    "bnpb"

Vi kan sikkert gjette at “eks” representerer eksport. Vi bruker filter til å lage en ny datasett kunn med eksport data.

eksport = filter(NRSA, kateg == "eks") #velger ut eksport-kategorien. 

Her forteller vi R at “variabel” er en kategory eller factor, og da kan vi se de ulike eksport kategoriene.

eksport["variabel"] = factor(eksport$variabel)
levels(eksport$variabel)
## [1] "nrskiplfly  Skip, plattformer og fly (eksport)"
## [2] "nrtjen  Tjenester (eksport)"                   
## [3] "nrtot Eksport i alt"                           
## [4] "nrtradvare  Tradisjonelle varer (eksport)"     
## [5] "puboljegs  Råolje og naturgass (eksport)"
levels(eksport$variabel) <- c("Skip, plattformer og fly",
                              "Tjenester",                   
                              "Eksport i alt",                            
                              "Tradisjonelle varer",     
                              "Raaolje og naturgass")

Oppgaver:

Oppgave 1.)

  • Prøv å plotte eksport-kategoriene med ggplot og facet_wrap.

  • Kan man gjøre det samme for import?

  • Hvilken trender ser man i disse dataseriene?

  • Har norge en positiv handelsbalanse?

  • Om eksport av olje og gass skulle forsvinne, hva ville skjedd med handelsbalansen?

  • Vi kan også finne data om privatkonsum (“koh”) og offentligkonsum (“okon”). Dra ut disse dataene og bruk ggplot til å se på alle subkategoriene. Finner man noen trender?

Oppgave 2: Intro til økonometri

I denne oppgaven skal vi begynne å øve på litt formell økonometri. Hovedverktøyet er linear-regresjon.

Vi skal prøve å svare på et enkelt spørsmål: Hvor mye påvirker investeringer i boliger BNP?

Vi kan begynne med å finne fram til data og rydde litt:

bnp = NRSA[NRSA$kateg == "bnpb",]
bnp$variabel <- factor(bnp$variabel)
bnp_var <- c("Bruttoprodukt Fastlands-Norge, basisverdi",                        
             "Fastlands-Norge utenom offentlig forvaltning (bruttoprodukt)",
             "Bruttonasjonalprodukt, markedsverdi",                                
             "Bruttonasjonalprodukt Fastlands-Norge, markedsverdi",              
              "Industri og bergverk (bruttoprodukt)",                       
              "Oljevirksomhet og utenriks sjoefart",                         
              "Tjenester inkl. boligtjenester (bruttoprodukt)",               
              "nnen vareproduksjon (bruttoprodukt)",                          
              "Offentlig forvaltning (bruttoprodukt)",                            
              "Produktavgifter og -subsidier")
levels(bnp$variabel) = bnp_var

Nå er det flere måter å måle BNP på. Hvilken metrikk skal vi velge? Total BNP - “Bruttonasjonalprodukt, markedsverdi” - inkluderer også olje og gass. Er det grunn for å inkludere dette, eller burde vi se på kun BNP, Fastlands-Norge.

Jeg velger å bruke fastlands-Norge:

privat_bnp_fastland = bnp[bnp$variabel == "Bruttonasjonalprodukt Fastlands-Norge, markedsverdi",]
privat_bnp_fastland = privat_bnp_fastland[,c("kvartal", "verdi")]
colnames(privat_bnp_fastland)[2]<-"privat_bnp_fastland"

Nå får vi også tall for investering:

investering = filter(NRSA, kateg=="bif")
investering["variabel"] <- factor(investering$variabel)
levels(investering$variabel)
##  [1] "nr8_ Bruttoinvestering i alt"                                                 
##  [2] "nr83_6 Bruttoinvestering i fast realkapital"                                  
##  [3] "nr83_6fn  Fastlands-Norge (bruttoinvestering)"                                
##  [4] "nr83_6fnxof  Fastlands-Norge utenom offentlig forvaltning (bruttoinvestering)"
##  [5] "nr8307  Tjenester tilknyttet utvinning (bruttoinvestering)"                   
##  [6] "nr8368  Boliger (husholdninger) (bruttoinvestering)"                          
##  [7] "nr83indberg  Industri og bergverk (bruttoinvestering)"                        
##  [8] "nr83naer  Næringer (bruttoinvestering)"                                       
##  [9] "nr83oljroer  Utvinning og rørtransport (bruttoinvestering)"                   
## [10] "nr83rest  Andre tjenester (bruttoinvestering)"                                
## [11] "nr83vare  Annen vareproduksjon (bruttoinvestering)"                           
## [12] "nr84_5  Offentlig forvaltning (bruttoinvestering)"                            
## [13] "pub8X50A  Utenriks sjøfart (bruttoinvestering)"
invest_var = c("Bruttoinvestering i alt",                                                  
 "fast realkapital",                                    
 "Fastlands-Norge",                                 
 "Fastlands-Norge utenom offentlig forvaltning",
 "Tjenester tilknyttet utvinning" ,                
 "Boliger (husholdninger)",                         
  "Industri og bergverk ",                      
 "Naeringer ",                                   
 "Utvinning og roertransport",               
 "Andre tjenester",                              
 "Annen vareproduksjon",                         
 "Offentlig forvaltning",                           
 "Utenriks sjoefart")  

levels(investering$variabel) = invest_var

inv_bolig <- investering[investering$variabel=="Boliger (husholdninger)",]
inv_bolig <- inv_bolig[,c("kvartal", "verdi")]
colnames(inv_bolig)[2] <- "bolig_investering"
head(inv_bolig)
## # A tibble: 6 x 2
##   kvartal    bolig_investering
##   <date>                 <dbl>
## 1 2000-01-01             25378
## 2 2000-04-01             24980
## 3 2000-07-01             25889
## 4 2000-10-01             26618
## 5 2001-01-01             27640
## 6 2001-04-01             27831

Nå setter vi de to dataseriene vi er interessert i en dataframe ved å bruke merge

model_data = merge(privat_bnp_fastland, inv_bolig, by="kvartal")
head(model_data)
##      kvartal privat_bnp_fastland bolig_investering
## 1 2000-01-01              466396             25378
## 2 2000-04-01              462879             24980
## 3 2000-07-01              466956             25889
## 4 2000-10-01              468114             26618
## 5 2001-01-01              477205             27640
## 6 2001-04-01              473166             27831
model_data_long = model_data %>% pivot_longer(-kvartal, names_to="kategori", values_to="verdi")
tail(model_data_long)
## # A tibble: 6 x 3
##   kvartal    kategori             verdi
##   <date>     <chr>                <dbl>
## 1 2019-10-01 privat_bnp_fastland 736579
## 2 2019-10-01 bolig_investering    45101
## 3 2020-01-01 privat_bnp_fastland 720328
## 4 2020-01-01 bolig_investering    42926
## 5 2020-04-01 privat_bnp_fastland 675265
## 6 2020-04-01 bolig_investering    43323

Vi kan bruke ggplot til å visualisere dataen:

ggplot(model_data_long, aes(x=kvartal, y=verdi)) +
  geom_line() +
  facet_wrap(~kategori, nrow=2, scales="free")

Er det noe som er verdt å legge merke til her?

Nå kan vi kjøre en regresjon. Vi kan begynne med å kjøre den enkleste regresjonen mulig:

\[bnp = \alpha + \beta bolig\_investering + \epsilon\]

Dette er veldig enkelt å gjøre i R:

model1= lm(privat_bnp_fastland ~ bolig_investering, data = model_data)

Her har vi kjørt regresjonen med funksjonen lm som står for “linear model”, og lagret resultatene i en objekt som heter model1. Ellers kan man se på de ulike delene (eller “attributes”) ved å bruke str

Vi kan oppsummere resultatene ved å bruke summary.

summary(model1)
## 
## Call:
## lm(formula = privat_bnp_fastland ~ bolig_investering, data = model_data)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -60279 -24874  -5976  22379  75649 
## 
## Coefficients:
##                    Estimate Std. Error t value Pr(>|t|)    
## (Intercept)       2.052e+05  1.956e+04   10.49   <2e-16 ***
## bolig_investering 1.059e+01  5.111e-01   20.71   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 33570 on 80 degrees of freedom
## Multiple R-squared:  0.8428, Adjusted R-squared:  0.8408 
## F-statistic: 428.9 on 1 and 80 DF,  p-value: < 2.2e-16
  • Hvordan kan vi tolke disse resultatene?

  • Gir de noen mening? Er de riktige?

  • Hvordan kunne man endre regresjonen til å få resultater med mer mening?