• R/O
  • SSH

标签
No Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

File Info

Rev. 502367225f8f688864c2cb2f46280ee4a8167be4
大小 8,860 字节
时间 2016-03-12 00:24:41
作者 Lorenzo Isella
Log Message

A code for nowcasting berd also using some interesting time series transformations (including the removal of NaN etc...).

Content

rm(list=ls())

library(ggplot2)
library(grid)
library(reshape2)
library(RJSDMX)
require(gridExtra)
library(tikzDevice)
library(scales)
library(digest)
library(readr)
library(viridis)
library(tis)
library(forecast)
library(dplyr)

source("/home/lorenzo/myprojects-hg/R-codes/stat_lib.R")




year_cut <- 2000

options( scipen = 16 )

golden_ratio <- golden()

data1 <- getTimeSeries('EUROSTAT',
    'gba_nabsfin07.A.NABS99.MIO_NAC.BE|BG|CZ|DK|DE|EE|IE|EL|ES|FR|IT|CY|LV|LT|LU|HU|MT|NL|AT|PL|PT|RO|SI|SK|FI|SE|UK|HR')


data_gba <- reshape_series(data1, year_cut)


data2 <- getTimeSeries('EUROSTAT',
    'rd_e_gerdtot.A.TOTAL|BES.MIO_NAC.BE|BG|CZ|DK|DE|EE|IE|EL|ES|FR|IT|CY|LV|LT|LU|HU|MT|NL|AT|PL|PT|RO|SI|SK|FI|SE|UK|HR')

data_gerd <- reshape_series(data2, year_cut)

data_gba$indicator <- "GBAORD"

sel <- grep("TOTAL", data_gerd$indicator)

data_gerd$indicator[sel] <- "GERD"
data_gerd$indicator[-sel] <- "BERD"



data_tot <- rbind(data_gba, data_gerd)

data_tot$indicator <- as.factor(data_tot$indicator)



lbls <- levels(data_tot$indicator)

col_seq <- seq(length(lbls))
#col_seq[5] <- "brown"

title_exp <- paste("R&D Expenditure and Allocations", sep="")


gpl <- ggplot(data_tot, aes(x=year, y=value ,
                        colour=indicator,
                        shape=indicator
                       )) +

    
my_ggplot_theme(c(0.13, 0.8))+
theme(legend.position = 'right')+
geom_point(size=3) + 
geom_line()+

facet_wrap( ~ country, nrow = 7 , scales = "free_y"
               )+

    
 scale_color_viridis("",labels=c("BERD", "GBAORD", "GERD"), 
                       discrete=TRUE,na.value =  "grey85"## , formatter=comma
                       )+

    scale_shape_manual("", breaks=lbls,
                        labels=c("BERD", "GBAORD", "GERD"),
                    values=col_seq) +

    
    ## scale_colour_manual("Sectors of performance\n", breaks=lbls,
    ##                     labels=c("BERD", "GBAORD", "GERD"),
    ##                 values=col_seq) +

#scale_y_continuous(limits=c(0.3,0.9),breaks=seq(0.3, 0.9, by=0.3))+
scale_y_continuous(breaks=pretty_breaks(n=4))+
scale_x_continuous(breaks=pretty_breaks(n=4))+

labs(title=title_exp)+
theme(plot.title = element_text(lineheight=.8, size=24, face="bold", vjust=1))+
theme(legend.text = element_text(vjust=1,lineheight=1 ))+
theme(legend.title = element_text(vjust=1,lineheight=1, size=12 ))+
 xlab("Year")+
 ylab("Millions National Currency")



fname <- paste("gerd-berd-gbaord.pdf", sep="")
ggsave(fname, gpl, width=10*golden_ratio,height=10)


fname <- paste("_gerd-berd-gbaord.png", sep="")
ggsave(fname, gpl, width=10*golden_ratio,height=10)

#################################################

##Some examples about DE

data3 <- getTimeSeries('EUROSTAT',
    'namq_10_a10_e.Q.THS_PER.M_N.NSA.EMP_DC.BE|BG|CZ|DK|DE|EE|IE|EL|ES|FR|IT|CY|LV|LT|LU|HU|MT|NL|AT|PL|PT|RO|SI|SK|FI|SE|UK|HR')



de_emp_mn <- data3$namq_10_a10_e.Q.THS_PER.M_N.NSA.EMP_DC.DE


