baza_df <- import("baza.xlsx")
baza_df <- clean_names(baza_df)
## `summarise()` has grouped output by 'DanBaze'. You can override using the
## `.groups` argument.
## png
## 3
## png
## 3
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
## Warning: Removed 6 rows containing missing values or values outside the scale range
## (`geom_line()`).
## ### Dani sa najvećim prosečnim NEDOCS skorom
Datum | srednji_nedocs |
---|---|
2022-10-11 | 70.2 |
2023-02-24 | 67.8 |
2022-11-29 | 67.1 |
2022-10-25 | 65.8 |
2022-06-07 | 65.2 |
2022-04-26 | 64.3 |
2022-05-24 | 63.9 |
2023-03-21 | 63.9 |
2022-12-27 | 63.7 |
2023-03-31 | 63.4 |
##
##
## ### Dani sa najmanjim prosečnim NEDOCS skorom
Datum | srednji_nedocs |
---|---|
2023-04-09 | 2.7 |
2023-04-08 | 3.2 |
2023-04-07 | 4.0 |
2023-04-10 | 13.5 |
2023-02-15 | 14.2 |
2023-04-06 | 18.3 |
2022-07-20 | 19.4 |
2022-07-13 | 20.2 |
2022-08-24 | 21.0 |
2022-05-11 | 21.3 |
Datum | Dan | Sat_pocetak |
---|---|---|
2022-04-30 | Saturday | 11 |
2022-05-24 | Tuesday | 8 |
2022-05-24 | Tuesday | 9 |
2022-06-07 | Tuesday | 11 |
2022-07-14 | Thursday | 11 |
2022-09-14 | Wednesday | 7 |
2022-09-15 | Thursday | 10 |
2022-09-27 | Tuesday | 13 |
2022-09-29 | Thursday | 14 |
2022-10-09 | Sunday | 13 |
2022-10-17 | Monday | 9 |
2022-10-25 | Tuesday | 9 |
2022-11-29 | Tuesday | 10 |
2022-12-11 | Sunday | 13 |
2022-12-27 | Tuesday | 9 |
2023-01-03 | Tuesday | 11 |
2023-01-08 | Sunday | 13 |
2023-01-19 | Thursday | 13 |
2023-02-08 | Wednesday | 11 |
2023-02-09 | Thursday | 14 |
2023-02-14 | Tuesday | 19 |
Table:
Datum | Dan | Sat_pocetak |
---|---|---|
2022-04-13 | Wednesday | 14 |
2022-04-13 | Wednesday | 15 |
2022-04-18 | Monday | 7 |
2022-04-18 | Monday | 11 |
2022-04-23 | Saturday | 18 |
2022-04-26 | Tuesday | 15 |
2022-04-30 | Saturday | 10 |
2022-05-16 | Monday | 8 |
2022-05-27 | Friday | 9 |
2022-06-07 | Tuesday | 21 |
2022-06-10 | Friday | 12 |
2022-06-14 | Tuesday | 11 |
2022-06-24 | Friday | 9 |
2022-06-28 | Tuesday | 10 |
2022-06-29 | Wednesday | 8 |
2022-07-03 | Sunday | 11 |
2022-07-04 | Monday | 8 |
2022-07-05 | Tuesday | 9 |
2022-07-07 | Thursday | 10 |
2022-07-12 | Tuesday | 9 |
2022-07-16 | Saturday | 10 |
2022-07-22 | Friday | 9 |
2022-07-29 | Friday | 20 |
2022-08-03 | Wednesday | 10 |
2022-08-04 | Thursday | 15 |
2022-08-05 | Friday | 17 |
2022-08-11 | Thursday | 16 |
2022-08-30 | Tuesday | 11 |
2022-09-09 | Friday | 7 |
2022-09-19 | Monday | 9 |
2022-09-20 | Tuesday | 12 |
2022-09-26 | Monday | 12 |
2022-10-01 | Saturday | 20 |
2022-10-05 | Wednesday | 14 |
2022-10-10 | Monday | 12 |
2022-10-11 | Tuesday | 13 |
2022-10-11 | Tuesday | 16 |
2022-10-12 | Wednesday | 10 |
2022-10-21 | Friday | 8 |
2022-10-24 | Monday | 8 |
2022-10-25 | Tuesday | 18 |
2022-11-04 | Friday | 8 |
2022-11-08 | Tuesday | 8 |
2022-11-08 | Tuesday | 16 |
2022-11-15 | Tuesday | 8 |
2022-11-16 | Wednesday | 9 |
2022-11-17 | Thursday | 13 |
2022-11-21 | Monday | 12 |
2022-11-24 | Thursday | 11 |
2022-11-25 | Friday | 8 |
2022-11-28 | Monday | 9 |
2022-11-28 | Monday | 11 |
2022-11-29 | Tuesday | 13 |
2022-11-30 | Wednesday | 8 |
2022-12-05 | Monday | 17 |
2022-12-16 | Friday | 9 |
2022-12-28 | Wednesday | 7 |
2023-01-11 | Wednesday | 8 |
2023-01-12 | Thursday | 13 |
2023-01-31 | Tuesday | 13 |
2023-02-02 | Thursday | 10 |
2023-02-03 | Friday | 11 |
2023-02-08 | Wednesday | 9 |
2023-02-08 | Wednesday | 10 |
2023-02-17 | Friday | 8 |
2023-02-28 | Tuesday | 10 |
2023-03-02 | Thursday | 8 |
2023-03-02 | Thursday | 9 |
2023-03-03 | Friday | 8 |
2023-03-08 | Wednesday | 10 |
2023-03-13 | Monday | 8 |
2023-03-16 | Thursday | 9 |
2023-03-21 | Tuesday | 15 |
2023-03-22 | Wednesday | 9 |
2023-03-27 | Monday | 10 |
2023-04-03 | Monday | 8 |
## Registered S3 method overwritten by 'tsibble':
## method from
## as_tibble.grouped_df dplyr
##
## Attaching package: 'tsibble'
## The following object is masked from 'package:zoo':
##
## index
## The following object is masked from 'package:lubridate':
##
## interval
## The following objects are masked from 'package:base':
##
## intersect, setdiff, union
## Loading required package: fabletools
## datetime remainder
## 1 2022-09-14 07:00:00 136.2044
## 2 2023-01-08 13:00:00 132.0216
## 3 2022-07-14 11:00:00 127.3560
## 4 2022-10-09 13:00:00 125.5390
## 5 2022-09-29 14:00:00 124.9093
## 6 2023-02-14 19:00:00 117.3846
## 7 2022-07-29 20:00:00 116.4408
## 8 2022-12-11 13:00:00 115.1490
## 9 2023-02-08 11:00:00 114.9995
## 10 2023-01-03 11:00:00 113.7423
## 11 2022-04-30 11:00:00 113.3940
## 12 2023-02-09 14:00:00 113.3481
## 13 2023-01-19 13:00:00 112.9615
## 14 2022-09-15 10:00:00 106.5487
## 15 2022-09-26 12:00:00 105.3690
## 16 2022-11-29 10:00:00 103.1678
## 17 2022-08-03 10:00:00 102.7484
## 18 2022-09-27 13:00:00 102.1118
## 19 2022-12-27 09:00:00 100.1917
## 20 2022-05-24 09:00:00 100.1308
## # A tibble: 13 × 5
## datum sat remainder sat_next remainder_next
## <date> <int> <dbl> <int> <dbl>
## 1 2022-04-13 14 93.2 15 97.3
## 2 2022-04-30 10 87.1 11 113.
## 3 2022-05-24 8 95.1 9 100.
## 4 2022-06-29 8 86.8 9 57.3
## 5 2022-10-18 18 55.5 19 59.0
## 6 2022-10-18 19 59.0 20 56.9
## 7 2022-11-09 7 54.0 8 69.0
## 8 2022-11-30 7 51.1 8 69.5
## 9 2023-02-03 11 63.2 12 53.4
## 10 2023-02-08 9 70.8 10 86.7
## 11 2023-02-08 10 86.7 11 115.
## 12 2023-03-02 8 74.0 9 64.4
## 13 2023-03-22 8 56.8 9 67.9
datum | sat | remainder | sat_next | remainder_next |
---|---|---|---|---|
2022-04-13 | 14 | 93.2 | 15 | 97.3 |
2022-04-30 | 10 | 87.1 | 11 | 113.4 |
2022-05-24 | 8 | 95.1 | 9 | 100.1 |
2022-06-29 | 8 | 86.8 | 9 | 57.3 |
2022-10-18 | 18 | 55.5 | 19 | 59.0 |
2022-10-18 | 19 | 59.0 | 20 | 56.9 |
2022-11-09 | 7 | 54.0 | 8 | 69.0 |
2022-11-30 | 7 | 51.1 | 8 | 69.5 |
2023-02-03 | 11 | 63.2 | 12 | 53.4 |
2023-02-08 | 9 | 70.8 | 10 | 86.7 |
2023-02-08 | 10 | 86.7 | 11 | 115.0 |
2023-03-02 | 8 | 74.0 | 9 | 64.4 |
2023-03-22 | 8 | 56.8 | 9 | 67.9 |
nedocs_kategorija | broj_sati | broj_smrtnih | smrtnost_na_1000_sati |
---|---|---|---|
1 | 2652 | 73 | 27.53 |
2 | 3413 | 118 | 34.57 |
3 | 2205 | 87 | 39.46 |
4 | 393 | 14 | 35.62 |
5 | 76 | 2 | 26.32 |
6 | 21 | 2 | 95.24 |
Ukupno | 8760 | 296 | 33.79 |
nedocs_kategorija | broj_sati | broj_smrtnih | maksimalni_broj_umrlih | smrtnost_na_1000_sati |
---|---|---|---|---|
1 | 2652 | 73 | 1 | 27.53 |
2 | 3413 | 118 | 2 | 34.57 |
3 | 2205 | 87 | 2 | 39.46 |
4 | 393 | 14 | 1 | 35.62 |
5 | 76 | 2 | 1 | 26.32 |
6 | 21 | 2 | 1 | 95.24 |
Ukupno | 8760 | 296 | 2 | 33.79 |
## Waiting for profiling to be done...
## Waiting for profiling to be done...
## Waiting for profiling to be done...
## Waiting for profiling to be done...
model | RR | CI_low | CI_high | p_value | |
---|---|---|---|---|---|
nedocs_lag1 | lag1 | 1.0029 | 0.9997 | 1.0061 | 0.0748 |
nedocs_lag2 | lag2 | 1.0032 | 1.0000 | 1.0064 | 0.0456 |
nedocs_lead1 | lead1 | 1.0045 | 1.0013 | 1.0076 | 0.0048 |
nedocs_lead2 | lead2 | 1.0016 | 0.9984 | 1.0048 | 0.3231 |
##
## Call:
## lm(formula = final_nedocs_korigovano ~ broj_umrlih_lag1, data = baza_df)
##
## Residuals:
## Min 1Q Median 3Q Max
## -50.100 -30.223 -1.528 22.277 155.565
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 44.4352 0.3752 118.439 < 2e-16 ***
## broj_umrlih_lag1 5.6646 2.0072 2.822 0.00478 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 34.53 on 8757 degrees of freedom
## (1 observation deleted due to missingness)
## Multiple R-squared: 0.0009086, Adjusted R-squared: 0.0007945
## F-statistic: 7.964 on 1 and 8757 DF, p-value: 0.004782
## 2.5 % 97.5 %
## 1.729943 9.599252
## Call:
## polr(formula = nedocs_kategorija_lead1 ~ broj_umrlih_kojima_su_otvoreni_kartoni_u_toku_24h,
## data = baza_df, Hess = TRUE)
##
## Coefficients:
## Value Std. Error t value
## broj_umrlih_kojima_su_otvoreni_kartoni_u_toku_24h 0.2798 0.107 2.614
##
## Intercepts:
## Value Std. Error t value
## 1|2 -0.8260 0.0235 -35.1617
## 2|3 0.8206 0.0235 34.9746
## 3|4 2.8366 0.0467 60.7410
## 4|5 4.5029 0.1022 44.0599
## 5|6 6.0418 0.2185 27.6481
##
## Residual Deviance: 22260.96
## AIC: 22272.96
## (1 observation deleted due to missingness)
## Waiting for profiling to be done...
## Varijabla
## broj_umrlih_kojima_su_otvoreni_kartoni_u_toku_24h broj_umrlih_kojima_su_otvoreni_kartoni_u_toku_24h
## RR CI_low CI_high p_value
## broj_umrlih_kojima_su_otvoreni_kartoni_u_toku_24h 1.3228 1.0722 1.6313 0.0089
slaba povezanost
## Warning in
## cor.test.default(baza_df$broj_umrlih_kojima_su_otvoreni_kartoni_u_toku_24h, :
## Cannot compute exact p-value with ties
##
## Spearman's rank correlation rho
##
## data: baza_df$broj_umrlih_kojima_su_otvoreni_kartoni_u_toku_24h and baza_df$final_nedocs_korigovano
## S = 1.0912e+11, p-value = 0.0149
## alternative hypothesis: true rho is not equal to 0
## sample estimates:
## rho
## 0.02601266
slaba povezanost
## Warning in
## cor.test.default(baza_df$broj_umrlih_kojima_su_otvoreni_kartoni_u_toku_24h, :
## Cannot compute exact p-value with ties
##
## Spearman's rank correlation rho
##
## data: baza_df$broj_umrlih_kojima_su_otvoreni_kartoni_u_toku_24h and as.numeric(baza_df$nedocs_kategorija)
## S = 1.0955e+11, p-value = 0.03759
## alternative hypothesis: true rho is not equal to 0
## sample estimates:
## rho
## 0.0222164
Zakljucak: Sistem je vrlo stabila. Okreni-obrni.
## # A tibble: 2 × 4
## bilo_smrti broj_sati srednji_nedocs sd_nedocs
## <dbl> <int> <dbl> <dbl>
## 1 0 8469 44.5 34.5
## 2 1 291 49.1 34.9
##
## Wilcoxon rank sum test with continuity correction
##
## data: final_nedocs_korigovano by bilo_smrti
## W = 1129259, p-value = 0.01509
## alternative hypothesis: true location shift is not equal to 0
U kontekstu zdravstvenog sistema u Srbiji, važno je istaći da služba hitne pomoći (SHP) ne obavlja isključivo transportnu funkciju, već i samostalno pruža hitnu medicinsku pomoć na terenu. SHP timovi procenjuju i zbrinjavaju pacijente na licu mesta, pri čemu značajan broj slučajeva ne biva transportovan u bolnicu, već se rešava u kućnim ili vanbolničkim uslovima.
Ova sistemska osobenost ima važnu metodološku posledicu: svi pokazatelji opterećenosti hitne bolničke službe (uključujući NEDOCS skor) odnose se isključivo na pacijente koji su došli do bolnice, a ne na ukupno opterećenje hitne medicinske službe. Samim tim, posmatrani nivo opterećenja ED-a odražava selektivnu sliku urgentne populacije — onu koju je SHP procenila kao indikovanu za transport. Blagi ili umereni urgentni slučajevi koji su rešeni na terenu ostaju van obuhvata ovog istraživanja.
Dodatno, deo smrtnih ishoda može se desiti van bolnice, pre dolaska u ED, i samim tim ne ulazi u povezane NEDOCS vrednosti. Ove okolnosti zahtevaju oprez u tumačenju odnosa između gužve, ishoda i sistemskih kapaciteta. U tom smislu, NEDOCS skor ne odražava ukupno sistemsko opterećenje hitne službe, već njen bolnički segment, uslovljen prethodnom trijažom od strane SHP-a. Ovde je vazno napomenuti, da iako se ED vodi kao primarna zdravstvena zastita, to je defakto ambulanta usluga u bolnici koja se obavlja bez uputa. U sistemima na koje se mi refereisemo, primarna zdravstvena zastitaj je po pravilu planirana. Da neko dodje kod lekara opste prakse i da se zali da bol u grudima ili na prelom klavikule je izuzetak. U Srbiji, postoji izabrani lekar i SHP u kojoj rade obuceni zdravsteni radnici (na zalost) u kojoj se resavaju ovi problemi. Tek najtezi ili najuporniji slucajevi u Beogradu stignu u ED.
## Warning: Removed 6 rows containing missing values or values outside the scale range
## (`geom_line()`).
# 15. Mortality: Bar plot
Da li je overdisperison
##
## Overdispersion test
##
## data: poisson_model
## z = -0.24326, p-value = 0.5961
## alternative hypothesis: true dispersion is greater than 1
## sample estimates:
## dispersion
## 0.9967767
## Classes and Methods for R originally developed in the
## Political Science Computational Laboratory
## Department of Political Science
## Stanford University (2002-2015),
## by and under the direction of Simon Jackman.
## hurdle and zeroinfl functions by Achim Zeileis.
##
## Call:
## zeroinfl(formula = broj_umrlih_kojima_su_otvoreni_kartoni_u_toku_24h ~
## nedocs_kategorija | nedocs_kategorija, data = baza_df, dist = "poisson")
##
## Pearson residuals:
## Min 1Q Median 3Q Max
## -0.3086 -0.1887 -0.1859 -0.1659 10.5698
##
## Count model coefficients (poisson with log link):
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -3.59242 0.11782 -30.490 <2e-16 ***
## nedocs_kategorija2 0.22947 0.31489 0.729 0.4662
## nedocs_kategorija3 0.94147 0.58599 1.607 0.1081
## nedocs_kategorija4 0.25766 0.29220 0.882 0.3779
## nedocs_kategorija5 -0.04502 0.72057 -0.062 0.9502
## nedocs_kategorija6 1.24110 0.71702 1.731 0.0835 .
##
## Zero-inflation model coefficients (binomial with logit link):
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -8.5782 72.0561 -0.119 0.905
## nedocs_kategorija2 2.1965 179.1637 0.012 0.990
## nedocs_kategorija3 8.3411 72.0674 0.116 0.908
## nedocs_kategorija4 -2.3492 472.1335 -0.005 0.996
## nedocs_kategorija5 -0.2751 516.2027 -0.001 1.000
## nedocs_kategorija6 -1.9862 622.0291 -0.003 0.997
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Number of iterations in BFGS optimization: 60
## Log-likelihood: -1298 on 12 Df
Model ne nalazi nikakvu statističku vezu između nedocs_kategorija i verovatnoće da nema smrti.
##
## Call:
## glm(formula = broj_umrlih_kojima_su_otvoreni_kartoni_u_toku_24h ~
## nedocs_kategorija, family = poisson, data = baza_df)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -3.59261 0.11704 -30.695 <2e-16 ***
## nedocs_kategorija2 0.22795 0.14891 1.531 0.1258
## nedocs_kategorija3 0.36004 0.15872 2.268 0.0233 *
## nedocs_kategorija4 0.25786 0.29177 0.884 0.3768
## nedocs_kategorija5 -0.04498 0.71673 -0.063 0.9500
## nedocs_kategorija6 1.24123 0.71673 1.732 0.0833 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for poisson family taken to be 1)
##
## Null deviance: 2019.3 on 8759 degrees of freedom
## Residual deviance: 2012.2 on 8754 degrees of freedom
## AIC: 2609.3
##
## Number of Fisher Scoring iterations: 6
Kategorija 3 (gužva) je statistički značajno povezana sa povećanim brojem umrlih (p = 0.023)
Kategorija 6 (ekstremna gužva) pokazuje potencijalno snažan efekat, ali je na granici značajnosti (p = 0.083) — verovatno zbog malog broja sati u toj kategoriji
Ostale kategorije nisu značajno različite od “Nema gužve”
## (Intercept) nedocs_kategorija2 nedocs_kategorija3 nedocs_kategorija4
## 0.0275264 1.2560195 1.4333799 1.2941546
## nedocs_kategorija5 nedocs_kategorija6
## 0.9560202 3.4598826
## Estimate Std. Error z value Pr(>|z|)
## nedocs_kategorija2 0.22794759 0.1489065 1.53081041 0.12581626
## nedocs_kategorija3 0.36003524 0.1587225 2.26833214 0.02330897
## nedocs_kategorija4 0.25785763 0.2917654 0.88378410 0.37681277
## nedocs_kategorija5 -0.04497625 0.7167260 -0.06275236 0.94996370
## nedocs_kategorija6 1.24123465 0.7167276 1.73180798 0.08330776
## kategorija IRR CI_lower CI_upper
## nedocs_kategorija2 nedocs_kategorija2 1.2560195 0.9380903 1.681698
## nedocs_kategorija3 nedocs_kategorija3 1.4333799 1.0501565 1.956449
## nedocs_kategorija4 nedocs_kategorija4 1.2941546 0.7305172 2.292672
## nedocs_kategorija5 nedocs_kategorija5 0.9560202 0.2346268 3.895440
## nedocs_kategorija6 nedocs_kategorija6 3.4598826 0.8491227 14.097829
## Warning in
## cor.test.default(baza_df$broj_umrlih_kojima_su_otvoreni_kartoni_u_toku_24h, :
## Cannot compute exact p-value with ties
##
## Spearman's rank correlation rho
##
## data: baza_df$broj_umrlih_kojima_su_otvoreni_kartoni_u_toku_24h and baza_df$final_nedocs_korigovano
## S = 1.0912e+11, p-value = 0.0149
## alternative hypothesis: true rho is not equal to 0
## sample estimates:
## rho
## 0.02601266
##
## Call: glm(formula = broj_umrlih_kojima_su_otvoreni_kartoni_u_toku_24h ~
## final_nedocs_korigovano, family = poisson, data = baza_df)
##
## Coefficients:
## (Intercept) final_nedocs_korigovano
## -3.564744 0.003774
##
## Degrees of Freedom: 8759 Total (i.e. Null); 8758 Residual
## Null Deviance: 2019
## Residual Deviance: 2014 AIC: 2603
nije nesto koristan prikaz
## Warning in
## cor.test.default(baza_df$broj_odustalih_od_pregleda_storniranih_kartona, :
## Cannot compute exact p-value with ties
##
## Spearman's rank correlation rho
##
## data: baza_df$broj_odustalih_od_pregleda_storniranih_kartona and baza_df$final_nedocs_korigovano
## S = 6.0787e+10, p-value < 2.2e-16
## alternative hypothesis: true rho is not equal to 0
## sample estimates:
## rho
## 0.4574355
## `geom_smooth()` using formula = 'y ~ x'
Do NEDOCS ≈ 100–120, veći skor → više ljudi odlazi bez pregleda
Posle toga kriva se izravnava ili opada
Moguće interpretacije:
Plateau efekat: kada je ekstremna gužva, svi ostaju jer se osećaju “zarobljeno”?
Selektivno ponašanje: samo najhitniji ostaju
Manje sati sa jako visokim skorom, pa je kriva manje pouzdana tu
##
## Call: glm(formula = broj_odustalih_od_pregleda_storniranih_kartona ~
## final_nedocs_korigovano, family = poisson, data = baza_df)
##
## Coefficients:
## (Intercept) final_nedocs_korigovano
## -1.46878 0.01726
##
## Degrees of Freedom: 8759 Total (i.e. Null); 8758 Residual
## Null Deviance: 12480
## Residual Deviance: 9938 AIC: 17430
Transformacija u IRR (exp(beta)):
## [1] 1.01741
Ako se NEDOCS skor poveza za 50 poena
## [1] 2.370261
##
## Call: glm(formula = broj_odustalih_od_pregleda_storniranih_kartona ~
## final_nedocs_korigovano + I(final_nedocs_korigovano^2), family = poisson,
## data = baza_df)
##
## Coefficients:
## (Intercept) final_nedocs_korigovano
## -2.3076176 0.0449044
## I(final_nedocs_korigovano^2)
## -0.0001745
##
## Degrees of Freedom: 8759 Total (i.e. Null); 8757 Residual
## Null Deviance: 12480
## Residual Deviance: 9308 AIC: 16810
Pozitivan linearni koeficijent → veći NEDOCS = više odlazaka bez pregleda
Negativan kvadratni koeficijent → ali efekat se usporava i potencijalno opada pri vrlo visokim skorovima
👉 rast do ~100–120, zatim blago opadanje ili zasićenje
## NEDOCS_skor formula mu_tekst
## 1 50 -2.308 + 0.045 × 50 + -0.000 × 50^2 = -0.499 exp(-0.499) = 0.61
## 2 100 -2.308 + 0.045 × 100 + -0.000 × 100^2 = 0.438 exp(0.438) = 1.55
## 3 150 -2.308 + 0.045 × 150 + -0.000 × 150^2 = 0.502 exp(0.502) = 1.65
## interpretacija
## 1 Ako je NEDOCS skor 50, očekuje se 0.61 lica koja će otići bez pregleda u tom satu.
## 2 Ako je NEDOCS skor 100, očekuje se 1.55 lica koja će otići bez pregleda u tom satu.
## 3 Ako je NEDOCS skor 150, očekuje se 1.65 lica koja će otići bez pregleda u tom satu.
## Loading required package: nlme
##
## Attaching package: 'nlme'
## The following object is masked from 'package:feasts':
##
## ACF
## The following object is masked from 'package:dplyr':
##
## collapse
## The following object is masked from 'package:forecast':
##
## getResponse
## This is mgcv 1.9-3. For overview type 'help("mgcv-package")'.
## final_nedocs_korigovano log_mu mu
## 1 129 0.7025809 2.018957
Kada je NEDOCS skor oko 129, očekuje se najveći broj pacijenata koji će otići bez pregleda u jednom satu — otprilike 2 osobe.
Posle 129: Efekat NEDOCS skora postaje negativan — znači:
iako je gužva sve veća, broj pacijenata koji odu se više ne povećava
moguće objašnjenje: nema ko da ode (svi su već zadržani ili preozbiljni slučajevi)
baza_df %>%
group_by(nedocs_kategorija) %>%
summarise(otvoreni = sum(c_broj_otvorenih_kartona, na.rm = TRUE),
.groups = "drop") %>%
ggplot(aes(x = nedocs_kategorija, y = otvoreni)) +
geom_col(fill = "steelblue") +
geom_text(aes(label = otvoreni), vjust = -0.3, size = 3.5) +
labs(title = "Otvoreni kartoni po NEDOCS kategorijama",
x = "NEDOCS kategorija", y = "Broj otvorenih kartona") +
theme_minimal()
mortalitet_df <- baza_df %>%
group_by(nedocs_kategorija) %>%
summarise(
umrli = sum(broj_umrlih_kojima_su_otvoreni_kartoni_u_toku_24h, na.rm = TRUE),
otvoreni = sum(c_broj_otvorenih_kartona, na.rm = TRUE),
.groups = "drop"
) %>%
mutate(mortalitet_na_100 = (umrli / otvoreni) * 100)
mortalitet_df
## # A tibble: 6 × 4
## nedocs_kategorija umrli otvoreni mortalitet_na_100
## <fct> <dbl> <dbl> <dbl>
## 1 1 73 16089 0.454
## 2 2 118 71861 0.164
## 3 3 87 70831 0.123
## 4 4 14 16316 0.0858
## 5 5 2 3014 0.0664
## 6 6 2 858 0.233
ggplot(mortalitet_df, aes(x = nedocs_kategorija, y = mortalitet_na_100)) +
geom_col(fill = "firebrick") +
geom_text(aes(label = sprintf("%.2f%%", mortalitet_na_100)),
vjust = -0.3, size = 3.5) +
labs(title = "Mortalitet (%) po NEDOCS kategorijama",
x = "NEDOCS kategorija", y = "Mortalitet (%)") +
theme_minimal()
mortalitet_df <- baza_df %>%
group_by(nedocs_kategorija) %>%
summarise(
umrli_otvoreni = sum(broj_umrlih_kojima_su_otvoreni_kartoni_u_toku_24h, na.rm = TRUE),
umrli_prijem = sum(broj_umrlih_po_prijemu_u_toku_24h_od_otvaranja_istorije_bolesti, na.rm = TRUE),
otvoreni = sum(c_broj_otvorenih_kartona, na.rm = TRUE),
.groups = "drop"
) %>%
mutate(
umrli_ukupno = umrli_otvoreni + umrli_prijem,
mortalitet_na_100 = (umrli_ukupno / otvoreni) * 100
)
mortalitet_df
## # A tibble: 6 × 6
## nedocs_kategorija umrli_otvoreni umrli_prijem otvoreni umrli_ukupno
## <fct> <dbl> <dbl> <dbl> <dbl>
## 1 1 73 130 16089 203
## 2 2 118 198 71861 316
## 3 3 87 124 70831 211
## 4 4 14 25 16316 39
## 5 5 2 5 3014 7
## 6 6 2 1 858 3
## # ℹ 1 more variable: mortalitet_na_100 <dbl>
ggplot(mortalitet_df, aes(x = nedocs_kategorija, y = mortalitet_na_100))+
geom_col(fill = "firebrick") +
geom_text(aes(label = sprintf("%.2f%%", mortalitet_na_100)),
vjust = -0.3, size = 3.5) +
labs(
title = "Mortalitet (%) po NEDOCS kategorijama",
subtitle = "Sabran broj umrlih sa otvorenim kartonom i po prijemu u 24h",
x = "NEDOCS kategorija", y = "Mortalitet (%)"
) +
theme_minimal()
baza_df_clean %>%
group_by(sat_pocetak) %>%
summarise(
ukupno_umrlih = sum(
broj_umrlih_kojima_su_otvoreni_kartoni_u_toku_24h +
broj_umrlih_po_prijemu_u_toku_24h_od_otvaranja_istorije_bolesti,
na.rm = TRUE
),
.groups = "drop"
) %>%
ggplot(aes(x = sat_pocetak, y = ukupno_umrlih)) +
geom_col(fill = "steelblue") +
geom_text(aes(label = ukupno_umrlih), vjust = -0.5, size = 3) +
labs(title = "Ukupan broj umrlih (zbir) po satima u danu",
x = "Sat (početak časa)", y = "Ukupan broj umrlih (zbir)") +
theme_minimal()
baza_df_clean %>%
group_by(dan_u_nedelji) %>%
summarise(
ukupno_umrlih = sum(
broj_umrlih_kojima_su_otvoreni_kartoni_u_toku_24h +
broj_umrlih_po_prijemu_u_toku_24h_od_otvaranja_istorije_bolesti,
na.rm = TRUE
),
.groups = "drop"
) %>%
ggplot(aes(x = dan_u_nedelji, y = ukupno_umrlih)) +
geom_col(fill = "tomato") +
geom_text(aes(label = ukupno_umrlih), vjust = -0.5, size = 3) +
labs(title = "Ukupan broj umrlih (zbir) po danima u nedelji",
x = "Dan u nedelji", y = "Ukupan broj umrlih (zbir)") +
theme_minimal()
baza_df_clean %>%
group_by(mesec) %>%
summarise(
ukupno_umrlih = sum(
broj_umrlih_kojima_su_otvoreni_kartoni_u_toku_24h +
broj_umrlih_po_prijemu_u_toku_24h_od_otvaranja_istorije_bolesti,
na.rm = TRUE
),
.groups = "drop"
) %>%
ggplot(aes(x = mesec, y = ukupno_umrlih)) +
geom_col(fill = "darkseagreen") +
geom_text(aes(label = ukupno_umrlih), vjust = -0.5, size = 3) +
labs(title = "Ukupan broj umrlih (zbir) po mesecima",
x = "Mesec", y = "Ukupan broj umrlih (zbir)") +
theme_minimal()
library(dplyr)
library(ggplot2)
baza_df %>%
group_by(sat_pocetak) %>%
summarise(
odustali = sum(broj_odustalih_od_pregleda_storniranih_kartona, na.rm = TRUE),
otvoreni = sum(c_broj_otvorenih_kartona, na.rm = TRUE),
.groups = "drop"
) %>%
mutate(
stopa_odustalih = (odustali / otvoreni) * 100 # procentualno
) %>%
ggplot(aes(x = sat_pocetak, y = stopa_odustalih)) +
geom_col(fill = "tomato") +
geom_text(aes(label = sprintf("%.1f%%", stopa_odustalih)),
vjust = -0.5, size = 3) +
labs(title = "Udeo odustalih u odnosu na broj otvorenih kartona po satima",
x = "Sat", y = "Odustali (%)") +
theme_minimal()
# definicija redosleda dana (ako imaš samo radne dane Monday–Friday)
dan_levels <- c("Monday","Tuesday","Wednesday","Thursday","Friday",
"Saturday", "Sunday")
baza_df %>%
group_by(Dan) %>%
summarise(
odustali = sum(broj_odustalih_od_pregleda_storniranih_kartona, na.rm = TRUE),
otvoreni = sum(c_broj_otvorenih_kartona, na.rm = TRUE),
.groups = "drop"
) %>%
mutate(
stopa_odustalih = 100 * odustali / pmax(otvoreni, 1),
Dan = factor(Dan, levels = dan_levels, ordered = TRUE)
) %>%
ggplot(aes(x = Dan, y = stopa_odustalih)) +
geom_col(fill = "tomato") +
geom_text(aes(label = sprintf("%.1f%%", stopa_odustalih)), vjust = -0.5, size = 3) +
labs(
title = "Udeo odustalih u odnosu na broj otvorenih kartona po danima",
x = "Dan u nedelji", y = "Odustali (%)"
) +
theme_minimal()
library(dplyr)
library(ggplot2)
library(lubridate)
baza_df %>%
mutate(
mesec = as.Date(mesec) # "2022-04-01" -> Date
) %>%
filter(mesec >= as.Date("2022-04-01")) %>% # start od Apr 2022
mutate(
mesec_label = format(mesec, "%b %Y") # npr. "Apr 2022"
) %>%
group_by(mesec, mesec_label) %>%
summarise(
odustali = sum(broj_odustalih_od_pregleda_storniranih_kartona, na.rm = TRUE),
otvoreni = sum(c_broj_otvorenih_kartona, na.rm = TRUE),
.groups = "drop"
) %>%
arrange(mesec) %>%
mutate(
stopa_odustalih = 100 * odustali / pmax(otvoreni, 1),
mesec_label = factor(mesec_label, levels = unique(mesec_label), ordered = TRUE)
) %>%
ggplot(aes(x = mesec_label, y = stopa_odustalih)) +
geom_col(fill = "tomato") +
geom_text(aes(label = sprintf("%.1f%%", stopa_odustalih)),
vjust = -0.5, size = 3) +
labs(
title = "Udeo odustalih u odnosu na broj otvorenih kartona po mesecima",
x = "Mesec", y = "Odustali (%)"
) +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
library(dplyr)
library(ggplot2)
library(scales)
baza_df %>%
group_by(nedocs_kategorija) %>%
summarise(
odustali = sum(broj_odustalih_od_pregleda_storniranih_kartona, na.rm = TRUE),
otvoreni = sum(c_broj_otvorenih_kartona, na.rm = TRUE),
.groups = "drop"
) %>%
mutate(stopa_odustalih = (odustali / otvoreni) * 100) %>%
ggplot(aes(x = nedocs_kategorija, y = stopa_odustalih)) +
geom_col(fill = "steelblue") +
geom_text(aes(label = sprintf("%.1f%%", stopa_odustalih)),
vjust = -0.4, size = 3.5) +
scale_y_continuous(expand = expansion(mult = c(0.02, 0.1))) +
labs(
title = "Udeo odustalih (LWBS) po NEDOCS kategorijama",
x = "NEDOCS kategorija", y = "LWBS (%)"
) +
theme_minimal()
2025/08/30