library(readxl)
data <- read_excel("~/Bootcamp R/PKP/Filtered_ECI_Data.xlsx")
## New names:
## • `` -> `...1`
head(data)
## # A tibble: 6 × 82
##    ...1 country  year documents eci_research eci_research_similarity
##   <dbl> <chr>   <dbl>     <dbl>        <dbl>                   <dbl>
## 1   168 AUT      1996       NA         NA                      NA   
## 2   169 AUT      1997       NA         NA                      NA   
## 3   170 AUT      1998       NA         NA                      NA   
## 4   171 AUT      1999    19818.         1.23                    1.06
## 5   172 AUT      2000    20946.         1.27                    1.25
## 6   173 AUT      2001    22043          1.22                    1.22
## # ℹ 76 more variables: eci_services <dbl>,
## #   eci_services_similarity <dbl>, eci_technology <dbl>,
## #   eci_technology_similarity <dbl>, eci_trade <dbl>,
## #   eci_trade_similarity <dbl>, embodied_ghg_emissions <dbl>,
## #   entropy_research <dbl>, entropy_services <dbl>,
## #   entropy_technology <dbl>, entropy_trade <dbl>, exports <dbl>,
## #   fitness_research <dbl>, fitness_services <dbl>, …
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
data <- data %>%
  filter(year>=1999 & !country %in% c("CYP", "IRL"))
head(data)
## # A tibble: 6 × 82
##    ...1 country  year documents eci_research eci_research_similarity
##   <dbl> <chr>   <dbl>     <dbl>        <dbl>                   <dbl>
## 1   171 AUT      1999    19818.         1.23                    1.06
## 2   172 AUT      2000    20946.         1.27                    1.25
## 3   173 AUT      2001    22043          1.22                    1.22
## 4   174 AUT      2002    23456.         1.29                    1.28
## 5   175 AUT      2003    25417.         1.33                    1.35
## 6   176 AUT      2004    27274.         1.38                    1.11
## # ℹ 76 more variables: eci_services <dbl>,
## #   eci_services_similarity <dbl>, eci_technology <dbl>,
## #   eci_technology_similarity <dbl>, eci_trade <dbl>,
## #   eci_trade_similarity <dbl>, embodied_ghg_emissions <dbl>,
## #   entropy_research <dbl>, entropy_services <dbl>,
## #   entropy_technology <dbl>, entropy_trade <dbl>, exports <dbl>,
## #   fitness_research <dbl>, fitness_services <dbl>, …
library(tidyverse)  
## Warning: package 'tidyverse' was built under R version 4.3.3
## Warning: package 'lubridate' was built under R version 4.3.3
## ── Attaching core tidyverse packages ────────────── tidyverse 2.0.0 ──
## ✔ forcats   1.0.0     ✔ readr     2.1.4
## ✔ ggplot2   3.4.3     ✔ stringr   1.5.0
## ✔ lubridate 1.9.3     ✔ tibble    3.2.1
## ✔ purrr     1.0.2     ✔ tidyr     1.3.0
## ── Conflicts ──────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors

Correlation

data_filtered <- subset(data, year == 2019)

p <- ggplot(data_filtered, aes(x = eci_technology, y = gdp_pc)) +
  geom_point() +
  geom_smooth(method = "lm", col = "red") + 
  geom_text(aes(label = ifelse(country %in% c("JPN", "USA", "SVN", "AUT", "DEU", "CHN"), country, "")), 
            vjust = -1, hjust = 0.5) +  
  labs(title = "GDP per capita & ECI Technology",
       x = "ECI Technology",
       y = "GDP per Capita") +
  theme_minimal() +
  theme(
    plot.title = element_text(size = 20, face = "bold"),  
    axis.title.x = element_text(size = 14),               
    axis.title.y = element_text(size = 14),               
    axis.text.x = element_text(size = 12),                
    axis.text.y = element_text(size = 12),                
    legend.text = element_text(size = 12)                 
  )

cor_value <- cor(data_filtered$eci_technology, data_filtered$gdp_pc)

p + annotate("text", x = max(data_filtered$eci_technology), y = max(data_filtered$gdp_pc), 
             label = paste("Correlation:", round(cor_value, 2)), 
             hjust = 1, vjust = 1, size = 4, color = "blue") 
## `geom_smooth()` using formula = 'y ~ x'

data_filtered <- subset(data, year == 2019)