data4 <- getTimeSeries('EUROSTAT',
    'namq_10_a10_e.Q.THS_PER.C.NSA.EMP_DC.BE|BG|CZ|DK|DE|EE|IE|EL|ES|FR|IT|CY|LV|LT|LU|HU|MT|NL|AT|PL|PT|RO|SI|SK|FI|SE|UK|HR')



de_emp_c <- data4$namq_10_a10_e.Q.THS_PER.C.NSA.EMP_DC.DE



data5 <- getTimeSeries('EUROSTAT',
    'namq_10_a10.Q.CP_MNAC.NSA.M_N.B1G.BE|BG|CZ|DK|DE|EE|IE|EL|ES|FR|IT|CY|LV|LT|LU|HU|MT|NL|AT|PL|PT|RO|SI|SK|FI|SE|UK|HR')



de_gva_mn <- data5$namq_10_a10.Q.CP_MNAC.NSA.M_N.B1G.DE


data6 <- getTimeSeries('EUROSTAT',
    'namq_10_a10.Q.CP_MNAC.NSA.C.B1G.BE|BG|CZ|DK|DE|EE|IE|EL|ES|FR|IT|CY|LV|LT|LU|HU|MT|NL|AT|PL|PT|RO|SI|SK|FI|SE|UK|HR')



de_gva_c <- data6$namq_10_a10.Q.CP_MNAC.NSA.C.B1G.DE



data7 <- getTimeSeries('EUROSTAT',
    'namq_10_gdp.Q.CP_MNAC.NSA.B1GQ|P3|P62|P61.BE|BG|CZ|DK|DE|EE|IE|EL|ES|FR|IT|CY|LV|LT|LU|HU|MT|NL|AT|PL|PT|RO|SI|SK|FI|SE|UK|HR')



data8 <- getTimeSeries('EUROSTAT',
    'namq_10_a10.Q.CP_MNAC.NSA.B-E.B1G.BE|BG|CZ|DK|DE|EE|IE|EL|ES|FR|IT|CY|LV|LT|LU|HU|MT|NL|AT|PL|PT|RO|SI|SK|FI|SE|UK|HR')


data9 <- getTimeSeries('EUROSTAT',
    'namq_10_a10_e.Q.THS_PER.B-E.NSA.EMP_DC.BE|BG|CZ|DK|DE|EE|IE|EL|ES|FR|IT|CY|LV|LT|LU|HU|MT|NL|AT|PL|PT|RO|SI|SK|FI|SE|UK|HR')



de_emp_ind <- data9$"namq_10_a10_e.Q.THS_PER.B-E.NSA.EMP_DC.DE"

de_emp_ind <- na.omit(as.ts(de_emp_ind))


de_emp_ind_agg <- aggregate(de_emp_ind, nfreq=1)





de_exp_ind <- data8$"namq_10_a10.Q.CP_MNAC.NSA.B-E.B1G.DE"

de_exp_ind <- na.omit(as.ts(de_exp_ind))


de_exp_ind_agg <- aggregate(de_exp_ind, nfreq=1)





de_gdp <- data7$namq_10_gdp.Q.CP_MNAC.NSA.B1GQ.DE

de_gdp <- na.omit(as.ts(de_gdp))


de_gdp_agg <- aggregate(de_gdp, nfreq=1)


de_exp_ser <- data7$namq_10_gdp.Q.CP_MNAC.NSA.P62.DE

de_exp_ser <- na.omit(as.ts(de_exp_ser))

de_exp_ser_agg <- aggregate(de_exp_ser, nfreq=1)


## de_exp_ser <- window(de_exp_ser, year_cut)


de_exp_goods <- data7$namq_10_gdp.Q.CP_MNAC.NSA.P61.DE

de_exp_goods <- na.omit(as.ts(de_exp_goods))

de_exp_goods_agg <- aggregate(de_exp_goods, nfreq=1)



de_gov_exp <- data7$namq_10_gdp.Q.CP_MNAC.NSA.P3.DE

de_gov_exp <- na.omit(as.ts(de_gov_exp))

de_gov_exp_agg <- aggregate(de_gov_exp, nfreq=1)



de_gbaord <- data1$gba_nabsfin07.A.NABS99.MIO_NAC.DE

de_gbaord <- na.omit(as.ts(de_gbaord))

de_gbaord <- window(de_gbaord, 1991)

de_berd <- data2$rd_e_gerdtot.A.BES.MIO_NAC.DE
de_berd <- na.omit(as.ts(de_berd))
de_berd <- window(de_berd, 1991)


de_emp_mn <- na.omit(as.ts(de_emp_mn))
de_emp_mn_agg <- aggregate(de_emp_mn, nfreq=1)


