#Downloading needed libraries
library(tidyverse)
library(broom)
library(haven)
library(AER)
library(sandwich)
library(lmtest)
library(car)
library(stargazer)
library(dplyr)
library(ggplot2)
library(GGally)
library(psych)
library(corrplot)
library(readxl)
library(writexl)
#TS graphs
library(quantmod)
library(tseries)
library(forecast)
library(TSstudio)
library(reshape2)
library(plotly)
#Histograms
library(TSstudio)
library(reshape2)
library(tidyverse)
library(hrbrthemes)
library(viridis)
library(forcats)
#Downloading needed data
dat_1 = read_xls('C:/Users/Kolya/Documents/R/R files/Term_paper/TP_data/OCVED_FULL_05_10.xls')
length(unique(dat_1$...2)) #83
## [1] 85
dat_2 = read_xls('C:/Users/Kolya/Documents/R/R files/Term_paper/TP_data/OCVED_FULL_11_17.xls')
length(unique(dat_2$...2)) #87
## [1] 89
dat_extra = read_xlsx('C:/Users/Kolya/Documents/R/R files/Term_paper/TP_data/Classes.xlsx')
names(dat_1) <- c(c('industry', 'region', 'r.2005.1', 'r.2005.2', 'r.2005.3'), paste("r", sort(rep(c(2006:2010), 4)), rep(c(1,2,3,4),4), sep=".") )
dat_1 <- dat_1[4:length(dat_1$industry),]
names(dat_2) <- c(c('industry', 'region'), paste("r", sort(rep(c(2011:2016), 4)),rep(c(1,2,3,4),4), sep="."), 'y.2017')
dat_2 <- dat_2[4:length(dat_2$industry),]
dat <- merge(dat_1, dat_2, by = c('industry', 'region'), sort = FALSE, all.x = TRUE, all.y = TRUE)
unique(dat$region)
## [1] "Российская Федерация"
## [2] "Белгородская область"
## [3] "Брянская область"
## [4] "Владимирская область"
## [5] "Воронежская область"
## [6] "Ивановская область"
## [7] "Калужская область"
## [8] "Костромская область"
## [9] "Курская область"
## [10] "Липецкая область"
## [11] "Московская область"
## [12] "Орловская область"
## [13] "Рязанская область"
## [14] "Смоленская область"
## [15] "Тамбовская область"
## [16] "Тверская область"
## [17] "Тульская область"
## [18] "Ярославская область"
## [19] "Город Москва столица Российской Федерации город федерального значения"
## [20] "Республика Карелия"
## [21] "Республика Коми"
## [22] "Архангельская область"
## [23] "Ненецкий автономный округ (Архангельская область)"
## [24] "Вологодская область"
## [25] "Калининградская область"
## [26] "Ленинградская область"
## [27] "Мурманская область"
## [28] "Новгородская область"
## [29] "Псковская область"
## [30] "Город Санкт-Петербург город федерального значения"
## [31] "Республика Адыгея (Адыгея)"
## [32] "Республика Калмыкия"
## [33] "Краснодарский край"
## [34] "Астраханская область"
## [35] "Волгоградская область"
## [36] "Ростовская область"
## [37] "Республика Дагестан"
## [38] "Республика Ингушетия"
## [39] "Кабардино-Балкарская Республика"
## [40] "Карачаево-Черкесская Республика"
## [41] "Республика Северная Осетия-Алания"
## [42] "Чеченская Республика"
## [43] "Ставропольский край"
## [44] "Республика Башкортостан"
## [45] "Республика Марий Эл"
## [46] "Республика Мордовия"
## [47] "Республика Татарстан (Татарстан)"
## [48] "Удмуртская Республика"
## [49] "Чувашская Республика - Чувашия"
## [50] "Пермский край"
## [51] "Кировская область"
## [52] "Нижегородская область"
## [53] "Оренбургская область"
## [54] "Пензенская область"
## [55] "Самарская область"
## [56] "Саратовская область"
## [57] "Ульяновская область"
## [58] "Курганская область"
## [59] "Свердловская область"
## [60] "Тюменская область"
## [61] "Ханты-Мансийский автономный округ - Югра (Тюменская область)"
## [62] "Ямало-Ненецкий автономный округ (Тюменская область)"
## [63] "Челябинская область"
## [64] "Республика Алтай"
## [65] "Республика Тыва"
## [66] "Республика Хакасия"
## [67] "Алтайский край"
## [68] "Красноярский край"
## [69] "Иркутская область"
## [70] "Кемеровская область - Кузбасс"
## [71] "Новосибирская область"
## [72] "Омская область"
## [73] "Томская область"
## [74] "Республика Бурятия"
## [75] "Забайкальский край"
## [76] "Республика Саха (Якутия)"
## [77] "Камчатский край"
## [78] "Приморский край"
## [79] "Хабаровский край"
## [80] "Амурская область"
## [81] "Магаданская область"
## [82] "Сахалинская область"
## [83] "Еврейская автономная область"
## [84] "Чукотский автономный округ"
## [85] "Архангельская область (без АО)"
## [86] "Республика Крым"
## [87] "Город федерального значения Севастополь"
## [88] "Тюменская область (без АО)"
col_for_sum <- c()
tmp <- dat[, c(3:50)] %>% mutate_if(is.character,as.numeric)
for(year in c(2005:2016)){
year <- toString(year)
subyear <- tmp[, grepl(year, names(tmp))]
tmp[paste('r_m',year, sep = '_')] <- rowMeans(subyear)
col_for_sum <- append(col_for_sum, paste('r_m',year, sep = '_'))
}
tmp$r_m_2017 <- tmp$y.2017
tmp <- tmp[, c(49:61)]
tmp <- cbind(dat[,c(1,2)], tmp)
tmp <- tmp[c(tmp$region != 'Российская Федерация' &
tmp$region != 'Ненецкий автономный округ (Архангельская область)' &
tmp$region != 'Ямало-Ненецкий автономный округ (Тюменская область)' &
tmp$region != 'Архангельская область (без АО)' &
tmp$region != 'Тюменская область (без АО)' &
tmp$region != 'Республика Крым' &
tmp$region != 'Город федерального значения Севастополь' &
tmp$region != 'Чеченская Республика' &
tmp$region != 'Ханты-Мансийский автономный округ - Югра (Тюменская область)'),]
#Replacing names with shorter ones
tmp$region <-
replace(tmp$region,
tmp$region == "Город Москва столица Российской Федерации город федерального значения",
'Москва')
tmp$region <-
replace(tmp$region, tmp$region == "Город Санкт-Петербург город федерального значения",
"Санкт-Петербург")
unique(tmp$region)
## [1] "Белгородская область" "Брянская область"
## [3] "Владимирская область" "Воронежская область"
## [5] "Ивановская область" "Калужская область"
## [7] "Костромская область" "Курская область"
## [9] "Липецкая область" "Московская область"
## [11] "Орловская область" "Рязанская область"
## [13] "Смоленская область" "Тамбовская область"
## [15] "Тверская область" "Тульская область"
## [17] "Ярославская область" "Москва"
## [19] "Республика Карелия" "Республика Коми"
## [21] "Архангельская область" "Вологодская область"
## [23] "Калининградская область" "Ленинградская область"
## [25] "Мурманская область" "Новгородская область"
## [27] "Псковская область" "Санкт-Петербург"
## [29] "Республика Адыгея (Адыгея)" "Республика Калмыкия"
## [31] "Краснодарский край" "Астраханская область"
## [33] "Волгоградская область" "Ростовская область"
## [35] "Республика Дагестан" "Республика Ингушетия"
## [37] "Кабардино-Балкарская Республика" "Карачаево-Черкесская Республика"
## [39] "Республика Северная Осетия-Алания" "Ставропольский край"
## [41] "Республика Башкортостан" "Республика Марий Эл"
## [43] "Республика Мордовия" "Республика Татарстан (Татарстан)"
## [45] "Удмуртская Республика" "Чувашская Республика - Чувашия"
## [47] "Пермский край" "Кировская область"
## [49] "Нижегородская область" "Оренбургская область"
## [51] "Пензенская область" "Самарская область"
## [53] "Саратовская область" "Ульяновская область"
## [55] "Курганская область" "Свердловская область"
## [57] "Тюменская область" "Челябинская область"
## [59] "Республика Алтай" "Республика Тыва"
## [61] "Республика Хакасия" "Алтайский край"
## [63] "Красноярский край" "Иркутская область"
## [65] "Кемеровская область - Кузбасс" "Новосибирская область"
## [67] "Омская область" "Томская область"
## [69] "Республика Бурятия" "Забайкальский край"
## [71] "Республика Саха (Якутия)" "Камчатский край"
## [73] "Приморский край" "Хабаровский край"
## [75] "Амурская область" "Магаданская область"
## [77] "Сахалинская область" "Еврейская автономная область"
## [79] "Чукотский автономный округ"
dat_extra <- dat_extra[,c(2,5,7:9)]
tmp$industry <- gsub("(РАЗДЕЛ\\s+.\\s+|Подраздел\\s+..\\s+)", "", tmp$industry)
tmp$industry <- toupper(tmp$industry)
tmp$industry <- str_squish(tmp$industry)
dat_extra$Name <- toupper(dat_extra$Name)
dat_extra$Name <- str_squish(dat_extra$Name)
tmp_1 <- merge(tmp, dat_extra, by.x = 'industry', by.y = 'Name', sort = TRUE)
tmp_1[,3:15][is.na(tmp_1[, 3:15])]<- 0.0000001
#Loosing is caused by bad classification in our data
length(setdiff(unique(tmp$industry), unique(dat_extra$Name)))
## [1] 294
#It should be enough for the folowing analysis
length(unique(tmp_1$industry))
## [1] 1453
#needed for calculation of shares pi
col_for_sum <- c(col_for_sum, 'r_m_2017')
# level 1
set_level_1 <- subset(tmp_1, is.na(tmp_1$SubKod1) == F & is.na(tmp_1$SubKod2) == T & is.na(tmp_1$SubKod3) == T)
sum_by_region <- aggregate(set_level_1[,col_for_sum], by=list(set_level_1$region), sum, na.rm=T)
names(sum_by_region)[1] <- 'region'
set_level_1 <- merge(set_level_1, sum_by_region, by=c('region'))
set_level_5 <- subset(tmp_1, is.na(tmp_1$SubKod3) == F)
set_level_5 <- merge(set_level_5, sum_by_region, by=c('region'))
Pi <- set_level_5[, 3:15]/set_level_5[,20:32]
Pi$region <- set_level_5$region
Pi$industry <- set_level_5$industry
Pi$SubKod1 <- set_level_5$SubKod1
Pi$SubKod2 <- set_level_5$SubKod2
Pi$SubKod3 <- set_level_5$SubKod3
names(Pi)[1:13] <- paste('Pi', c(2005:2017), sep = '_')
#Check
Pi[Pi$region == 'Алтайский край' & Pi$industry == 'РАСПРЕДЕЛЕНИЕ ВОДЫ', ]
#set_for_Pg <- merge(Pi, tmp_1[, c(1,2,17:19)], by=c('region', 'industry'))
Pg <- aggregate(Pi[,1:13], by=list(Pi$region, Pi$SubKod1, Pi$SubKod2), sum, na.rm=T)
names(Pg) <- c('region', 'SubKod1', 'SubKod2', paste('Pg', c(2005:2017), sep = '_'))
#Check
Pg[Pg$SubKod2 == '00' & Pg$region=='Алтайский край', ]
set_for_Hg <- merge(Pg, Pi[,c(1:14,16,17, 18)], by=c('region', 'SubKod1', 'SubKod2'))
set_for_Hg <- cbind(set_for_Hg, set_for_Hg[, 17:29]/set_for_Hg[, 4:16]*log(1/(set_for_Hg[, 17:29]/set_for_Hg[,4:16]), base = 2))
names(set_for_Hg)[31:43] <- paste('Hg', c(2005:2017), sep = '_')
Hg <- aggregate(set_for_Hg[,31:43], by=list(set_for_Hg$region, set_for_Hg$SubKod1, set_for_Hg$SubKod2), sum, na.rm=T)
names(Hg)[1:3] <- c('region', 'SubKod1', 'SubKod2')
RV
set_for_Rv <- merge(Pg, Hg, by=c('region', 'SubKod1', 'SubKod2'))
set_for_Rv <- cbind(set_for_Rv, set_for_Rv[,4:16]*set_for_Rv[,17:29])
names(set_for_Rv)[30:42] <- paste('Rv_part', c(2005:2017), sep = '_')
RV <- aggregate(set_for_Rv[,30:42], by=list(set_for_Rv$region), sum, na.rm=T)
names(RV)[1] <- c('region')
names(RV)[2:14] <- paste('Rv', c(2005:2017), sep = '_')
aggregate(RV$Rv_2005, by=list(RV$region), sum)
RV
UV
Pg_for_UV <- Pg
Pg_for_UV <- cbind(Pg_for_UV, Pg_for_UV[,4:16]*log(1/Pg_for_UV[,4:16],base = 2))
names(Pg_for_UV)[17:29] <- paste('Pg_log', c(2005:2017), sep = '_')
UV <- aggregate(Pg_for_UV[,17:29], by=list(Pg_for_UV$region), sum, na.rm=T)
names(UV)[1:14] <- c('region', paste('Uv', c(2005:2017), sep = '_'))
UV
V
Set_for_Var <- Pi
Set_for_Var <- cbind(Set_for_Var, Pi[,1:13]*log(1/Pi[,1:13], base = 2))
Variety <- aggregate(Set_for_Var[,19:31], by=list(Set_for_Var$region), sum, na.rm=T)
names(Variety)[1:14] <- c('region', paste('V', c(2005:2017), sep = '_'))
Variety
Descriptive statistics
RV_stat <- RV %>% describe()
RV_stat <- RV_stat[2:14, ]
RV_stat <- colMeans(RV_stat[,c(3:4, 8:9)])
RV_stat
## mean sd min max
## 0.57412252 0.39532358 0.05489331 2.94027954
UV_stat <- UV %>% describe()
UV_stat <- UV_stat[2:14, ]
UV_stat <- colMeans(UV_stat[,c(3:4, 8:9)])
UV_stat
## mean sd min max
## 2.7446030 0.6276677 1.2006333 4.4163654
V_stat <- Variety %>% describe()
V_stat <- V_stat[2:14, ]
V_stat <- colMeans(V_stat[,c(3:4, 8:9)])
V_stat
## mean sd min max
## 3.318726 0.892582 1.285390 6.416477
Statistics <- t(data.frame(RV_stat, UV_stat, V_stat))
row.names(Statistics) <- c('Related Variety', 'Unrelated Variety', 'Variety')
stargazer(Statistics, title="Descriptive statistics", type = 'text', align=T, digits=3)
##
## Descriptive statistics
## =========================================
## mean sd min max
## -----------------------------------------
## Related Variety 0.574 0.395 0.055 2.940
## Unrelated Variety 2.745 0.628 1.201 4.416
## Variety 3.319 0.893 1.285 6.416
## -----------------------------------------
Time Series analysis
# RV TS
RV_series <- ts(colMeans(RV[2:14]), start = 2005, end = 2017)
# chartSeries(RV_series)
ts_plot(RV_series,
title = "mean Related Variety",
Xtitle = "Time",
Ytitle = "",
color = "green",
Xgrid = TRUE,
Ygrid = TRUE) %>%
layout(paper_bgcolor = "black",
plot_bgcolor = "black",
font = list(color = "white"),
yaxis = list(linecolor = "#6b6b6b",
zerolinecolor = "#6b6b6b",
gridcolor= "#444444"),
xaxis = list(linecolor = "#6b6b6b",
zerolinecolor = "#6b6b6b",
gridcolor= "#444444"))
# UV TS
UV_series <- ts(colMeans(UV[2:14]), start = 2005, end = 2017)
#chartSeries(UV_series)
ts_plot(UV_series,
title = "mean Unrelated Variety",
Xtitle = "Time",
Ytitle = "",
color = "green",
Xgrid = TRUE,
Ygrid = TRUE) %>%
layout(paper_bgcolor = "black",
plot_bgcolor = "black",
font = list(color = "white"),
yaxis = list(linecolor = "#6b6b6b",
zerolinecolor = "#6b6b6b",
gridcolor= "#444444"),
xaxis = list(linecolor = "#6b6b6b",
zerolinecolor = "#6b6b6b",
gridcolor= "#444444"))
# Variety TS
V_series <- ts(colMeans(Variety[2:14]), start = 2005, end = 2017)
#chartSeries(V_series)
ts_plot(V_series,
title = "mean Variety",
Xtitle = "Time",
Ytitle = "",
color = "green",
Xgrid = TRUE,
Ygrid = TRUE) %>%
layout(paper_bgcolor = "black",
plot_bgcolor = "black",
font = list(color = "white"),
yaxis = list(linecolor = "#6b6b6b",
zerolinecolor = "#6b6b6b",
gridcolor= "#444444"),
xaxis = list(linecolor = "#6b6b6b",
zerolinecolor = "#6b6b6b",
gridcolor= "#444444"))
meltdf <- melt(Variety,id="region")
meltdf$region <- as.factor(meltdf$region)
regions <- c(Variety$region[1:10])
df <- meltdf[meltdf$region %in% regions, ]
ggplot(df, aes(x=variable, y=value, colour=region, group=region)) +
geom_line() +
geom_point() +
theme(axis.text.x = element_text(angle = 90, vjust = 0.1, hjust=2))

