FLS Activity

FLS Acitivity Codes

# Loaded data
pwt <- read.csv("D:/RStudio/Iloveecon/pwt110.csv")
CPI23 <- read.csv("D:/RStudio/Iloveecon/CPI.csv", header=FALSE)

# Keep only ISO3 and CPI
cpi_sub <- CPI23[, c(2, 4)]          

# Since V2 is ISO3, since V4 = CPI
names(cpi_sub) <- c("ISO3", "CPI2023")

# Filter for 2023 only
pwt_2023 <- subset(pwt, year == 2023)

# Compute GDP per capita using GDP and Population (rgdpe and pop)
pwt_2023$gdp_pc <- (pwt_2023$rgdpe) / (pwt_2023$pop)

# Keep only ISO3 and GDP per capita
pwt_sub <- pwt_2023[, c("countrycode", "gdp_pc")]
names(pwt_sub)[names(pwt_sub) == "countrycode"] <- "ISO3"

# Merge CPI and GDP datasets
CPI_AND_LOGGDP <- merge(cpi_sub, pwt_sub, by = "ISO3", all = FALSE)

# Compute log GDP per capita
CPI_AND_LOGGDP$log_GDPPC <- log(CPI_AND_LOGGDP$gdp_pc)

# Remove any rows with missing or infinite values
CPI_AND_LOGGDP <- CPI_AND_LOGGDP[is.finite(CPI_AND_LOGGDP$log_GDPPC) & !is.na(CPI_AND_LOGGDP$CPI2023), ]

# Check CPI_AND_LOGGDP dataset
head(CPI_AND_LOGGDP)

# Regression
lm(log_GDPPC ~ CPI2023, data = CPI_AND_LOGGDP)

# Plot
plot(CPI_AND_LOGGDP$CPI2023, CPI_AND_LOGGDP$log_GDPPC,
     xlab = "Corruption Perception Index 2023",
     ylab = "Log GDP per capita 2023",
     cex = 1.2,
     cex.lab = 1.5)

abline(lm(log_GDPPC ~ CPI2023, data = CPI_AND_LOGGDP), col = "red", lwd = 2)