de_emp_c <- na.omit(as.ts(de_emp_c))
de_emp_c_agg <- aggregate(de_emp_c, nfreq=1)



de_gva_mn <- na.omit(as.ts(de_gva_mn))
de_gva_mn_agg <- aggregate(de_gva_mn, nfreq=1)


de_gva_c <- na.omit(as.ts(de_gva_c))
de_gva_c_agg <- aggregate(de_gva_c, nfreq=1)



predictors <- cbind(de_gdp_agg, de_gbaord ,   de_exp_ser_agg, de_exp_goods_agg,
                    de_emp_mn_agg, de_emp_c_agg, de_gva_mn_agg, de_gva_c_agg,
                    de_gov_exp_agg, de_emp_ind_agg, de_exp_ind_agg
                    )

## ## I can download the data directly as a data frame in a wide normalized format

## data7bis <- getTimeSeriesTable('EUROSTAT',
##     'namq_10_gdp.Q.CP_MNAC.NSA.B1GQ|P3|P62|P61.BE|BG|CZ|DK|DE|EE|IE|EL|ES|FR|IT|CY|LV|LT|LU|HU|MT|NL|AT|PL|PT|RO|SI|SK|FI|SE|UK|HR')


data_df <- as.data.frame(predictors)

data_df_red <- data_df[1:(nrow(data_df)-1), ]

data_df_red$berd <- de_berd


mylm <- lm(berd~ de_emp_mn_agg+  de_emp_c_agg +
               de_gov_exp_agg ## +
               ## de_emp_ind_agg 
         , data=data_df_red)

berd_new <- predict(mylm, data_df)




df <- data.frame(berd = c(de_berd), year = c(time(de_berd)))

df2 <- data.frame(berd =c(berd_new), year=c(df$year, (max(df$year)+1)))

df$type <- "historical data"
df2$type <- "model"

df2$type[nrow(df2)] <- "nowcast"


df_tot <- rbind(df, df2)


df_tot$type <- as.factor(df_tot$type)



lbls <- levels(df_tot$type)

col_seq <- seq(length(lbls))
#col_seq[5] <- "brown"

title_exp <- paste("German BERD Nowcast", sep="")


gpl <- ggplot(df_tot, aes(x=year, y=berd ,
                        colour=type,
                        shape=type
                       )) +

    
my_ggplot_theme(c(0.13, 0.8))+
theme(legend.position = 'right')+
geom_point(size=3) + 
geom_line()+

## facet_wrap( ~ country, nrow = 7 , scales = "free_y"
##                )+

    
 scale_color_viridis(NULL,labels=c("data", "model", "nowcast"), 
                       discrete=TRUE,na.value =  "grey85"## , formatter=comma
                       )+

    scale_shape_manual(NULL, breaks=lbls,
                        labels=c("data", "model", "nowcast"),
                    values=col_seq) +

    
    ## scale_colour_manual("Sectors of performance\n", breaks=lbls,
    ##                     labels=c("BERD", "GBAORD", "GERD"),
    ##                 values=col_seq) +

#scale_y_continuous(limits=c(0.3,0.9),breaks=seq(0.3, 0.9, by=0.3))+
scale_y_continuous(breaks=pretty_breaks(n=4))+
scale_x_continuous(breaks=pretty_breaks(n=4))+

labs(title=title_exp)+
theme(plot.title = element_text(lineheight=.8, size=24, face="bold", vjust=1))+
theme(legend.text = element_text(vjust=1,lineheight=1 ))+
theme(legend.title = element_text(vjust=1,lineheight=1, size=12 ))+
 xlab("Year")+
 ylab("BERD (MIO NAC)")



fname <- paste("berd_nowcast.pdf", sep="")
ggsave(fname, gpl, width=5*golden_ratio,height=5)


fname <- paste("berd_nowcast.png", sep="")
ggsave(fname, gpl, width=5*golden_ratio,height=5)




###########################################################à

## other attempts do not yield much

data_df_red_log <- log(data_df_red)

data_df_log <- log(data_df)

mylm_log <- lm(berd~ de_emp_mn_agg+  de_emp_c_agg +de_gov_exp_agg , data=data_df_red_log)

berd_new_log <- exp(predict(mylm_log, data_df_log))




xreg <- select(data_df_red, de_emp_mn_agg,  de_emp_c_agg, de_gov_exp_agg )

arima_mm <- auto.arima(data_df_red$berd,xreg=xreg, stepwise=FALSE, approximation=FALSE,max.order=9)



print("So far so good")