#Histogram for all years
ggplot(data = meltdf, aes(x=value, fill=variable)) +
geom_histogram(alpha=0.4, position = 'identity', color="#e9ecef", binwidth = 0.4) +
scale_fill_viridis(discrete=TRUE) +
scale_color_viridis(discrete=TRUE) +
theme_ipsum()

# ggsave('my_plot_2.png')
#Histograms for every year
ggplot(data = meltdf, aes(x=value, fill=variable)) +
geom_histogram(alpha=0.4, position = 'identity', color="#e9ecef", binwidth = 0.4) +
scale_fill_viridis(discrete=TRUE) +
scale_color_viridis(discrete=TRUE) +
theme_ipsum() +
theme(
legend.position="none",
panel.spacing = unit(0.1, "lines"),
strip.text.x = element_text(size = 8),
strip.text.y = element_text(size = 8)
) +
facet_wrap(~variable)

write_xlsx(Variety, 'C:/Users/Kolya/Documents/New_studies/Term_paper/Data/Raw data/V_index.xlsx')
write_xlsx(RV, 'C:/Users/Kolya/Documents/New_studies/Term_paper/Data/Raw data/RV_index.xlsx')
write_xlsx(UV, 'C:/Users/Kolya/Documents/New_studies/Term_paper/Data/Raw data/UV_index.xlsx')