# Import Dependencies
library(readxl)
require(tidyverse)
library(car)
library(psych)

# Read in data
gini <- read.csv("gini-coefficient-wid-vs-pip.csv", header = TRUE)
gdp_raw <- read_excel("API_NY.GDP.PCAP.PP.KD_DS2_en_excel_v2_269.xls", skip = 3)
tourism_intensity <- read.csv("international-tourist-trips-per-1000-people.csv", header = TRUE)
urban_rural_pop <- read.csv("urban-and-rural-population.csv", header = TRUE)
poverty_rate <- read.csv("worldpoverty.csv")
# poverty rate cleaning

poverty_clean <- poverty_rate %>%
  filter(survey_coverage == "national") %>%
  filter(headcount > 0) %>%
  select(country_code,reporting_year, headcount) %>%
  rename(code = country_code, year = reporting_year) %>%
  group_by(code) %>%
    slice_max(year, n = 1, with_ties = FALSE) %>%
    select(code, headcount)
    
# tourism intensity cleaning

tourism_clean <- tourism_intensity %>%
  select(Code,Year,Arrivals.of.tourists.from.abroad.per.1.000.people) %>%
  rename(code = Code, year = Year, tourism_intensity = Arrivals.of.tourists.from.abroad.per.1.000.people) %>%
  group_by(code) %>%
    slice_max(year, n = 1,with_ties = FALSE )
    
# Urbanization Rate Cleaning
urbanization_clean <- urban_rural_pop %>%
  mutate(population = Urban.population + Rural.population) %>%
  mutate(urbanization_rate = Urban.population/(Urban.population + Rural.population)) %>%
  select(Code,Year,urbanization_rate, population)%>%
  rename(code = Code, year = Year) %>%
  group_by(code) %>%
    slice_max(year, n = 1, with_ties = FALSE) %>%
    select(code, urbanization_rate, population)
# GDP Cleaning
gdp_clean <- gdp_raw %>%
  pivot_longer(cols = -c(`Country Name`, `Country Code`, `Indicator Name`, `Indicator Code`),
             names_to = "year",
             values_to = "gdp_per_capita_ppp") %>%
  drop_na(gdp_per_capita_ppp) %>%
  select(`Country Code`,year,gdp_per_capita_ppp)%>%
  rename(code = `Country Code`) %>%
  mutate(year = as.integer(year)) %>%
  group_by(code) %>%
    slice_max(year, n = 1, with_ties = FALSE) %>%
    select(code, gdp_per_capita_ppp)
# Clean Gini
gini_clean <- gini %>%
  select(Code,Year,Gini.according.to.the.World.Inequality.Database)%>%
  rename(code = Code, year = Year, gini = Gini.according.to.the.World.Inequality.Database) %>%
  drop_na(gini) %>%
    filter(code != "") %>%
    group_by(code) %>%
      slice_max(year, n = 1, with_ties = FALSE) %>%
        select(code, gini)
# Merge the Data
df <- tourism_clean %>%
  inner_join(gdp_clean, by = "code") %>%
  inner_join(gini_clean, by = "code") %>%
  inner_join(urbanization_clean, by = "code") %>%
  inner_join(poverty_clean, by = "code")

nrow(df)
[1] 156
# Work with Cleaned Data
description <- describe(df[, c("tourism_intensity", "gdp_per_capita_ppp", "headcount", "gini", "urbanization_rate", "population")])

description

# Read in Dependencies
require(ggplot2)

# Poverty Rate vs Tourism Intensity
pr_vs_ti_plot <- ggplot(data = df, mapping = aes(x = log(tourism_intensity), y=log(headcount+0.001))) + geom_point() + geom_smooth(method = "lm") + theme_classic() + labs(x = "log(Tourism Intensity)", y = "log(Poverty Rate)")

pr_vs_ti_plot

# GDP per capita vs tourism intensity
gdp_vs_ti_plot <- ggplot(data = df, mapping = aes(x = log(tourism_intensity), y = log(gdp_per_capita_ppp))) + geom_point() + geom_smooth(method = "lm") + theme_classic() + labs(x = "log(Tourism Intensity)", y = "log(GDP Per Capita(PPP)")

