Delegáltak száma pártonként

Az alábbi ábra a kistelepülési pártlistás szavazatokat annak összefüggésében mutatja be, hogy volt-e a településen ellenzéki szavazatszámláló, vagy sem. Az ellenzéki szavazatszámláló az, akit a Jobbik, az MSZP-PM, az LMP, a DK, a Momentum, az MKKP vagy az Együtt delegált, a kamupártok jelöltjeivel, meg a hivatalból kijelölt (a kormánytól nem független) számlálóktól eltekintettem. Van néhány körzet, ahol nem volt Fideszes számláló sem.

Ellenzéki részvétel a választási bizottság munkájában

Kistelepüléseknek azokat a településeket vettem, ahol egyetlen szavazókör volt. Az ilyen települések száma 3392.

Bizottságok összetétele

Megítélésem szerint nem igazán van különbség abban a tekintetben, hogy volt-e jelen ellenzéki számláló, vagy sem.

Bár lehetne statisztikai teszteket is készíteni erre, számomra nem triviális az összefüggés. Ha valami furcsa, az a Jobbik szavazatainak az alakulása.

A teljes kód

delegaltak_raw <- readxl::read_excel(path = "data-raw/partdelegaltak_stata.xlsx")
szavazatok_raw <- readxl::read_excel(path = "data-raw/2018-04-08--egyéni és listás voksok szavazókör szerint_stata_fv.xlsx")
szavazatok <- szavazatok_raw %>%
  select ( megyeid, megye, telepid, telep, oevk, 
           szavazokor, ervenyes, ervenytelen, orsz_fidesz, 
           orsz_jobbik, 
           orsz_lmp, orsz_mszp, orsz_dk,
           orsz_egyutt, orsz_momentum, orsz_mkkp ) %>%
  mutate ( id = paste0(tolower(telep), "-", 
                       tolower(as.character(szavazokor))))

delegaltak <- delegaltak_raw %>%
  filter ( as.character(valasztas_datum) == "2018-04-08" )  %>%
  separate ( jelolocsoport, c("jelolo_code", "jelolo"), sep = " - ") %>%
  mutate ( id = tolower(ID), 
           megye = tolower (megye), 
           telepules = tolower (telepules), 
           oevk_szam = as.factor ( oevk_szam) ) %>%
  select ( id, megye, telepules, oevk_szam, jelolo_code, jelolo, biz_szint)
    
szavazokorok <- delegaltak %>% 
  select ( -jelolo_code ) %>%
  mutate ( count = 1) %>%
  mutate ( unique_number = 1:nrow(.)) %>%
  mutate ( jelolo = ifelse (nchar(jelolo)<2, NA, jelolo)) %>%
  mutate ( personal_id = paste0(as.character (id), "_", 
                                tolower(as.character(biz_szint)), "_" ,
                                tolower(as.character(jelolo )), "_", 
                                as.character(unique_number))) %>%
  mutate (jelolo = ifelse (is.na(jelolo), "NA", jelolo)) %>%
  mutate ( jelolo = ifelse ( jelolo == "FIDESZ-KDNP", "FIDESZ", jelolo)) %>%
  mutate ( jelolo = ifelse ( str_sub(jelolo,1,4) == "MSZP", "MSZP", jelolo)) %>%
  mutate ( jelolo = tolower(jelolo)) %>%
  mutate ( kistelepules = ifelse ( str_sub(id, -1,-1) == "-", 1, 0))

bizottsagok <- szavazokorok %>%
  spread (jelolo, count ) %>%
  group_by ( id ) %>%
  summarize_if ( is.numeric, sum, na.rm =TRUE) %>%
  select ( -unique_number ) %>%
  mutate ( total = rowSums(.[,c(2:ncol(.))])) %>%
  mutate ( ellenzek = jobbik + mszp  + lmp + dk+ momentum + mkkp + együtt ) %>%
  mutate ( is_fidesz = ifelse (fidesz >0,1,0)) %>%
  mutate ( is_ellenzek = ifelse (ellenzek >0,1,0)) %>%
  mutate ( nem_fidesz = total - fidesz) %>%
  mutate ( id = ifelse ( str_sub(id, -1,-1) == "-", paste0(id, "001"), id))

summary_bizottsag <- bizottsagok %>%
  select ( id, nem_fidesz, kistelepules) %>%
  mutate ( kistelepules = as.factor(kistelepules)) 

summary_bizottsag_2 <- bizottsagok %>%
  mutate ( ellenzek = jobbik + mszp  + lmp + dk+ momentum + mkkp + együtt ) %>%
  select ( id, fidesz, nem_fidesz, kistelepules, ellenzek ) %>%
  mutate ( is_fidesz = ifelse (fidesz >0,1,0)) %>%
  mutate ( is_ellenzek = ifelse (ellenzek >0,1,0)) %>%
  group_by (kistelepules ) %>%
  summarize ( fidesz_avg = mean(fidesz, na.rm=TRUE), 
              fidesz_median = median(fidesz, na.rm=TRUE), 
              fidesz_jelenlet = mean ( is_fidesz, na.rm=TRUE),
              ellenzek_avg = mean (ellenzek, na.rm=TRUE), 
              ellenzek_median = median  (ellenzek, na.rm=TRUE), 
              ellenzek_jelenlet = mean ( is_ellenzek, na.rm=TRUE))
  
szavazas <- bizottsagok %>%
  select ( id, kistelepules, total, fidesz, ellenzek, is_fidesz, is_ellenzek) %>%
  left_join (., szavazatok, by = "id" ) %>%
  mutate_at ( vars(starts_with("orsz_")), funs (./(ervenyes+ervenytelen) )) %>%
  mutate ( ervenytelen = ervenytelen / (ervenyes+ervenytelen ))

kistelepulesek <- szavazas %>%
  filter ( kistelepules == 1 ) %>%
  gather ( part, values, orsz_fidesz:orsz_mkkp) %>%
  mutate ( part = as.character(part)) %>%
  mutate ( part = gsub("orsz_", "", part)) %>%
  mutate ( values  = as.numeric (values )) %>%
  mutate ( part = forcats::fct_relevel(part, c("fidesz", "jobbik", "mszp", 
                                               "lmp", "dk", "momentum", 
                                               "mkkp", "egyutt"))) %>%
  filter ( ervenytelen > 0) %>%
  mutate ( is_ellenzek = ifelse ( is_ellenzek ==1, "van ellenzéki", "nincs ellenzéki"))

write.csv(kistelepulesek, "data/kistelepulesek.csv")
write.csv(szavazas, "data/szavazas.csv")
write.csv(bizottsagok, "data/bizottsagok.csv")
write.csv(delegaltak, "data/delegaltak.csv")