library(pacman)
p_load(kirkegaard, readxl, lubridate, dplyr, readr)
options(digits = 3)
#FOLK2
folketal = read_excel("data/FOLK2.xls")
folketal$`År` %<>% lubridate::parse_date_time("Y") %>% as.Date()
#FERT1
fertilitet = read_excel("data/FERT1.xls")
fertilitet$`År_num` = fertilitet$År %>% as.integer()
fertilitet$`År` %<>% lubridate::parse_date_time("Y") %>% as.Date()
#ind og udvandringer: INDVAN, UDVAN
indud = read_excel("data/ind_ud_vandringer.xls")
indud %<>% plyr::mutate(
`År` = as.integer(`År`),
Netto = Indvandringer - Udvandringer
)
#verden inkl. sverige
mega = read_csv("data/Megadataset_v2.0p.csv")
## Parsed with column specification:
## cols(
## .default = col_double(),
## X1 = col_character(),
## EthnicHeterogenityVanhanen2012 = col_integer(),
## EthnicConflictVanhanen2012 = col_integer(),
## SlowTimePrefWangetal2011 = col_integer(),
## Math00Mean = col_integer(),
## Math00SD = col_integer(),
## Read00Mean = col_integer(),
## Read00SD = col_integer(),
## Sci00Mean = col_integer(),
## Sci00SD = col_integer(),
## Math03Mean = col_integer(),
## Math03SD = col_integer(),
## Read03Mean = col_integer(),
## Read03SD = col_integer(),
## Sci03Mean = col_integer(),
## Sci03SD = col_integer(),
## PS03Mean = col_integer(),
## PS03SD = col_integer(),
## Read09.Native = col_integer(),
## Read09.1g = col_integer()
## # ... with 101 more columns
## )
## See spec(...) for full column specifications.
mega$land = pu_translate(mega$X1, reverse = T, lang = "da", messages = 0)
## No match: Africa
## No match: Asia
## No match: ASM
## No match: BELFL
## No match: BELFR
## No match: BIF
## No match: CHA
## No match: Eastern-Europe
## No match: MCA
## No match: MIC
## No match: MIR
## No match: North America and Oceania
## No match: PRI
## No match: SAS
## No match: South and Middle America
## No match: SRP
## No match: VGB
## No match: VIR
## No match: Western-Europe
mega$IQ = mega$LV2012estimatedIQ
#US counties
us_counties = read_csv("data/US_counties.csv")
## Warning: Missing column names filled in: 'X1' [1]
## Parsed with column specification:
## cols(
## .default = col_double(),
## X1 = col_integer(),
## FIPS = col_integer(),
## County = col_character(),
## State = col_character(),
## nearest_county = col_integer(),
## temp_bins = col_character(),
## lat_bins = col_character(),
## lon_bins = col_character(),
## precip_bins = col_character(),
## elevation_bins = col_character()
## )
## See spec(...) for full column specifications.
folketal %>%
#omformater til langt format
tidyr::gather(key = Gruppe, value = Antal, -`År`) %>%
#plot
ggplot(aes(`År`, Antal, color = Gruppe)) +
geom_line(aes(group = Gruppe)) +
scale_y_continuous(breaks = c(10e3, 50e3, 100e3, 200e3, 350e3, 500e3, 1e6, 2e6, 5e6), labels = scales::comma, trans = "log10") +
scale_x_date(date_breaks = "2 years", date_labels = "%Y") +
theme_bw() +
theme(axis.text.x = element_text(angle = -30, vjust = .5))
#gem
silence(ggsave("figurer/folketal.png"))
fertilitet %>%
#fjern numerisk år
select(-`År_num`) %>%
#omformater til langt format
tidyr::gather(key = Gruppe, value = Fertilitet, -`År`) %>%
#divider med 1000
plyr::mutate(Fertilitet = Fertilitet / 1000) %>%
#plot
ggplot(aes(`År`, Fertilitet, color = Gruppe)) +
geom_line(aes(group = Gruppe)) +
scale_x_date(date_breaks = "2 years", date_labels = "%Y") +
theme_bw() +
theme(axis.text.x = element_text(angle = -30, vjust = .5))
## Warning: Removed 7 rows containing missing values (geom_path).
#gem
silence(ggsave("figurer/fertilitet.png"))
Udregninger med en simpel model.
#gennemsnit ED
(gns_fertilitet_ED = fertilitet$ED %>% mean %>% divide_by(1000))
## [1] 1.71
#formindskning
(år_siden = max(fertilitet$År_num) - min(fertilitet$År_num))
## [1] 30
#generationer
gns_generation = 33
(generationer_siden = år_siden/gns_generation)
## [1] 0.909
1 - (gns_fertilitet_ED/2.05)
## [1] 0.167
(ændring_per_generation = gns_fertilitet_ED/2.05)
## [1] 0.833
#befolkningstal
(folk1986 = folketal %>% filter(År == parse_date_time("1986", "Y")) %>% select(ED) %>% unlist)
## ED
## 4942358
#estimate, alt andet lige
folk1986 * ændring_per_generation^generationer_siden
## ED
## 4184207
#midtestimat
c(folk1986 * ændring_per_generation^generationer_siden,
folketal %>% filter(År == parse_date_time("2016", "Y")) %>% select(ED) %>% unlist) %>%
mean
## [1] 4593792
#plot
indud %>%
tidyr::gather(key = Retning, value = Antal, -År) %>%
ggplot(aes(År, Antal, group = Retning, color = Retning)) +
geom_line() +
scale_x_continuous(breaks = seq(1980, 2020, by = 5)) +
scale_y_continuous(breaks = seq(-10e3, 30e3, by = 5e3)) +
theme_bw()
#gem
silence(ggsave("figurer/indud.png"))
#netto vandring
indud$Netto %>% sum
## [1] -74416
dk_krim_xlab = xlab("Relativ kriminalitetsrate, 2000-2015. Danmark = 1. Alder- og kønsjusteret.")
#krim x indkomst
GG_scatter(mega, "dk_sg_crime_rate_rr", "Denmark.Income_40_49", case_names = "land") +
scale_y_continuous("Gennemsnitlig indkomst, 40-49 år",labels = scales::comma) +
dk_krim_xlab
silence(ggsave("figurer/dk_krim_indkomst.png"))
#krim x høj uddannelse
GG_scatter(mega, "dk_sg_crime_rate_rr", "Denmark.Long_tert_edu_30_39", case_names = "land") +
scale_y_continuous("Procent med lang videregående uddannelse, 30-39 år", labels = scales::percent) +
dk_krim_xlab
silence(ggsave("figurer/dk_krim_udd_høj.png"))
#krim x lav uddannelse
GG_scatter(mega, "dk_sg_crime_rate_rr", "Denmark.Basic_school_30_39", case_names = "land") +
scale_y_continuous("Procent med kun grundskole eller mindre, 30-39 år", labels = scales::percent) +
dk_krim_xlab
silence(ggsave("figurer/dk_krim_udd_lav.png"))
#krim x lav uddannelse
GG_scatter(mega, "dk_sg_crime_rate_rr", "Denmark.Social_benefits_30_39", case_namesr = "land") +
scale_y_continuous("Procent som lever af offentlig forsørgelse, 30-39 år", labels = scales::percent) +
dk_krim_xlab
silence(ggsave("figurer/dk_krim_off_forsørg.png"))
#krim x lav uddannelse
mega$skolekarakterer_gns = kirkegaard::df_merge_cols(mega, c("GPA.primary.school.Denmark.2008", "GPADenmark2ndGenBoth"))
GG_scatter(mega, "dk_sg_crime_rate_rr", "skolekarakterer_gns", case_names = "land") +
scale_y_continuous("Gennemsnitlig eksamenskarakter") +
dk_krim_xlab
silence(ggsave("figurer/dk_krim_skolekarakterer.png"))
#de
GG_scatter(mega, "dk_sg_crime_rate_rr", "de_crime_rate_adj_rr", case_names = "land") +
dk_krim_xlab +
ylab("Relativ kriminalitetsrate i Tyskland. Tyskland = 1.\nAlder- og kønsjusteret.")
silence(ggsave("figurer/krim_dk_de.png"))
#se
GG_scatter(mega, "dk_sg_crime_rate_rr", "se_Crime_rate_rr", case_names = "land") +
dk_krim_xlab +
ylab("Kriminalitetsrate i Sverige, 1985-1989.\nAlder- og kønsjusteret.")
silence(ggsave("figurer/krim_dk_se.png"))
#nl
GG_scatter(mega, "dk_sg_crime_rate_rr", "DutchCrimeAll", case_names = "land") +
dk_krim_xlab +
ylab("Kriminalitetsrate i Holland, 2002.")
silence(ggsave("figurer/krim_dk_nl.png"))
#no
GG_scatter(mega, "dk_sg_crime_rate_rr", "NorwayViolentCrimeAdjustedOddsRatioSkardhamar2014", case_names = "land") +
dk_krim_xlab +
ylab("Voldskriminalitets relative odds i Norge, 2008-2009.")
silence(ggsave("figurer/krim_dk_no.png"))
#fi
GG_scatter(mega, "dk_sg_crime_rate_rr", "FinlandViolentCrimeAdjustedOddsRatioSkardhamar2014", case_names = "land") +
dk_krim_xlab +
ylab("Voldskriminalitets relative odds i Finland, 2010-2011.")
silence(ggsave("figurer/krim_dk_fi.png"))
#S faktor, dk & no
GG_scatter(mega, "S.factor.in.Denmark.Kirkegaard2014", "S.factor.in.Norway.Kirkegaard2014", case_names = "land") +
xlab("S faktor i Danmark, cirka 2012") +
ylab("S faktor i Norge, cirka 2012")
silence(ggsave("figurer/S_dk_no.png"))
#IQ x S
GG_scatter(mega, "IQ", "S.factor.in.Denmark.Kirkegaard2014", case_names = "land") +
xlab("National IQ for hjemland") +
ylab("S faktor i Danmark, cirka 2012")
silence(ggsave("figurer/dk_IQ_S.png"))
#Islam x S, dk
GG_scatter(mega, "IslamPewResearch2010", "S.factor.in.Denmark.Kirkegaard2014", case_names = "land") +
scale_x_continuous("Procent muslimer i hjemlandet", labels = scales::percent) +
ylab("S faktor i Danmark, cirka 2012")
silence(ggsave("figurer/dk_muslim_S.png"))
#US counties
GG_scatter(us_counties, "CA", "S", case_names = F) +
xlab("County IQ") +
ylab("S faktor")
silence(ggsave("figurer/us_counties_iq_S.png"))
#world
GG_scatter(mega, "IQ", "International.S.Factor.Kirkegaard2014", case_names = "land") +
xlab("National IQ") +
ylab("S faktor")
silence(ggsave("figurer/world_iq_S.png"))
GG_scatter(mega, "IQ", "HDI2013", case_names = "land") +
xlab("National IQ") +
ylab("HDI 2013")
silence(ggsave("figurer/world_iq_hdi.png"))
#Islam x S, no
GG_scatter(mega, "IslamPewResearch2010", "S.factor.in.Norway.Kirkegaard2014", case_names = "land") +
scale_x_continuous("Procent muslimer i hjemlandet", labels = scales::percent) +
ylab("S faktor i Norge, cirka 2012")
silence(ggsave("figurer/no_muslim_S.png"))
#Islam x krim, se
GG_scatter(mega, "IslamPewResearch2010", "se_Crime_rate_rr", case_names = "land") +
scale_x_continuous("Procent muslimer i hjemlandet", labels = scales::percent) +
ylab("Kriminalitetsrate i Sverige, 1985-1989.\nAlder- og kønsjusteret.")
silence(ggsave("figurer/no_muslim_S.png"))