gdp_vs_ti_plot

# popluation vs tourism intensity

pop_vs_ti <- ggplot(data = df, mapping = aes(x = log(tourism_intensity), y = log(population))) + geom_point() + geom_smooth(method = "lm") + theme_classic() + labs(x = "log(Tourism Intensity)", y = "log(Population")

pop_vs_ti

# Fit the models
model1 <- lm(log(gdp_per_capita_ppp) ~ log(tourism_intensity) + gini + urbanization_rate + log(population), data = df)

model2 <- lm(log(headcount+ 0.001) ~ log(tourism_intensity) + gini + urbanization_rate + log(population), data = df)

# Model1 Work
summary(model1)

Call:
lm(formula = log(gdp_per_capita_ppp) ~ log(tourism_intensity) + 
    gini + urbanization_rate + log(population), data = df)

Residuals:
     Min       1Q   Median 
-1.54177 -0.35476  0.00422 
      3Q      Max 
 0.35666  2.38459 

Coefficients:
                       Estimate
(Intercept)             7.48426
log(tourism_intensity)  0.26262
gini                   -2.80598
urbanization_rate       1.65190
log(population)         0.07523
                       Std. Error
(Intercept)               0.56849
log(tourism_intensity)    0.02933
gini                      0.51045
urbanization_rate         0.27829
log(population)           0.02632
                       t value
(Intercept)             13.165
log(tourism_intensity)   8.954
gini                    -5.497
urbanization_rate        5.936
log(population)          2.858
                       Pr(>|t|)
(Intercept)             < 2e-16
log(tourism_intensity) 1.18e-15
gini                   1.61e-07
urbanization_rate      1.93e-08
log(population)         0.00487
                          
(Intercept)            ***
log(tourism_intensity) ***
gini                   ***
urbanization_rate      ***
log(population)        ** 
---
Signif. codes:  
  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’
  0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.6134 on 151 degrees of freedom
Multiple R-squared:  0.7152,    Adjusted R-squared:  0.7077 
F-statistic: 94.82 on 4 and 151 DF,  p-value: < 2.2e-16
plot(model1)

vif(model1)
log(tourism_intensity) 
              1.695790 
                  gini 
              1.245817 
     urbanization_rate 
              1.431155 
       log(population) 
              1.206550 
# Model2 Work
summary(model2)

Call:
lm(formula = log(headcount + 0.001) ~ log(tourism_intensity) + 
    gini + urbanization_rate + log(population), data = df)

Residuals:
    Min      1Q  Median      3Q 
-4.7648 -0.7944  0.1379  0.9979 
    Max 
 2.4735 

Coefficients:
                       Estimate
(Intercept)            -3.60577
log(tourism_intensity) -0.34408
gini                    6.59317
urbanization_rate      -2.41382
log(population)        -0.00943
                       Std. Error
(Intercept)               1.21729
log(tourism_intensity)    0.06280
gini                      1.09301
urbanization_rate         0.59589
log(population)           0.05637
                       t value
(Intercept)             -2.962
log(tourism_intensity)  -5.479
gini                     6.032
urbanization_rate       -4.051
log(population)         -0.167
                       Pr(>|t|)
(Intercept)             0.00355
log(tourism_intensity) 1.75e-07
gini                   1.20e-08
urbanization_rate      8.14e-05
log(population)         0.86735
                          
(Intercept)            ** 
log(tourism_intensity) ***
gini                   ***
urbanization_rate      ***
log(population)           
---
Signif. codes:  
  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’
  0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 1.313 on 151 degrees of freedom
Multiple R-squared:  0.5854,    Adjusted R-squared:  0.5744 
F-statistic:  53.3 on 4 and 151 DF,  p-value: < 2.2e-16
plot(model2)

vif(model2)
log(tourism_intensity) 
              1.695790 
                  gini 
              1.245817 
     urbanization_rate 
              1.431155 
       log(population) 
              1.206550 
