RA Parallelberechnung mit synthetischen Daten
example_computation.Rmd
Anmerkungen
Das vorliegende Skript implementiert die Berechnung des Risikoausgleichs, wie sie in SORA PCG implementiert ist. Zu Demonstrations- und Testzwecken beinhaltet das Paket einen Datensatz mit synthetischen Daten. Entsprechend werden Berechnungsergebnisse nicht mit denjenigen aus SORA PCG übereinstimmen.
Konfiguration
# Individualdaten: wenn NULL, werden die im Package integrierten, synthetischen
# Testdaten verwendet. Siehe hierzu Disclaimer im README sowie ?test_data
ind_data <- NULL
# PCG Liste: entweder ein data.frame oder eine Pfadangabe zu einer .xlsx-Datei
# Wenn NULL, wird die im Package integrierte PCG Liste zum Ausgleichsjahr 2022
# verwendet.
pcg_list <- NULL
# Ausgleichsjahr: wenn ind_data NULL ist, werden die Jahresangaben in den
# Testdaten entsprechend rekodiert.
Year <- 2022
# Angabe, ob Zwischenresultate bereinigt werden sollen
Clean_Steps <- FALSE
Parallelberechnung
source(system.file("script/1-Setup.R", package = "GErapcg"))
source(system.file("script/2-Pcg-List.R", package = "GErapcg"))
source(system.file("script/3-Grouping-Hierarchy.R", package = "GErapcg"))
source(system.file("script/4-Preparation.R", package = "GErapcg"))
source(system.file("script/5-Berechnung.R", package = "GErapcg"))
source(system.file("script/6-PCG-Nachweis.R", package = "GErapcg"))
Alternativ kann die Parallelberechnung auch mit der Funktion
GErapcg::compute_ra
berechnet werden.
Beispiele
Übersicht Berechnungsergebnisse für Versicherer 1 in Kanton Aargau
saldo_ag_1 <- saldo[BagNr == 1 & Kanton == "AG"] %>%
select(-a_tilde_kr, -saldo_ohne_D, -D_k) %>%
rename(
`Aufenthalt Vorjahr` = Aufenthalt_Vj,
Monate = Monate_T,
`Zuschlag Risikogruppe (Total)` = a_bkr_sum,
`Zuschlag PCG (Total)` = pcg_sum_bkr,
`Entlastung junge Erwachsene` = D_total,
`Saldo` = saldo_mit_D
)
BagNr | Kanton | Altersklasse | Geschlecht | Aufenthalt Vorjahr | Monate | Zuschlag Risikogruppe (Total) | Zuschlag PCG (Total) | Entlastung junge Erwachsene | Saldo |
---|---|---|---|---|---|---|---|---|---|
1.00 | AG | 0.00-18.00 | F | J | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 |
1.00 | AG | 19.00-25.00 | F | J | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 |
1.00 | AG | 26.00-30.00 | F | J | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 |
1.00 | AG | 31.00-35.00 | F | J | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 |
1.00 | AG | 36.00-40.00 | F | J | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 |
1.00 | AG | 41.00-45.00 | F | J | 12.00 | 8455.14 | 0.00 | -59.05 | 8396.09 |
1.00 | AG | 46.00-50.00 | F | J | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 |
1.00 | AG | 51.00-55.00 | F | J | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 |
1.00 | AG | 56.00-60.00 | F | J | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 |
1.00 | AG | 61.00-65.00 | F | J | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 |
Quelle: Eigene Darstellung, GE KVG. |
Übersicht der PCG-Ansätze und Anzahl pro Versicherer
nachweis <- pcg_nachweis[
as.data.table(pcg_coef), on = .(pcg)
][
,`:=`(Versicherer = paste0("Versicherer", BagNr))
] %>%
dcast(
Jahr + pcg + pcg_ansatz ~ Versicherer, value.var = "pcg",
fun.aggregate = length
) %>%
rowwise() %>%
mutate(
`Total (Anzahl)` = sum(c_across(starts_with("Versicherer"))),
) %>%
mutate(`Total (Zuschlag)` = pcg_ansatz * `Total (Anzahl)`) %>%
rename(PCG = pcg, `PCG Ansatz` = pcg_ansatz) %>%
select(-Jahr) %>%
arrange(desc(`Total (Zuschlag)`))
PCG | PCG Ansatz | Versicherer1.00 | Versicherer2.00 | Versicherer3.00 | Total (Anzahl) | Total (Zuschlag) |
---|---|---|---|---|---|---|
KRK | 3158.81 | 7.00 | 9.00 | 19.00 | 35.00 | 110558.39 |
PSY | 1542.29 | 12.00 | 22.00 | 23.00 | 57.00 | 87910.31 |
HCH | 187.97 | 89.00 | 171.00 | 179.00 | 439.00 | 82520.26 |
DEP | 180.50 | 113.00 | 128.00 | 159.00 | 400.00 | 72199.51 |
DM1.00 | 647.69 | 17.00 | 29.00 | 42.00 | 88.00 | 56997.05 |
AIK | 1857.43 | 8.00 | 3.00 | 10.00 | 21.00 | 39006.05 |
DM2.00hyp | 317.80 | 34.00 | 45.00 | 35.00 | 114.00 | 36229.65 |
PAH | 30649.62 | 0.00 | 0.00 | 1.00 | 1.00 | 30649.62 |
HIV | 1314.89 | 7.00 | 6.00 | 8.00 | 21.00 | 27612.64 |
AST | 315.19 | 20.00 | 25.00 | 35.00 | 80.00 | 25215.45 |
Quelle: Eigene Darstellung, GE KVG. |