Zdroje dat

load("m3.RData") # Podzimní sběr výkazu M3 2022
load("ruian.RData")

Převod souřadnic z Krovak

# Set the coordinate reference systems (CRS)
sjtsk_crs <- 5514       # S-JTSK (EPSG:5514)
wgs84_crs <- 4326       # WGS 84 CRS code (EPSG:4326)

convert_coordinates <- function(data) {
  data_inverted <- data %>% mutate(
    `Souřadnice X` = as.double(`Souřadnice X`) * -1, 
    `Souřadnice Y` = as.double(`Souřadnice Y`) * -1
  )
  # Create an sf object from the dataset
  data_sf <- st_as_sf(data_inverted, coords = c("Souřadnice Y", "Souřadnice X"), crs = sjtsk_crs)
  
  # Transform the coordinates to WGS 84
  data_wgs84 <- st_transform(data_sf, crs = wgs84_crs)
  
  # Extract the transformed coordinates and add them as new columns
  data_transformed <- data_wgs84 %>%
    cbind(st_coordinates(data_wgs84)) %>%
    as.data.frame() %>%
    rename(x = X, y = Y) %>%
    select(-geometry)
  
  return(data_transformed)
}

Příprava geografických dat

okresy <- st_make_valid(st_read("Okresy___polygony.shp"))
## Reading layer `Okresy___polygony' from data source 
##   `/Users/yetty/Projects/Křesťanské školy - výzkum/Okresy___polygony.shp' 
##   using driver `ESRI Shapefile'
## Simple feature collection with 77 features and 34 fields
## Geometry type: MULTIPOLYGON
## Dimension:     XY
## Bounding box:  xmin: 12.09067 ymin: 48.55189 xmax: 18.85924 ymax: 51.05578
## Geodetic CRS:  WGS 84
souradnice_obci <- ruian %>%
  filter(!is.na(`Souřadnice X`) & !is.na(`Souřadnice Y`)) %>%
  select(`Kód obce`, `Název obce`, `Souřadnice X`, `Souřadnice Y`) %>%
  distinct(`Kód obce`, .keep_all = TRUE)
  

souradnice_obci_wgs <- convert_coordinates(souradnice_obci)
souradnice_obci_sf <- st_as_sf(souradnice_obci_wgs, coords = c("x", "y"), crs = wgs84_crs)
souradnice_obci_sf$okres <- st_within(souradnice_obci_sf, okresy)

obce_s_okresy <- st_drop_geometry(souradnice_obci_sf) %>% mutate(
  okres = as.numeric(okres)
)

Spojení výkazu M3 a geografických dat

m3_s_okresy <- left_join(m3, obce_s_okresy, by=c('KodObce' = 'Kód.obce'))

souhrn_po_okresech <- m3_s_okresy %>% 
  filter(OrganizaceSkoly == 1, DruhZrizovatele %in% c(2, 5, 6)) %>% # Vyfiltrování pouze běžných škol
  group_by(okres) %>%
  summarize(
    PomerZakuSVP_Mean = mean(PomerZakuSVP), # Výpočet průměrného počtu žáků se SVP na školách
    PomerZakuSVP_SD = sd(PomerZakuSVP), # Výpočet směrodatné odchylky pro okres
    ZaciCelkem = sum(ZaciCelkem),
    ZaciSVP = sum(ZaciSVP),
    PocetBudov = n()
    )

okresy_s_daty <- left_join(okresy, souhrn_po_okresech, by=c("OBJECTID" = "okres"))

Výpočet hranice horniho percentilu

percentil_high <- quantile(okresy_s_daty$PomerZakuSVP_SD, 0.90)
okresy_nejvyssi_odchylka <- okresy_s_daty %>% filter(PomerZakuSVP_SD > percentil_high)
okresy_nejvyssi_odchylka <- okresy_nejvyssi_odchylka[order(-okresy_nejvyssi_odchylka$PomerZakuSVP_SD), ]

Okresy od 90. percentilu:

print(okresy_nejvyssi_odchylka[, c("NAZ_LAU1", "PomerZakuSVP_SD", "PocetBudov")])
## Simple feature collection with 8 features and 3 fields
## Geometry type: MULTIPOLYGON
## Dimension:     XY
## Bounding box:  xmin: 12.38244 ymin: 49.08281 xmax: 15.85797 ymax: 51.02328
## Geodetic CRS:  WGS 84
##         NAZ_LAU1 PomerZakuSVP_SD PocetBudov                       geometry
## 5          Louny      0.15269557         26 MULTIPOLYGON (((14.04154 50...
## 2 Mladá Boleslav      0.13644280         37 MULTIPOLYGON (((14.91391 50...
## 6           Most      0.12484385         26 MULTIPOLYGON (((13.55812 50...
## 7        Liberec      0.09970977         49 MULTIPOLYGON (((15.02023 51...
## 3         Tachov      0.09723306         14 MULTIPOLYGON (((12.794 49.9...
## 8        Jihlava      0.09637496         36 MULTIPOLYGON (((15.71774 49...
## 4        Sokolov      0.09449276         27 MULTIPOLYGON (((12.61711 50...
## 1         Kladno      0.08871702         47 MULTIPOLYGON (((14.02338 50...

Graf závislosti počtu SVP a odchylky

Mapa odchylky počtu žáků se SVP v rámci okresu