# Univariate Descriptive Statistics
hist1 <- ggplot(data = df, mapping = aes(x = gdp_per_capita_ppp)) + geom_histogram() + labs(x = "GDP Per Capita(PPP)", y = "Count") + theme_classic()

hist1


fig2 <- ggplot(data = df, mapping = aes(x = headcount)) + geom_histogram() + labs(x = "Poverty Rate", y = "Count") + theme_classic()

fig2


fig3 <- ggplot(data = df, mapping = aes(x = tourism_intensity)) + geom_histogram() + labs(x = "Tourism Intensity", y = "Count") + theme_classic()

fig3

# Calculate Correlations

cor(log(df$tourism_intensity), log(df$gdp_per_capita_ppp))
[1] 0.7201282
cor(log(df$tourism_intensity), log(df$headcount + 0.001))
[1] -0.637536
LS0tCnRpdGxlOiAiU3RhdCAxMjIxIFJlc2VhcmNoIgpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sKLS0tCgoKYGBge3J9CiMgSW1wb3J0IERlcGVuZGVuY2llcwpsaWJyYXJ5KHJlYWR4bCkKcmVxdWlyZSh0aWR5dmVyc2UpCmxpYnJhcnkoY2FyKQpsaWJyYXJ5KHBzeWNoKQoKIyBSZWFkIGluIGRhdGEKZ2luaSA8LSByZWFkLmNzdigiZ2luaS1jb2VmZmljaWVudC13aWQtdnMtcGlwLmNzdiIsIGhlYWRlciA9IFRSVUUpCmdkcF9yYXcgPC0gcmVhZF9leGNlbCgiQVBJX05ZLkdEUC5QQ0FQLlBQLktEX0RTMl9lbl9leGNlbF92Ml8yNjkueGxzIiwgc2tpcCA9IDMpCnRvdXJpc21faW50ZW5zaXR5IDwtIHJlYWQuY3N2KCJpbnRlcm5hdGlvbmFsLXRvdXJpc3QtdHJpcHMtcGVyLTEwMDAtcGVvcGxlLmNzdiIsIGhlYWRlciA9IFRSVUUpCnVyYmFuX3J1cmFsX3BvcCA8LSByZWFkLmNzdigidXJiYW4tYW5kLXJ1cmFsLXBvcHVsYXRpb24uY3N2IiwgaGVhZGVyID0gVFJVRSkKcG92ZXJ0eV9yYXRlIDwtIHJlYWQuY3N2KCJ3b3JsZHBvdmVydHkuY3N2IikKCmBgYAoKCmBgYHtyfQojIHBvdmVydHkgcmF0ZSBjbGVhbmluZwoKcG92ZXJ0eV9jbGVhbiA8LSBwb3ZlcnR5X3JhdGUgJT4lCiAgZmlsdGVyKHN1cnZleV9jb3ZlcmFnZSA9PSAibmF0aW9uYWwiKSAlPiUKICBmaWx0ZXIoaGVhZGNvdW50ID4gMCkgJT4lCiAgc2VsZWN0KGNvdW50cnlfY29kZSxyZXBvcnRpbmdfeWVhciwgaGVhZGNvdW50KSAlPiUKICByZW5hbWUoY29kZSA9IGNvdW50cnlfY29kZSwgeWVhciA9IHJlcG9ydGluZ195ZWFyKSAlPiUKICBncm91cF9ieShjb2RlKSAlPiUKICAgIHNsaWNlX21heCh5ZWFyLCBuID0gMSwgd2l0aF90aWVzID0gRkFMU0UpICU+JQogICAgc2VsZWN0KGNvZGUsIGhlYWRjb3VudCkKICAgIApgYGAKCmBgYHtyfQojIHRvdXJpc20gaW50ZW5zaXR5IGNsZWFuaW5nCgp0b3VyaXNtX2NsZWFuIDwtIHRvdXJpc21faW50ZW5zaXR5ICU+JQogIHNlbGVjdChDb2RlLFllYXIsQXJyaXZhbHMub2YudG91cmlzdHMuZnJvbS5hYnJvYWQucGVyLjEuMDAwLnBlb3BsZSkgJT4lCiAgcmVuYW1lKGNvZGUgPSBDb2RlLCB5ZWFyID0gWWVhciwgdG91cmlzbV9pbnRlbnNpdHkgPSBBcnJpdmFscy5vZi50b3VyaXN0cy5mcm9tLmFicm9hZC5wZXIuMS4wMDAucGVvcGxlKSAlPiUKICBncm91cF9ieShjb2RlKSAlPiUKICAgIHNsaWNlX21heCh5ZWFyLCBuID0gMSx3aXRoX3RpZXMgPSBGQUxTRSApCiAgICAKYGBgCgpgYGB7cn0KIyBVcmJhbml6YXRpb24gUmF0ZSBDbGVhbmluZwp1cmJhbml6YXRpb25fY2xlYW4gPC0gdXJiYW5fcnVyYWxfcG9wICU+JQogIG11dGF0ZShwb3B1bGF0aW9uID0gVXJiYW4ucG9wdWxhdGlvbiArIFJ1cmFsLnBvcHVsYXRpb24pICU+JQogIG11dGF0ZSh1cmJhbml6YXRpb25fcmF0ZSA9IFVyYmFuLnBvcHVsYXRpb24vKFVyYmFuLnBvcHVsYXRpb24gKyBSdXJhbC5wb3B1bGF0aW9uKSkgJT4lCiAgc2VsZWN0KENvZGUsWWVhcix1cmJhbml6YXRpb25fcmF0ZSwgcG9wdWxhdGlvbiklPiUKICByZW5hbWUoY29kZSA9IENvZGUsIHllYXIgPSBZZWFyKSAlPiUKICBncm91cF9ieShjb2RlKSAlPiUKICAgIHNsaWNlX21heCh5ZWFyLCBuID0gMSwgd2l0aF90aWVzID0gRkFMU0UpICU+JQogICAgc2VsZWN0KGNvZGUsIHVyYmFuaXphdGlvbl9yYXRlLCBwb3B1bGF0aW9uKQpgYGAKCmBgYHtyfQojIEdEUCBDbGVhbmluZwpnZHBfY2xlYW4gPC0gZ2RwX3JhdyAlPiUKICBwaXZvdF9sb25nZXIoY29scyA9IC1jKGBDb3VudHJ5IE5hbWVgLCBgQ291bnRyeSBDb2RlYCwgYEluZGljYXRvciBOYW1lYCwgYEluZGljYXRvciBDb2RlYCksCiAgICAgICAgICAgICBuYW1lc190byA9ICJ5ZWFyIiwKICAgICAgICAgICAgIHZhbHVlc190byA9ICJnZHBfcGVyX2NhcGl0YV9wcHAiKSAlPiUKICBkcm9wX25hKGdkcF9wZXJfY2FwaXRhX3BwcCkgJT4lCiAgc2VsZWN0KGBDb3VudHJ5IENvZGVgLHllYXIsZ2RwX3Blcl9jYXBpdGFfcHBwKSU+JQogIHJlbmFtZShjb2RlID0gYENvdW50cnkgQ29kZWApICU+JQogIG11dGF0ZSh5ZWFyID0gYXMuaW50ZWdlcih5ZWFyKSkgJT4lCiAgZ3JvdXBfYnkoY29kZSkgJT4lCiAgICBzbGljZV9tYXgoeWVhciwgbiA9IDEsIHdpdGhfdGllcyA9IEZBTFNFKSAlPiUKICAgIHNlbGVjdChjb2RlLCBnZHBfcGVyX2NhcGl0YV9wcHApCgoKYGBgCgpgYGB7cn0KIyBDbGVhbiBHaW5pCmdpbmlfY2xlYW4gPC0gZ2luaSAlPiUKICBzZWxlY3QoQ29kZSxZZWFyLEdpbmkuYWNjb3JkaW5nLnRvLnRoZS5Xb3JsZC5JbmVxdWFsaXR5LkRhdGFiYXNlKSU+JQogIHJlbmFtZShjb2RlID0gQ29kZSwgeWVhciA9IFllYXIsIGdpbmkgPSBHaW5pLmFjY29yZGluZy50by50aGUuV29ybGQuSW5lcXVhbGl0eS5EYXRhYmFzZSkgJT4lCiAgZHJvcF9uYShnaW5pKSAlPiUKICAgIGZpbHRlcihjb2RlICE9ICIiKSAlPiUKICAgIGdyb3VwX2J5KGNvZGUpICU+JQogICAgICBzbGljZV9tYXgoeWVhciwgbiA9IDEsIHdpdGhfdGllcyA9IEZBTFNFKSAlPiUKICAgICAgICBzZWxlY3QoY29kZSwgZ2luaSkKYGBgCgpgYGB7cn0KIyBNZXJnZSB0aGUgRGF0YQpkZiA8LSB0b3VyaXNtX2NsZWFuICU+JQogIGlubmVyX2pvaW4oZ2RwX2NsZWFuLCBieSA9ICJjb2RlIikgJT4lCiAgaW5uZXJfam9pbihnaW5pX2NsZWFuLCBieSA9ICJjb2RlIikgJT4lCiAgaW5uZXJfam9pbih1cmJhbml6YXRpb25fY2xlYW4sIGJ5ID0gImNvZGUiKSAlPiUKICBpbm5lcl9qb2luKHBvdmVydHlfY2xlYW4sIGJ5ID0gImNvZGUiKQoKbnJvdyhkZikKYGBgCgpgYGB7cn0KIyBXb3JrIHdpdGggQ2xlYW5lZCBEYXRhCmRlc2NyaXB0aW9uIDwtIGRlc2NyaWJlKGRmWywgYygidG91cmlzbV9pbnRlbnNpdHkiLCAiZ2RwX3Blcl9jYXBpdGFfcHBwIiwgImhlYWRjb3VudCIsICJnaW5pIiwgInVyYmFuaXphdGlvbl9yYXRlIiwgInBvcHVsYXRpb24iKV0pCgpkZXNjcmlwdGlvbgoKIyBSZWFkIGluIERlcGVuZGVuY2llcwpyZXF1aXJlKGdncGxvdDIpCgojIFBvdmVydHkgUmF0ZSB2cyBUb3VyaXNtIEludGVuc2l0eQpwcl92c190aV9wbG90IDwtIGdncGxvdChkYXRhID0gZGYsIG1hcHBpbmcgPSBhZXMoeCA9IGxvZyh0b3VyaXNtX2ludGVuc2l0eSksIHk9bG9nKGhlYWRjb3VudCswLjAwMSkpKSArIGdlb21fcG9pbnQoKSArIGdlb21fc21vb3RoKG1ldGhvZCA9ICJsbSIpICsgdGhlbWVfY2xhc3NpYygpICsgbGFicyh4ID0gImxvZyhUb3VyaXNtIEludGVuc2l0eSkiLCB5ID0gImxvZyhQb3ZlcnR5IFJhdGUpIikKCnByX3ZzX3RpX3Bsb3QKYGBgCgpgYGB7cn0KIyBHRFAgcGVyIGNhcGl0YSB2cyB0b3VyaXNtIGludGVuc2l0eQpnZHBfdnNfdGlfcGxvdCA8LSBnZ3Bsb3QoZGF0YSA9IGRmLCBtYXBwaW5nID0gYWVzKHggPSBsb2codG91cmlzbV9pbnRlbnNpdHkpLCB5ID0gbG9nKGdkcF9wZXJfY2FwaXRhX3BwcCkpKSArIGdlb21fcG9pbnQoKSArIGdlb21fc21vb3RoKG1ldGhvZCA9ICJsbSIpICsgdGhlbWVfY2xhc3NpYygpICsgbGFicyh4ID0gImxvZyhUb3VyaXNtIEludGVuc2l0eSkiLCB5ID0gImxvZyhHRFAgUGVyIENhcGl0YShQUFApIikKCmdkcF92c190aV9wbG90CgpgYGAKCmBgYHtyfQojIHBvcGx1YXRpb24gdnMgdG91cmlzbSBpbnRlbnNpdHkKCnBvcF92c190aSA8LSBnZ3Bsb3QoZGF0YSA9IGRmLCBtYXBwaW5nID0gYWVzKHggPSBsb2codG91cmlzbV9pbnRlbnNpdHkpLCB5ID0gbG9nKHBvcHVsYXRpb24pKSkgKyBnZW9tX3BvaW50KCkgKyBnZW9tX3Ntb290aChtZXRob2QgPSAibG0iKSArIHRoZW1lX2NsYXNzaWMoKSArIGxhYnMoeCA9ICJsb2coVG91cmlzbSBJbnRlbnNpdHkpIiwgeSA9ICJsb2coUG9wdWxhdGlvbiIpCgpwb3BfdnNfdGkKYGBgCgpgYGB7cn0KIyBGaXQgdGhlIG1vZGVscwptb2RlbDEgPC0gbG0obG9nKGdkcF9wZXJfY2FwaXRhX3BwcCkgfiBsb2codG91cmlzbV9pbnRlbnNpdHkpICsgZ2luaSArIHVyYmFuaXphdGlvbl9yYXRlICsgbG9nKHBvcHVsYXRpb24pLCBkYXRhID0gZGYpCgptb2RlbDIgPC0gbG0obG9nKGhlYWRjb3VudCsgMC4wMDEpIH4gbG9nKHRvdXJpc21faW50ZW5zaXR5KSArIGdpbmkgKyB1cmJhbml6YXRpb25fcmF0ZSArIGxvZyhwb3B1bGF0aW9uKSwgZGF0YSA9IGRmKQoKIyBNb2RlbDEgV29yawpzdW1tYXJ5KG1vZGVsMSkKCnBsb3QobW9kZWwxKQp2aWYobW9kZWwxKQoKIyBNb2RlbDIgV29yawpzdW1tYXJ5KG1vZGVsMikKCnBsb3QobW9kZWwyKQp2aWYobW9kZWwyKQoKCmBgYAoKYGBge3J9CiMgVW5pdmFyaWF0ZSBEZXNjcmlwdGl2ZSBTdGF0aXN0aWNzCmhpc3QxIDwtIGdncGxvdChkYXRhID0gZGYsIG1hcHBpbmcgPSBhZXMoeCA9IGdkcF9wZXJfY2FwaXRhX3BwcCkpICsgZ2VvbV9oaXN0b2dyYW0oKSArIGxhYnMoeCA9ICJHRFAgUGVyIENhcGl0YShQUFApIiwgeSA9ICJDb3VudCIpICsgdGhlbWVfY2xhc3NpYygpCgpoaXN0MQoKZmlnMiA8LSBnZ3Bsb3QoZGF0YSA9IGRmLCBtYXBwaW5nID0gYWVzKHggPSBoZWFkY291bnQpKSArIGdlb21faGlzdG9ncmFtKCkgKyBsYWJzKHggPSAiUG92ZXJ0eSBSYXRlIiwgeSA9ICJDb3VudCIpICsgdGhlbWVfY2xhc3NpYygpCgpmaWcyCgpmaWczIDwtIGdncGxvdChkYXRhID0gZGYsIG1hcHBpbmcgPSBhZXMoeCA9IHRvdXJpc21faW50ZW5zaXR5KSkgKyBnZW9tX2hpc3RvZ3JhbSgpICsgbGFicyh4ID0gIlRvdXJpc20gSW50ZW5zaXR5IiwgeSA9ICJDb3VudCIpICsgdGhlbWVfY2xhc3NpYygpCgpmaWczCmBgYAoKYGBge3J9CiMgQ2FsY3VsYXRlIENvcnJlbGF0aW9ucwoKY29yKGxvZyhkZiR0b3VyaXNtX2ludGVuc2l0eSksIGxvZyhkZiRnZHBfcGVyX2NhcGl0YV9wcHApKQpjb3IobG9nKGRmJHRvdXJpc21faW50ZW5zaXR5KSwgbG9nKGRmJGhlYWRjb3VudCArIDAuMDAxKSkKYGBgCgpgYGB7cn0KYGBgCgpgYGB7cn0KYGBgCgpgYGB7cn0KYGBgCg==