p <- ggplot(data_filtered, aes(x = eci_research, y = gdp_pc)) +
  geom_point() +
  geom_smooth(method = "lm", col = "red") + 
  geom_text(aes(label = ifelse(country %in% c("JPN", "USA", "SVN", "AUT", "DEU", "CHN"), country, "")), 
            vjust = -1, hjust = 0.5) +  
  labs(title = "GDP per capita & ECI Research",
       x = "ECI Research",
       y = "GDP per Capita") +
  theme_minimal() +
  theme(
    plot.title = element_text(size = 20, face = "bold"),  
    axis.title.x = element_text(size = 14),               
    axis.title.y = element_text(size = 14),               
    axis.text.x = element_text(size = 12),                
    axis.text.y = element_text(size = 12),                
    legend.text = element_text(size = 12)                 
  )

cor_value <- cor(data_filtered$eci_research, data_filtered$gdp_pc)

p + annotate("text", x = max(data_filtered$eci_research), y = max(data_filtered$gdp_pc), 
             label = paste("Correlation:", round(cor_value, 2)), 
             hjust = 1, vjust = 1, size = 4, color = "blue")
## `geom_smooth()` using formula = 'y ~ x'

data_filtered <- subset(data, year == 2019)

p <- ggplot(data_filtered, aes(x = eci_trade, y = gdp_pc)) +
  geom_point() +
  geom_smooth(method = "lm", col = "red") + 
  geom_text(aes(label = ifelse(country %in% c("JPN", "USA", "SVN", "AUT", "DEU", "CHN"), country, "")), 
            vjust = -1, hjust = 0.5) +  
  labs(title = "GDP per capita & ECI Trade",
       x = "ECI Trade",
       y = "GDP per Capita") +
  theme_minimal() +
  theme(
    plot.title = element_text(size = 20, face = "bold"),  
    axis.title.x = element_text(size = 14),               
    axis.title.y = element_text(size = 14),               
    axis.text.x = element_text(size = 12),                
    axis.text.y = element_text(size = 12),                
    legend.text = element_text(size = 12)                 
  )

cor_value <- cor(data_filtered$eci_trade, data_filtered$gdp_pc)

p + annotate("text", x = max(data_filtered$eci_trade), y = max(data_filtered$gdp_pc), 
             label = paste("Correlation:", round(cor_value, 2)), 
             hjust = 1, vjust = 1, size = 4, color = "blue")
## `geom_smooth()` using formula = 'y ~ x'

data_filtered <- subset(data, year == 2019)

p <- ggplot(data_filtered, aes(x = patents, y = gdp_pc)) +
  geom_point() +
  geom_smooth(method = "lm", col = "red") + 
  geom_text(aes(label = ifelse(country %in% c("JPN", "USA", "SVN", "AUT", "DEU", "CHN"), country, "")), 
            vjust = -1, hjust = 0.5) +  
  labs(title = "GDP per capita & Patents",
       x = "Patents",
       y = "GDP per Capita") +
  theme_minimal() +
  theme(
    plot.title = element_text(size = 20, face = "bold"),  
    axis.title.x = element_text(size = 14),               
    axis.title.y = element_text(size = 14),               
    axis.text.x = element_text(size = 12),                
    axis.text.y = element_text(size = 12),                
    legend.text = element_text(size = 12)                 
  )

cor_value <- cor(data_filtered$patents, data_filtered$gdp_pc)

p + annotate("text", x = max(data_filtered$patents), y = max(data_filtered$gdp_pc), 
             label = paste("Correlation:", round(cor_value, 2)), 
             hjust = 1, vjust = 1, size = 4, color = "blue")
## `geom_smooth()` using formula = 'y ~ x'

p <- ggplot(data_filtered, aes(x = hum_cap, y = gdp_pc)) +
  geom_point() +
  geom_smooth(method = "lm", col = "red") + 
  geom_text(aes(label = ifelse(country %in% c("JPN", "USA", "SVN", "AUT", "DEU", "CHN"), country, "")), 
            vjust = -1, hjust = 0.5, size = 4) +  
  labs(title = "GDP per capita & Human Capital",
       x = "Human Capital",
       y = "GDP per Capita") +
  theme_minimal() +
  theme(
    plot.title = element_text(size = 20, face = "bold"),  
    axis.title.x = element_text(size = 14),               
    axis.title.y = element_text(size = 14),               
    axis.text.x = element_text(size = 12),                
    axis.text.y = element_text(size = 12),                
    legend.text = element_text(size = 12)                 
  )

cor_value <- cor(data_filtered$hum_cap, data_filtered$gdp_pc)

p + annotate("text", x = max(data_filtered$hum_cap), y = max(data_filtered$gdp_pc), 
             label = paste("Correlation:", round(cor_value, 2)), 
             hjust = 1, vjust = 1, size = 5, color = "blue")
## `geom_smooth()` using formula = 'y ~ x'