From 6f86023231afb740aeb6442874a7ab1328223c4b Mon Sep 17 00:00:00 2001 From: Nikola Grubor Date: Tue, 24 Sep 2024 17:26:13 +0200 Subject: [PATCH] pre website change --- 07_hi_kvadrat/prezentacija.qmd | 472 ++----------------------------- 08_rangovi/prezentacija.qmd | 471 +----------------------------- 09_korelacija/prezentacija.qmd | 471 +----------------------------- 10_regresija/prezentacija.qmd | 471 +----------------------------- 13_dijagnostika/prezentacija.qmd | 471 +----------------------------- 5 files changed, 42 insertions(+), 2314 deletions(-) diff --git a/07_hi_kvadrat/prezentacija.qmd b/07_hi_kvadrat/prezentacija.qmd index b45b383..4cf510e 100644 --- a/07_hi_kvadrat/prezentacija.qmd +++ b/07_hi_kvadrat/prezentacija.qmd @@ -1,19 +1,10 @@ --- -title: "Sređivanje podataka" +title: "Testiranje hipoteza o proporcijama" date: last-modified author: "Dr Nikola Grubor" # institute: "Institut za Medicinsku Statistiku i Informatiku" logo: "slike/logo.png" lang: sr-Latn - -format: - revealjs: - slide-number: true - show-slide-number: speaker - theme: [default, custom.scss] - -revealjs-plugins: - - revealjs-text-resizer --- ```{r} library(glue) @@ -21,466 +12,39 @@ library(here) library(tidyverse) library(tinytable) library(gtsummary) -library(gganimate) -``` - -## {.center} - -::: r-fit-text -Grupisanje je proces [organizovanja]{.yellow} podataka. -::: - -# Apsolutni i relativni brojevi - -## Formalna definicija {.center} - -::: r-fit-text - -$f_{abs} = \frac{\#n}{\text{interval}}$ - -$f_{rel} = \frac{f_{abs}}{\text{Ukupan broj podataka}} \%$ - -::: - -## Apsolutni jeleni i relativne ajkule - -- Relativni brojevi mogu prenaglasiti rizik (bitnost) neke pojave -- Dobri za plašenje drugih, publikacije -- Loši za javno zdravlje, naučni progres -- Ali potrebni za kauzalno tumačenje - -::: {layout-ncol=2} - -![Apsolutni jelen](slike/deer2.png){width=255} - -![Relativna ajkula](slike/shark.png){width=400} -::: - -::: {.notes} -Retke bolesti mogu da imaju rizike od 300% (RR 3.00), ali ako niko u populaciji ne dobije tu bolest onda to nije od javnozdravstvenog znacaja. -::: - -## Opasnost zaviti od izloženosti {.center} - -![](slike/deadlychart.jpeg){fig-align="center"} - -## Komunikacija rizika {.smaller} - -:::: columns - -::: {.column} -Mnogi ljudi [mešaju]{.yellow} relativni i apsolutni [rizik]{.yellow} - -Primer: - -- 1/10,000 žena ima trombozu -- 3/10,000 žena koje uzimaju kontraceptivne pilule ima trombozu - -$RR = \frac{3/10,000}{1/10,000} = 3.00$ - -- $\uparrow$ 200% u trombozama! -- Promena verovatnoće je samo 0.0002 (2 žene u 10,000) -- Trudnoća povećava verovatnoću tromboze mnogo više (DVT) -::: - -::: {.column} -![](slike/pills.png) -::: - -:::: - -::: {.notes} -Tromboza je retka u opstoj populaciji, ALI su mnogo češći na pilulu. Ima kauzalnih razloga za to. Cost/benefit je težak. Zbog članka mnogo žena prestalo pije KP i dobilo tromboze zbog trudnoće! -::: - -## Tabelarno prikazivanje aps. i rel. podataka {.center} - -```{r} -N <- 100 -freq_dat <- tibble( - Navika = sample(c("Pusač", "Nepusac"), N, replace = T) -) - -tbl_summary(freq_dat) %>% - modify_header(label = "Varijabla") %>% - as_kable_extra(booktabs = TRUE) %>% - kableExtra::kable_styling(font_size = 64) +source(file = here("theme", "ggthemes.R")) ``` -## Grafičko prikazivanje relativnih brojeva {.smaller} - -![Redukcija LDL-a u odnosu na vrstu statina.](slike/statins.gif){fig-align="center"} - -## Statini {.smaller} - -Efikasnost (50-65 god): - -- Mortalitet ($RR = 0.86; ARD = -0.40\%; NNT = 250$) -- CVD ($RR = 0.69; ARD, -0.43\%; NNT = 233$) -- CVI ($RR = 0.71; ARD, -0.38\%; NNT = 236$) -- MI ($RR = 0.64; ARD, -0.81\%; NNT = 123$) - -![](slike/statin_jama.png) +## -::: {.notes} -Sta moze da bude problem sa NNT? Sta ako terapije nekog osteti? Ovo su proseci, varijabilitet je isto bitan. -::: - -## Grafički prikaz redukcije relativnog rizika - -```{r} -#| eval: false -(tribble( - ~Ime, ~Rizik, ~time, - "Marko", 5, 1, - "Marko", 5 - (5 * 0), 2, - "Radoljub", 20, 1, - "Radoljub", 20 - (20 * 0), 2 -) %>% - ggplot(aes(x = Ime, y = Rizik, group = time)) + - geom_col(fill = "tomato", position = "dodge", color = "white") + - theme_minimal() + - ylim(0, 30)) %>% - ggsave(filename = here("02_sredjivanje/slike", "risk1.png", bg = "white")) - - -(tribble( - ~Ime, ~Rizik, ~time, - "Marko", 5, 1, - "Marko", 5 - (5 * 0.2), 2, - "Radoljub", 20, 1, - "Radoljub", 20 - (20 * 0.2), 2 -) %>% - ggplot(aes(x = Ime, y = Rizik, group = time)) + - geom_col(fill = "tomato", position = "dodge", color = "white") + - theme_minimal() + - ylim(0, 30)) %>% - ggsave(filename = here("02_sredjivanje", "slike", "risk2.png", bg = "white")) - - -(tribble( - ~Ime, ~Rizik, ~time, - "Marko", 5, 1, - "Marko", 5 - (5 * 0.2), 2, - "Radoljub", 20, 1, - "Radoljub", 20 - (20 * 0.2), 2 -) %>% - ggplot(aes(x = Ime, y = Rizik, group = time)) + - geom_col(fill = "tomato", position = "dodge", color = "white") + - geom_hline(yintercept = 20 - (20 * 0.2), linetype = 2) + - geom_hline(yintercept = 20, linetype = 2) + - annotate(geom="text", x=1.25, y=18, label="RR = 0.8", - color="red", size = 5) + - theme_minimal() + - ylim(0, 30)) %>% - ggsave(filename = here("02_sredjivanje", "slike", "risk3.png", bg = "white")) -``` - -```{r} -tribble( - ~Ime, ~Rizik, ~time, - "Marko", 5, 1, - "Marko", 5 - (5 * 0.2), 2, - "Radoljub", 20, 1, - "Radoljub", 20 - (20 * 0.2), 2 -) %>% - ggplot(aes(x = Ime, y = Rizik, group = time)) + - geom_col(fill = "tomato", position = "dodge", color = "white") + - geom_hline(yintercept = 20 - (20 * 0.2), linetype = 2) + - geom_hline(yintercept = 20, linetype = 2) + - annotate(geom="text", x=1.25, y=18, label="RR = 0.8", - color="red", size = 5) + - theme_minimal() + - ylim(0, 30) -``` - - -## Greška osnovne stope - -::: {.r-stack} - -![](slike/base1.png) - -![](slike/base2.png){.fragment} - -::: - -## Apsolutni antibiotik, relativni statin - -- Apsolutni rizik je informativniji -- Relativni rizik je bitan kada umemo da procenimo osnovni rizik -- Vakcinacija (100% velike boginje) -- Antibiotici (primer...) - -::: {.notes} -Da li procedure/intervencije mogu da se mere ovako, smanjenjem rizika? Sta je zapravo rizik? -::: - -# Dobri i loši grafikoni - -## Primer: Grafikon PISA testiranja (1) - -![](slike/pisa_raw.png){fig-align="center"} - -## Primer: Grafikon PISA testiranja (2) {.smaller} - -```{r} -tribble( - ~Year, ~Score, ~Subject, -2003,502.335, "math", -2006,501.269, "math", -2009,502.0305, "math", -2012,498.9848, "math", -2015,495.4822, "math", -2018,496.3959, "math", -2021,480.1015, "math", -2000,499.5939, "reading", -2002,497.4619, "reading", -2006,495.6345, "reading", -2008.6667,499.7462, "reading", -2011,501.4213, "reading", -2015,497.4619, "reading", -2017,493.0457, "reading", -2021,482.0812, "reading", -2005,502.9442, "science", -2008,506.1421, "science", -2011,504.9239, "science", -2014,497.3096, "science", -2017,493.5025, "science", -2021,491.3706, "science" -) %>% - mutate(Score = round(Score)) %>% - ggplot(aes(x = Year, y = Score)) + - geom_point() + - geom_line() + - theme_bw() + - facet_wrap(~Subject) + - ylim(0,520) -``` -$Y$ osa produžena do nule. - -## Good chart examples - - - -## Prikazivanje nominalnih podataka -*Grupišu se po [kategorijama]{.yellow}* - -```{r} -tibble( - -) -``` - - -## Bar chart - -## Bad Bar chart - -## Pie chart - -## Prikazivanje ordinalnih podataka -*Grupišu se po [kategorijama]{.yellow}* - -## Prikazivanje diskontinuiranih podataka -*Grupišu se po [kategorijama]{.yellow}* - -## Frequency table - -## Frequency bar chart - -## Bad Frequency bar chart - -## Motivacija za histogram +## Hi-kvardrat simulacija ```{r} +# Set seed for reproducibility set.seed(123) -N <- 20 -tibble( - id = rep(1, N), - TA = rnorm(N, mean = 120, sd = 10) -) %>% - ggplot(aes(x = TA, y = id)) + - geom_point(shape = 21, size = 10, fill = "#F4BA02", color = "black", stroke = 1) + - geom_vline(xintercept = 124) + - theme_minimal() + - theme(axis.text.y=element_blank()) + - labs(y = "Pacijent", - x = "Krvni prisitak [mmHg]") -``` -## Široki intervali nisu korisni -```{r} -set.seed(123) -N <- 20 -tibble( - id = 1:N, - TA = rnorm(N, mean = 120, sd = 10) -) %>% - ggplot(aes(x = TA)) + - geom_histogram(bins = 2, fill = "#F4BA02", color = "white", size = 2) + - theme_minimal() + - labs(y = "Broj", - x = "Krvni prisitak [mmHg]") -``` -## Uski intervali nisu korisni +# Define the expected proportions (say a 2x3 table) +expected_counts <- matrix(c(30, 50, 20, 40, 30, 60), nrow = 2) -```{r} -set.seed(123) -N <- 20 -tibble( - id = 1:N, - TA = rnorm(N, mean = 120, sd = 10) -) %>% - ggplot(aes(x = TA)) + - geom_histogram(bins = 20, fill = "#F4BA02", color = "white", size = 2) + - theme_minimal() + - labs(y = "Broj", - x = "Krvni prisitak [mmHg]") -``` +# Simulate actual data based on expected counts using rmultinom() +# Suppose you want to simulate a sample size of 500 +simulated_data <- rmultinom(n = 1, size = 500, prob = as.vector(expected_counts/sum(expected_counts))) -## Optimalan broj intervala je proizvoljna stavka +# Convert to a matrix to resemble the original structure +simulated_data_matrix <- matrix(simulated_data, nrow = 2) -```{r} -set.seed(123) -N <- 20 -tibble( - id = 1:N, - TA = rnorm(N, mean = 120, sd = 10) -) %>% - ggplot(aes(x = TA)) + - geom_histogram(bins = 7, fill = "#F4BA02", color = "white", size = 2) + - theme_minimal() + - labs(y = "Broj", - x = "Krvni prisitak [mmHg]") -``` -## Informacije možemo predstaviti distribucijom - -:::: {.r-stack} +# Perform chi-square test +chisq_test <- chisq.test(simulated_data_matrix) - -```{r} -set.seed(123) -N <- 1000 -tibble( - id = 1:N, - TA = rnorm(N, mean = 120, sd = 10) -) %>% - ggplot(aes(x = TA)) + - geom_histogram(aes(y = after_stat(density)), bins = 30, fill = "#F4BA02", color = "white", size = 1) + - # stat_function(fun = dnorm, args = list(mean = 120, sd = 10), - # xlim = c(110,130), - # geom = "area", alpha = 3/4, fill = "dodgerblue") + - # stat_function(fun = dnorm, args = list(mean = 120, sd = 10), - # xlim = c(140, 150), - # geom = "area", alpha = 3/4, fill = "tomato") + - # stat_function(fun = dnorm, args = list(mean = 120, sd = 10), color = "black", size = 1.5) + - # - # annotate("text", label = "Više verovatno", x = 135, y = 0.04, size = 7, color = "dodgerblue") + - # annotate("text", label = "Manje\nverovatno", x = 145, y = 0.015, size = 7, color = "tomato") + - theme_void() + - labs(y = "Pacijent", - x = "Krvni prisitak [mmHg]") - - -``` - -::: {.fragment} - -```{r} -set.seed(123) -N <- 1000 -tibble( - id = 1:N, - TA = rnorm(N, mean = 120, sd = 10) -) %>% - ggplot(aes(x = TA)) + - geom_histogram(aes(y = after_stat(density)), bins = 30, fill = "#F4BA02", color = "white", size = 1) + - # stat_function(fun = dnorm, args = list(mean = 120, sd = 10), - # xlim = c(110,130), - # geom = "area", alpha = 3/4, fill = "dodgerblue") + - # stat_function(fun = dnorm, args = list(mean = 120, sd = 10), - # xlim = c(140, 150), - # geom = "area", alpha = 3/4, fill = "tomato") + - stat_function(fun = dnorm, args = list(mean = 120, sd = 10), color = "black", size = 1.5) + - - # annotate("text", label = "Više verovatno", x = 135, y = 0.04, size = 7, color = "dodgerblue") + - # annotate("text", label = "Manje\nverovatno", x = 145, y = 0.015, size = 7, color = "tomato") + - theme_void() + - labs(y = "Pacijent", - x = "Krvni prisitak [mmHg]") - - -``` - -::: - - -::: {.fragment} - -```{r} -set.seed(123) -N <- 1000 -tibble( - id = 1:N, - TA = rnorm(N, mean = 120, sd = 10) -) %>% - ggplot(aes(x = TA)) + - geom_histogram(aes(y = after_stat(density)), bins = 30, fill = "#F4BA02", color = "white", size = 1) + - stat_function(fun = dnorm, args = list(mean = 120, sd = 10), - xlim = c(110,130), - geom = "area", alpha = 3/4, fill = "dodgerblue") + - stat_function(fun = dnorm, args = list(mean = 120, sd = 10), - xlim = c(140, 150), - geom = "area", alpha = 3/4, fill = "tomato") + - stat_function(fun = dnorm, args = list(mean = 120, sd = 10), color = "black", size = 1.5) + - - annotate("text", label = "Više verovatno", x = 135, y = 0.04, size = 7, color = "dodgerblue") + - annotate("text", label = "Manje\nverovatno", x = 145, y = 0.015, size = 7, color = "tomato") + - theme_void() + - labs(y = "Pacijent", - x = "Krvni prisitak [mmHg]") - +# Output the results +print(simulated_data_matrix) +print(chisq_test) ``` -::: - -:::: - -## Prikazivanje kontinuiranih podataka -*Grupišu se po [kategorijama]{.yellow}* - -- Odrediti apsolutne i relativne učestalosti za **starost** -- Grafički prikaz - - histogram - - poligon frekvencija - -## Histogram - -## Bad Histogram - -## Frequency polygon - -## More examples - -## Zadatak - -- Napraviti tablele -- Zadaci na bazi sa kursa ## Struktura kursa - - -```{css} -#| echo: false - -.reveal table { -font-size: 55%; -} -``` - ```{r} teme <- c( "Uvod u medicinsku statistiku", "Sređivanje podataka", @@ -492,5 +56,5 @@ teme <- c( ) kurs <- tibble(Nedelja = 1:15, Tema = teme) -tt(kurs) +tt(kurs) |> style_tt(j = 1:2, fontsize = 0.55) ``` diff --git a/08_rangovi/prezentacija.qmd b/08_rangovi/prezentacija.qmd index b45b383..7b0eed3 100644 --- a/08_rangovi/prezentacija.qmd +++ b/08_rangovi/prezentacija.qmd @@ -1,19 +1,11 @@ --- -title: "Sređivanje podataka" +title: "Testiranje hipoteza o populacionim prosečnim vrednosima i proporcijama" +subtitle: "... i malo o naučnom metodu." date: last-modified author: "Dr Nikola Grubor" # institute: "Institut za Medicinsku Statistiku i Informatiku" logo: "slike/logo.png" lang: sr-Latn - -format: - revealjs: - slide-number: true - show-slide-number: speaker - theme: [default, custom.scss] - -revealjs-plugins: - - revealjs-text-resizer --- ```{r} library(glue) @@ -21,466 +13,15 @@ library(here) library(tidyverse) library(tinytable) library(gtsummary) -library(gganimate) -``` - -## {.center} - -::: r-fit-text -Grupisanje je proces [organizovanja]{.yellow} podataka. -::: - -# Apsolutni i relativni brojevi - -## Formalna definicija {.center} - -::: r-fit-text - -$f_{abs} = \frac{\#n}{\text{interval}}$ - -$f_{rel} = \frac{f_{abs}}{\text{Ukupan broj podataka}} \%$ - -::: - -## Apsolutni jeleni i relativne ajkule - -- Relativni brojevi mogu prenaglasiti rizik (bitnost) neke pojave -- Dobri za plašenje drugih, publikacije -- Loši za javno zdravlje, naučni progres -- Ali potrebni za kauzalno tumačenje - -::: {layout-ncol=2} - -![Apsolutni jelen](slike/deer2.png){width=255} - -![Relativna ajkula](slike/shark.png){width=400} -::: - -::: {.notes} -Retke bolesti mogu da imaju rizike od 300% (RR 3.00), ali ako niko u populaciji ne dobije tu bolest onda to nije od javnozdravstvenog znacaja. -::: - -## Opasnost zaviti od izloženosti {.center} - -![](slike/deadlychart.jpeg){fig-align="center"} - -## Komunikacija rizika {.smaller} - -:::: columns - -::: {.column} -Mnogi ljudi [mešaju]{.yellow} relativni i apsolutni [rizik]{.yellow} - -Primer: - -- 1/10,000 žena ima trombozu -- 3/10,000 žena koje uzimaju kontraceptivne pilule ima trombozu - -$RR = \frac{3/10,000}{1/10,000} = 3.00$ - -- $\uparrow$ 200% u trombozama! -- Promena verovatnoće je samo 0.0002 (2 žene u 10,000) -- Trudnoća povećava verovatnoću tromboze mnogo više (DVT) -::: - -::: {.column} -![](slike/pills.png) -::: - -:::: - -::: {.notes} -Tromboza je retka u opstoj populaciji, ALI su mnogo češći na pilulu. Ima kauzalnih razloga za to. Cost/benefit je težak. Zbog članka mnogo žena prestalo pije KP i dobilo tromboze zbog trudnoće! -::: - -## Tabelarno prikazivanje aps. i rel. podataka {.center} - -```{r} -N <- 100 -freq_dat <- tibble( - Navika = sample(c("Pusač", "Nepusac"), N, replace = T) -) - -tbl_summary(freq_dat) %>% - modify_header(label = "Varijabla") %>% - as_kable_extra(booktabs = TRUE) %>% - kableExtra::kable_styling(font_size = 64) -``` - -## Grafičko prikazivanje relativnih brojeva {.smaller} - -![Redukcija LDL-a u odnosu na vrstu statina.](slike/statins.gif){fig-align="center"} - -## Statini {.smaller} - -Efikasnost (50-65 god): - -- Mortalitet ($RR = 0.86; ARD = -0.40\%; NNT = 250$) -- CVD ($RR = 0.69; ARD, -0.43\%; NNT = 233$) -- CVI ($RR = 0.71; ARD, -0.38\%; NNT = 236$) -- MI ($RR = 0.64; ARD, -0.81\%; NNT = 123$) - -![](slike/statin_jama.png) - -::: {.notes} -Sta moze da bude problem sa NNT? Sta ako terapije nekog osteti? Ovo su proseci, varijabilitet je isto bitan. -::: - -## Grafički prikaz redukcije relativnog rizika - -```{r} -#| eval: false -(tribble( - ~Ime, ~Rizik, ~time, - "Marko", 5, 1, - "Marko", 5 - (5 * 0), 2, - "Radoljub", 20, 1, - "Radoljub", 20 - (20 * 0), 2 -) %>% - ggplot(aes(x = Ime, y = Rizik, group = time)) + - geom_col(fill = "tomato", position = "dodge", color = "white") + - theme_minimal() + - ylim(0, 30)) %>% - ggsave(filename = here("02_sredjivanje/slike", "risk1.png", bg = "white")) - - -(tribble( - ~Ime, ~Rizik, ~time, - "Marko", 5, 1, - "Marko", 5 - (5 * 0.2), 2, - "Radoljub", 20, 1, - "Radoljub", 20 - (20 * 0.2), 2 -) %>% - ggplot(aes(x = Ime, y = Rizik, group = time)) + - geom_col(fill = "tomato", position = "dodge", color = "white") + - theme_minimal() + - ylim(0, 30)) %>% - ggsave(filename = here("02_sredjivanje", "slike", "risk2.png", bg = "white")) - - -(tribble( - ~Ime, ~Rizik, ~time, - "Marko", 5, 1, - "Marko", 5 - (5 * 0.2), 2, - "Radoljub", 20, 1, - "Radoljub", 20 - (20 * 0.2), 2 -) %>% - ggplot(aes(x = Ime, y = Rizik, group = time)) + - geom_col(fill = "tomato", position = "dodge", color = "white") + - geom_hline(yintercept = 20 - (20 * 0.2), linetype = 2) + - geom_hline(yintercept = 20, linetype = 2) + - annotate(geom="text", x=1.25, y=18, label="RR = 0.8", - color="red", size = 5) + - theme_minimal() + - ylim(0, 30)) %>% - ggsave(filename = here("02_sredjivanje", "slike", "risk3.png", bg = "white")) -``` - -```{r} -tribble( - ~Ime, ~Rizik, ~time, - "Marko", 5, 1, - "Marko", 5 - (5 * 0.2), 2, - "Radoljub", 20, 1, - "Radoljub", 20 - (20 * 0.2), 2 -) %>% - ggplot(aes(x = Ime, y = Rizik, group = time)) + - geom_col(fill = "tomato", position = "dodge", color = "white") + - geom_hline(yintercept = 20 - (20 * 0.2), linetype = 2) + - geom_hline(yintercept = 20, linetype = 2) + - annotate(geom="text", x=1.25, y=18, label="RR = 0.8", - color="red", size = 5) + - theme_minimal() + - ylim(0, 30) +source(file = here("theme", "ggthemes.R")) ``` +## -## Greška osnovne stope - -::: {.r-stack} - -![](slike/base1.png) - -![](slike/base2.png){.fragment} - -::: - -## Apsolutni antibiotik, relativni statin - -- Apsolutni rizik je informativniji -- Relativni rizik je bitan kada umemo da procenimo osnovni rizik -- Vakcinacija (100% velike boginje) -- Antibiotici (primer...) - -::: {.notes} -Da li procedure/intervencije mogu da se mere ovako, smanjenjem rizika? Sta je zapravo rizik? -::: - -# Dobri i loši grafikoni - -## Primer: Grafikon PISA testiranja (1) - -![](slike/pisa_raw.png){fig-align="center"} - -## Primer: Grafikon PISA testiranja (2) {.smaller} - -```{r} -tribble( - ~Year, ~Score, ~Subject, -2003,502.335, "math", -2006,501.269, "math", -2009,502.0305, "math", -2012,498.9848, "math", -2015,495.4822, "math", -2018,496.3959, "math", -2021,480.1015, "math", -2000,499.5939, "reading", -2002,497.4619, "reading", -2006,495.6345, "reading", -2008.6667,499.7462, "reading", -2011,501.4213, "reading", -2015,497.4619, "reading", -2017,493.0457, "reading", -2021,482.0812, "reading", -2005,502.9442, "science", -2008,506.1421, "science", -2011,504.9239, "science", -2014,497.3096, "science", -2017,493.5025, "science", -2021,491.3706, "science" -) %>% - mutate(Score = round(Score)) %>% - ggplot(aes(x = Year, y = Score)) + - geom_point() + - geom_line() + - theme_bw() + - facet_wrap(~Subject) + - ylim(0,520) -``` -$Y$ osa produžena do nule. - -## Good chart examples - - - -## Prikazivanje nominalnih podataka -*Grupišu se po [kategorijama]{.yellow}* - -```{r} -tibble( - -) -``` - - -## Bar chart - -## Bad Bar chart - -## Pie chart - -## Prikazivanje ordinalnih podataka -*Grupišu se po [kategorijama]{.yellow}* - -## Prikazivanje diskontinuiranih podataka -*Grupišu se po [kategorijama]{.yellow}* - -## Frequency table - -## Frequency bar chart - -## Bad Frequency bar chart - -## Motivacija za histogram - -```{r} -set.seed(123) -N <- 20 -tibble( - id = rep(1, N), - TA = rnorm(N, mean = 120, sd = 10) -) %>% - ggplot(aes(x = TA, y = id)) + - geom_point(shape = 21, size = 10, fill = "#F4BA02", color = "black", stroke = 1) + - geom_vline(xintercept = 124) + - theme_minimal() + - theme(axis.text.y=element_blank()) + - labs(y = "Pacijent", - x = "Krvni prisitak [mmHg]") -``` -## Široki intervali nisu korisni - -```{r} -set.seed(123) -N <- 20 -tibble( - id = 1:N, - TA = rnorm(N, mean = 120, sd = 10) -) %>% - ggplot(aes(x = TA)) + - geom_histogram(bins = 2, fill = "#F4BA02", color = "white", size = 2) + - theme_minimal() + - labs(y = "Broj", - x = "Krvni prisitak [mmHg]") -``` -## Uski intervali nisu korisni - -```{r} -set.seed(123) -N <- 20 -tibble( - id = 1:N, - TA = rnorm(N, mean = 120, sd = 10) -) %>% - ggplot(aes(x = TA)) + - geom_histogram(bins = 20, fill = "#F4BA02", color = "white", size = 2) + - theme_minimal() + - labs(y = "Broj", - x = "Krvni prisitak [mmHg]") -``` - -## Optimalan broj intervala je proizvoljna stavka - -```{r} -set.seed(123) -N <- 20 -tibble( - id = 1:N, - TA = rnorm(N, mean = 120, sd = 10) -) %>% - ggplot(aes(x = TA)) + - geom_histogram(bins = 7, fill = "#F4BA02", color = "white", size = 2) + - theme_minimal() + - labs(y = "Broj", - x = "Krvni prisitak [mmHg]") -``` -## Informacije možemo predstaviti distribucijom - -:::: {.r-stack} - - -```{r} -set.seed(123) -N <- 1000 -tibble( - id = 1:N, - TA = rnorm(N, mean = 120, sd = 10) -) %>% - ggplot(aes(x = TA)) + - geom_histogram(aes(y = after_stat(density)), bins = 30, fill = "#F4BA02", color = "white", size = 1) + - # stat_function(fun = dnorm, args = list(mean = 120, sd = 10), - # xlim = c(110,130), - # geom = "area", alpha = 3/4, fill = "dodgerblue") + - # stat_function(fun = dnorm, args = list(mean = 120, sd = 10), - # xlim = c(140, 150), - # geom = "area", alpha = 3/4, fill = "tomato") + - # stat_function(fun = dnorm, args = list(mean = 120, sd = 10), color = "black", size = 1.5) + - # - # annotate("text", label = "Više verovatno", x = 135, y = 0.04, size = 7, color = "dodgerblue") + - # annotate("text", label = "Manje\nverovatno", x = 145, y = 0.015, size = 7, color = "tomato") + - theme_void() + - labs(y = "Pacijent", - x = "Krvni prisitak [mmHg]") - - -``` - -::: {.fragment} - -```{r} -set.seed(123) -N <- 1000 -tibble( - id = 1:N, - TA = rnorm(N, mean = 120, sd = 10) -) %>% - ggplot(aes(x = TA)) + - geom_histogram(aes(y = after_stat(density)), bins = 30, fill = "#F4BA02", color = "white", size = 1) + - # stat_function(fun = dnorm, args = list(mean = 120, sd = 10), - # xlim = c(110,130), - # geom = "area", alpha = 3/4, fill = "dodgerblue") + - # stat_function(fun = dnorm, args = list(mean = 120, sd = 10), - # xlim = c(140, 150), - # geom = "area", alpha = 3/4, fill = "tomato") + - stat_function(fun = dnorm, args = list(mean = 120, sd = 10), color = "black", size = 1.5) + - - # annotate("text", label = "Više verovatno", x = 135, y = 0.04, size = 7, color = "dodgerblue") + - # annotate("text", label = "Manje\nverovatno", x = 145, y = 0.015, size = 7, color = "tomato") + - theme_void() + - labs(y = "Pacijent", - x = "Krvni prisitak [mmHg]") - - -``` - -::: - - -::: {.fragment} - -```{r} -set.seed(123) -N <- 1000 -tibble( - id = 1:N, - TA = rnorm(N, mean = 120, sd = 10) -) %>% - ggplot(aes(x = TA)) + - geom_histogram(aes(y = after_stat(density)), bins = 30, fill = "#F4BA02", color = "white", size = 1) + - stat_function(fun = dnorm, args = list(mean = 120, sd = 10), - xlim = c(110,130), - geom = "area", alpha = 3/4, fill = "dodgerblue") + - stat_function(fun = dnorm, args = list(mean = 120, sd = 10), - xlim = c(140, 150), - geom = "area", alpha = 3/4, fill = "tomato") + - stat_function(fun = dnorm, args = list(mean = 120, sd = 10), color = "black", size = 1.5) + - - annotate("text", label = "Više verovatno", x = 135, y = 0.04, size = 7, color = "dodgerblue") + - annotate("text", label = "Manje\nverovatno", x = 145, y = 0.015, size = 7, color = "tomato") + - theme_void() + - labs(y = "Pacijent", - x = "Krvni prisitak [mmHg]") - - -``` - -::: - -:::: - -## Prikazivanje kontinuiranih podataka -*Grupišu se po [kategorijama]{.yellow}* - -- Odrediti apsolutne i relativne učestalosti za **starost** -- Grafički prikaz - - histogram - - poligon frekvencija - -## Histogram - -## Bad Histogram - -## Frequency polygon - -## More examples - -## Zadatak - -- Napraviti tablele -- Zadaci na bazi sa kursa +## Načinite svoje teorije složenim ## Struktura kursa - - -```{css} -#| echo: false - -.reveal table { -font-size: 55%; -} -``` - ```{r} teme <- c( "Uvod u medicinsku statistiku", "Sređivanje podataka", @@ -492,5 +33,5 @@ teme <- c( ) kurs <- tibble(Nedelja = 1:15, Tema = teme) -tt(kurs) +tt(kurs) |> style_tt(j = 1:2, fontsize = 0.55) ``` diff --git a/09_korelacija/prezentacija.qmd b/09_korelacija/prezentacija.qmd index b45b383..7b0eed3 100644 --- a/09_korelacija/prezentacija.qmd +++ b/09_korelacija/prezentacija.qmd @@ -1,19 +1,11 @@ --- -title: "Sređivanje podataka" +title: "Testiranje hipoteza o populacionim prosečnim vrednosima i proporcijama" +subtitle: "... i malo o naučnom metodu." date: last-modified author: "Dr Nikola Grubor" # institute: "Institut za Medicinsku Statistiku i Informatiku" logo: "slike/logo.png" lang: sr-Latn - -format: - revealjs: - slide-number: true - show-slide-number: speaker - theme: [default, custom.scss] - -revealjs-plugins: - - revealjs-text-resizer --- ```{r} library(glue) @@ -21,466 +13,15 @@ library(here) library(tidyverse) library(tinytable) library(gtsummary) -library(gganimate) -``` - -## {.center} - -::: r-fit-text -Grupisanje je proces [organizovanja]{.yellow} podataka. -::: - -# Apsolutni i relativni brojevi - -## Formalna definicija {.center} - -::: r-fit-text - -$f_{abs} = \frac{\#n}{\text{interval}}$ - -$f_{rel} = \frac{f_{abs}}{\text{Ukupan broj podataka}} \%$ - -::: - -## Apsolutni jeleni i relativne ajkule - -- Relativni brojevi mogu prenaglasiti rizik (bitnost) neke pojave -- Dobri za plašenje drugih, publikacije -- Loši za javno zdravlje, naučni progres -- Ali potrebni za kauzalno tumačenje - -::: {layout-ncol=2} - -![Apsolutni jelen](slike/deer2.png){width=255} - -![Relativna ajkula](slike/shark.png){width=400} -::: - -::: {.notes} -Retke bolesti mogu da imaju rizike od 300% (RR 3.00), ali ako niko u populaciji ne dobije tu bolest onda to nije od javnozdravstvenog znacaja. -::: - -## Opasnost zaviti od izloženosti {.center} - -![](slike/deadlychart.jpeg){fig-align="center"} - -## Komunikacija rizika {.smaller} - -:::: columns - -::: {.column} -Mnogi ljudi [mešaju]{.yellow} relativni i apsolutni [rizik]{.yellow} - -Primer: - -- 1/10,000 žena ima trombozu -- 3/10,000 žena koje uzimaju kontraceptivne pilule ima trombozu - -$RR = \frac{3/10,000}{1/10,000} = 3.00$ - -- $\uparrow$ 200% u trombozama! -- Promena verovatnoće je samo 0.0002 (2 žene u 10,000) -- Trudnoća povećava verovatnoću tromboze mnogo više (DVT) -::: - -::: {.column} -![](slike/pills.png) -::: - -:::: - -::: {.notes} -Tromboza je retka u opstoj populaciji, ALI su mnogo češći na pilulu. Ima kauzalnih razloga za to. Cost/benefit je težak. Zbog članka mnogo žena prestalo pije KP i dobilo tromboze zbog trudnoće! -::: - -## Tabelarno prikazivanje aps. i rel. podataka {.center} - -```{r} -N <- 100 -freq_dat <- tibble( - Navika = sample(c("Pusač", "Nepusac"), N, replace = T) -) - -tbl_summary(freq_dat) %>% - modify_header(label = "Varijabla") %>% - as_kable_extra(booktabs = TRUE) %>% - kableExtra::kable_styling(font_size = 64) -``` - -## Grafičko prikazivanje relativnih brojeva {.smaller} - -![Redukcija LDL-a u odnosu na vrstu statina.](slike/statins.gif){fig-align="center"} - -## Statini {.smaller} - -Efikasnost (50-65 god): - -- Mortalitet ($RR = 0.86; ARD = -0.40\%; NNT = 250$) -- CVD ($RR = 0.69; ARD, -0.43\%; NNT = 233$) -- CVI ($RR = 0.71; ARD, -0.38\%; NNT = 236$) -- MI ($RR = 0.64; ARD, -0.81\%; NNT = 123$) - -![](slike/statin_jama.png) - -::: {.notes} -Sta moze da bude problem sa NNT? Sta ako terapije nekog osteti? Ovo su proseci, varijabilitet je isto bitan. -::: - -## Grafički prikaz redukcije relativnog rizika - -```{r} -#| eval: false -(tribble( - ~Ime, ~Rizik, ~time, - "Marko", 5, 1, - "Marko", 5 - (5 * 0), 2, - "Radoljub", 20, 1, - "Radoljub", 20 - (20 * 0), 2 -) %>% - ggplot(aes(x = Ime, y = Rizik, group = time)) + - geom_col(fill = "tomato", position = "dodge", color = "white") + - theme_minimal() + - ylim(0, 30)) %>% - ggsave(filename = here("02_sredjivanje/slike", "risk1.png", bg = "white")) - - -(tribble( - ~Ime, ~Rizik, ~time, - "Marko", 5, 1, - "Marko", 5 - (5 * 0.2), 2, - "Radoljub", 20, 1, - "Radoljub", 20 - (20 * 0.2), 2 -) %>% - ggplot(aes(x = Ime, y = Rizik, group = time)) + - geom_col(fill = "tomato", position = "dodge", color = "white") + - theme_minimal() + - ylim(0, 30)) %>% - ggsave(filename = here("02_sredjivanje", "slike", "risk2.png", bg = "white")) - - -(tribble( - ~Ime, ~Rizik, ~time, - "Marko", 5, 1, - "Marko", 5 - (5 * 0.2), 2, - "Radoljub", 20, 1, - "Radoljub", 20 - (20 * 0.2), 2 -) %>% - ggplot(aes(x = Ime, y = Rizik, group = time)) + - geom_col(fill = "tomato", position = "dodge", color = "white") + - geom_hline(yintercept = 20 - (20 * 0.2), linetype = 2) + - geom_hline(yintercept = 20, linetype = 2) + - annotate(geom="text", x=1.25, y=18, label="RR = 0.8", - color="red", size = 5) + - theme_minimal() + - ylim(0, 30)) %>% - ggsave(filename = here("02_sredjivanje", "slike", "risk3.png", bg = "white")) -``` - -```{r} -tribble( - ~Ime, ~Rizik, ~time, - "Marko", 5, 1, - "Marko", 5 - (5 * 0.2), 2, - "Radoljub", 20, 1, - "Radoljub", 20 - (20 * 0.2), 2 -) %>% - ggplot(aes(x = Ime, y = Rizik, group = time)) + - geom_col(fill = "tomato", position = "dodge", color = "white") + - geom_hline(yintercept = 20 - (20 * 0.2), linetype = 2) + - geom_hline(yintercept = 20, linetype = 2) + - annotate(geom="text", x=1.25, y=18, label="RR = 0.8", - color="red", size = 5) + - theme_minimal() + - ylim(0, 30) +source(file = here("theme", "ggthemes.R")) ``` +## -## Greška osnovne stope - -::: {.r-stack} - -![](slike/base1.png) - -![](slike/base2.png){.fragment} - -::: - -## Apsolutni antibiotik, relativni statin - -- Apsolutni rizik je informativniji -- Relativni rizik je bitan kada umemo da procenimo osnovni rizik -- Vakcinacija (100% velike boginje) -- Antibiotici (primer...) - -::: {.notes} -Da li procedure/intervencije mogu da se mere ovako, smanjenjem rizika? Sta je zapravo rizik? -::: - -# Dobri i loši grafikoni - -## Primer: Grafikon PISA testiranja (1) - -![](slike/pisa_raw.png){fig-align="center"} - -## Primer: Grafikon PISA testiranja (2) {.smaller} - -```{r} -tribble( - ~Year, ~Score, ~Subject, -2003,502.335, "math", -2006,501.269, "math", -2009,502.0305, "math", -2012,498.9848, "math", -2015,495.4822, "math", -2018,496.3959, "math", -2021,480.1015, "math", -2000,499.5939, "reading", -2002,497.4619, "reading", -2006,495.6345, "reading", -2008.6667,499.7462, "reading", -2011,501.4213, "reading", -2015,497.4619, "reading", -2017,493.0457, "reading", -2021,482.0812, "reading", -2005,502.9442, "science", -2008,506.1421, "science", -2011,504.9239, "science", -2014,497.3096, "science", -2017,493.5025, "science", -2021,491.3706, "science" -) %>% - mutate(Score = round(Score)) %>% - ggplot(aes(x = Year, y = Score)) + - geom_point() + - geom_line() + - theme_bw() + - facet_wrap(~Subject) + - ylim(0,520) -``` -$Y$ osa produžena do nule. - -## Good chart examples - - - -## Prikazivanje nominalnih podataka -*Grupišu se po [kategorijama]{.yellow}* - -```{r} -tibble( - -) -``` - - -## Bar chart - -## Bad Bar chart - -## Pie chart - -## Prikazivanje ordinalnih podataka -*Grupišu se po [kategorijama]{.yellow}* - -## Prikazivanje diskontinuiranih podataka -*Grupišu se po [kategorijama]{.yellow}* - -## Frequency table - -## Frequency bar chart - -## Bad Frequency bar chart - -## Motivacija za histogram - -```{r} -set.seed(123) -N <- 20 -tibble( - id = rep(1, N), - TA = rnorm(N, mean = 120, sd = 10) -) %>% - ggplot(aes(x = TA, y = id)) + - geom_point(shape = 21, size = 10, fill = "#F4BA02", color = "black", stroke = 1) + - geom_vline(xintercept = 124) + - theme_minimal() + - theme(axis.text.y=element_blank()) + - labs(y = "Pacijent", - x = "Krvni prisitak [mmHg]") -``` -## Široki intervali nisu korisni - -```{r} -set.seed(123) -N <- 20 -tibble( - id = 1:N, - TA = rnorm(N, mean = 120, sd = 10) -) %>% - ggplot(aes(x = TA)) + - geom_histogram(bins = 2, fill = "#F4BA02", color = "white", size = 2) + - theme_minimal() + - labs(y = "Broj", - x = "Krvni prisitak [mmHg]") -``` -## Uski intervali nisu korisni - -```{r} -set.seed(123) -N <- 20 -tibble( - id = 1:N, - TA = rnorm(N, mean = 120, sd = 10) -) %>% - ggplot(aes(x = TA)) + - geom_histogram(bins = 20, fill = "#F4BA02", color = "white", size = 2) + - theme_minimal() + - labs(y = "Broj", - x = "Krvni prisitak [mmHg]") -``` - -## Optimalan broj intervala je proizvoljna stavka - -```{r} -set.seed(123) -N <- 20 -tibble( - id = 1:N, - TA = rnorm(N, mean = 120, sd = 10) -) %>% - ggplot(aes(x = TA)) + - geom_histogram(bins = 7, fill = "#F4BA02", color = "white", size = 2) + - theme_minimal() + - labs(y = "Broj", - x = "Krvni prisitak [mmHg]") -``` -## Informacije možemo predstaviti distribucijom - -:::: {.r-stack} - - -```{r} -set.seed(123) -N <- 1000 -tibble( - id = 1:N, - TA = rnorm(N, mean = 120, sd = 10) -) %>% - ggplot(aes(x = TA)) + - geom_histogram(aes(y = after_stat(density)), bins = 30, fill = "#F4BA02", color = "white", size = 1) + - # stat_function(fun = dnorm, args = list(mean = 120, sd = 10), - # xlim = c(110,130), - # geom = "area", alpha = 3/4, fill = "dodgerblue") + - # stat_function(fun = dnorm, args = list(mean = 120, sd = 10), - # xlim = c(140, 150), - # geom = "area", alpha = 3/4, fill = "tomato") + - # stat_function(fun = dnorm, args = list(mean = 120, sd = 10), color = "black", size = 1.5) + - # - # annotate("text", label = "Više verovatno", x = 135, y = 0.04, size = 7, color = "dodgerblue") + - # annotate("text", label = "Manje\nverovatno", x = 145, y = 0.015, size = 7, color = "tomato") + - theme_void() + - labs(y = "Pacijent", - x = "Krvni prisitak [mmHg]") - - -``` - -::: {.fragment} - -```{r} -set.seed(123) -N <- 1000 -tibble( - id = 1:N, - TA = rnorm(N, mean = 120, sd = 10) -) %>% - ggplot(aes(x = TA)) + - geom_histogram(aes(y = after_stat(density)), bins = 30, fill = "#F4BA02", color = "white", size = 1) + - # stat_function(fun = dnorm, args = list(mean = 120, sd = 10), - # xlim = c(110,130), - # geom = "area", alpha = 3/4, fill = "dodgerblue") + - # stat_function(fun = dnorm, args = list(mean = 120, sd = 10), - # xlim = c(140, 150), - # geom = "area", alpha = 3/4, fill = "tomato") + - stat_function(fun = dnorm, args = list(mean = 120, sd = 10), color = "black", size = 1.5) + - - # annotate("text", label = "Više verovatno", x = 135, y = 0.04, size = 7, color = "dodgerblue") + - # annotate("text", label = "Manje\nverovatno", x = 145, y = 0.015, size = 7, color = "tomato") + - theme_void() + - labs(y = "Pacijent", - x = "Krvni prisitak [mmHg]") - - -``` - -::: - - -::: {.fragment} - -```{r} -set.seed(123) -N <- 1000 -tibble( - id = 1:N, - TA = rnorm(N, mean = 120, sd = 10) -) %>% - ggplot(aes(x = TA)) + - geom_histogram(aes(y = after_stat(density)), bins = 30, fill = "#F4BA02", color = "white", size = 1) + - stat_function(fun = dnorm, args = list(mean = 120, sd = 10), - xlim = c(110,130), - geom = "area", alpha = 3/4, fill = "dodgerblue") + - stat_function(fun = dnorm, args = list(mean = 120, sd = 10), - xlim = c(140, 150), - geom = "area", alpha = 3/4, fill = "tomato") + - stat_function(fun = dnorm, args = list(mean = 120, sd = 10), color = "black", size = 1.5) + - - annotate("text", label = "Više verovatno", x = 135, y = 0.04, size = 7, color = "dodgerblue") + - annotate("text", label = "Manje\nverovatno", x = 145, y = 0.015, size = 7, color = "tomato") + - theme_void() + - labs(y = "Pacijent", - x = "Krvni prisitak [mmHg]") - - -``` - -::: - -:::: - -## Prikazivanje kontinuiranih podataka -*Grupišu se po [kategorijama]{.yellow}* - -- Odrediti apsolutne i relativne učestalosti za **starost** -- Grafički prikaz - - histogram - - poligon frekvencija - -## Histogram - -## Bad Histogram - -## Frequency polygon - -## More examples - -## Zadatak - -- Napraviti tablele -- Zadaci na bazi sa kursa +## Načinite svoje teorije složenim ## Struktura kursa - - -```{css} -#| echo: false - -.reveal table { -font-size: 55%; -} -``` - ```{r} teme <- c( "Uvod u medicinsku statistiku", "Sređivanje podataka", @@ -492,5 +33,5 @@ teme <- c( ) kurs <- tibble(Nedelja = 1:15, Tema = teme) -tt(kurs) +tt(kurs) |> style_tt(j = 1:2, fontsize = 0.55) ``` diff --git a/10_regresija/prezentacija.qmd b/10_regresija/prezentacija.qmd index b45b383..7b0eed3 100644 --- a/10_regresija/prezentacija.qmd +++ b/10_regresija/prezentacija.qmd @@ -1,19 +1,11 @@ --- -title: "Sređivanje podataka" +title: "Testiranje hipoteza o populacionim prosečnim vrednosima i proporcijama" +subtitle: "... i malo o naučnom metodu." date: last-modified author: "Dr Nikola Grubor" # institute: "Institut za Medicinsku Statistiku i Informatiku" logo: "slike/logo.png" lang: sr-Latn - -format: - revealjs: - slide-number: true - show-slide-number: speaker - theme: [default, custom.scss] - -revealjs-plugins: - - revealjs-text-resizer --- ```{r} library(glue) @@ -21,466 +13,15 @@ library(here) library(tidyverse) library(tinytable) library(gtsummary) -library(gganimate) -``` - -## {.center} - -::: r-fit-text -Grupisanje je proces [organizovanja]{.yellow} podataka. -::: - -# Apsolutni i relativni brojevi - -## Formalna definicija {.center} - -::: r-fit-text - -$f_{abs} = \frac{\#n}{\text{interval}}$ - -$f_{rel} = \frac{f_{abs}}{\text{Ukupan broj podataka}} \%$ - -::: - -## Apsolutni jeleni i relativne ajkule - -- Relativni brojevi mogu prenaglasiti rizik (bitnost) neke pojave -- Dobri za plašenje drugih, publikacije -- Loši za javno zdravlje, naučni progres -- Ali potrebni za kauzalno tumačenje - -::: {layout-ncol=2} - -![Apsolutni jelen](slike/deer2.png){width=255} - -![Relativna ajkula](slike/shark.png){width=400} -::: - -::: {.notes} -Retke bolesti mogu da imaju rizike od 300% (RR 3.00), ali ako niko u populaciji ne dobije tu bolest onda to nije od javnozdravstvenog znacaja. -::: - -## Opasnost zaviti od izloženosti {.center} - -![](slike/deadlychart.jpeg){fig-align="center"} - -## Komunikacija rizika {.smaller} - -:::: columns - -::: {.column} -Mnogi ljudi [mešaju]{.yellow} relativni i apsolutni [rizik]{.yellow} - -Primer: - -- 1/10,000 žena ima trombozu -- 3/10,000 žena koje uzimaju kontraceptivne pilule ima trombozu - -$RR = \frac{3/10,000}{1/10,000} = 3.00$ - -- $\uparrow$ 200% u trombozama! -- Promena verovatnoće je samo 0.0002 (2 žene u 10,000) -- Trudnoća povećava verovatnoću tromboze mnogo više (DVT) -::: - -::: {.column} -![](slike/pills.png) -::: - -:::: - -::: {.notes} -Tromboza je retka u opstoj populaciji, ALI su mnogo češći na pilulu. Ima kauzalnih razloga za to. Cost/benefit je težak. Zbog članka mnogo žena prestalo pije KP i dobilo tromboze zbog trudnoće! -::: - -## Tabelarno prikazivanje aps. i rel. podataka {.center} - -```{r} -N <- 100 -freq_dat <- tibble( - Navika = sample(c("Pusač", "Nepusac"), N, replace = T) -) - -tbl_summary(freq_dat) %>% - modify_header(label = "Varijabla") %>% - as_kable_extra(booktabs = TRUE) %>% - kableExtra::kable_styling(font_size = 64) -``` - -## Grafičko prikazivanje relativnih brojeva {.smaller} - -![Redukcija LDL-a u odnosu na vrstu statina.](slike/statins.gif){fig-align="center"} - -## Statini {.smaller} - -Efikasnost (50-65 god): - -- Mortalitet ($RR = 0.86; ARD = -0.40\%; NNT = 250$) -- CVD ($RR = 0.69; ARD, -0.43\%; NNT = 233$) -- CVI ($RR = 0.71; ARD, -0.38\%; NNT = 236$) -- MI ($RR = 0.64; ARD, -0.81\%; NNT = 123$) - -![](slike/statin_jama.png) - -::: {.notes} -Sta moze da bude problem sa NNT? Sta ako terapije nekog osteti? Ovo su proseci, varijabilitet je isto bitan. -::: - -## Grafički prikaz redukcije relativnog rizika - -```{r} -#| eval: false -(tribble( - ~Ime, ~Rizik, ~time, - "Marko", 5, 1, - "Marko", 5 - (5 * 0), 2, - "Radoljub", 20, 1, - "Radoljub", 20 - (20 * 0), 2 -) %>% - ggplot(aes(x = Ime, y = Rizik, group = time)) + - geom_col(fill = "tomato", position = "dodge", color = "white") + - theme_minimal() + - ylim(0, 30)) %>% - ggsave(filename = here("02_sredjivanje/slike", "risk1.png", bg = "white")) - - -(tribble( - ~Ime, ~Rizik, ~time, - "Marko", 5, 1, - "Marko", 5 - (5 * 0.2), 2, - "Radoljub", 20, 1, - "Radoljub", 20 - (20 * 0.2), 2 -) %>% - ggplot(aes(x = Ime, y = Rizik, group = time)) + - geom_col(fill = "tomato", position = "dodge", color = "white") + - theme_minimal() + - ylim(0, 30)) %>% - ggsave(filename = here("02_sredjivanje", "slike", "risk2.png", bg = "white")) - - -(tribble( - ~Ime, ~Rizik, ~time, - "Marko", 5, 1, - "Marko", 5 - (5 * 0.2), 2, - "Radoljub", 20, 1, - "Radoljub", 20 - (20 * 0.2), 2 -) %>% - ggplot(aes(x = Ime, y = Rizik, group = time)) + - geom_col(fill = "tomato", position = "dodge", color = "white") + - geom_hline(yintercept = 20 - (20 * 0.2), linetype = 2) + - geom_hline(yintercept = 20, linetype = 2) + - annotate(geom="text", x=1.25, y=18, label="RR = 0.8", - color="red", size = 5) + - theme_minimal() + - ylim(0, 30)) %>% - ggsave(filename = here("02_sredjivanje", "slike", "risk3.png", bg = "white")) -``` - -```{r} -tribble( - ~Ime, ~Rizik, ~time, - "Marko", 5, 1, - "Marko", 5 - (5 * 0.2), 2, - "Radoljub", 20, 1, - "Radoljub", 20 - (20 * 0.2), 2 -) %>% - ggplot(aes(x = Ime, y = Rizik, group = time)) + - geom_col(fill = "tomato", position = "dodge", color = "white") + - geom_hline(yintercept = 20 - (20 * 0.2), linetype = 2) + - geom_hline(yintercept = 20, linetype = 2) + - annotate(geom="text", x=1.25, y=18, label="RR = 0.8", - color="red", size = 5) + - theme_minimal() + - ylim(0, 30) +source(file = here("theme", "ggthemes.R")) ``` +## -## Greška osnovne stope - -::: {.r-stack} - -![](slike/base1.png) - -![](slike/base2.png){.fragment} - -::: - -## Apsolutni antibiotik, relativni statin - -- Apsolutni rizik je informativniji -- Relativni rizik je bitan kada umemo da procenimo osnovni rizik -- Vakcinacija (100% velike boginje) -- Antibiotici (primer...) - -::: {.notes} -Da li procedure/intervencije mogu da se mere ovako, smanjenjem rizika? Sta je zapravo rizik? -::: - -# Dobri i loši grafikoni - -## Primer: Grafikon PISA testiranja (1) - -![](slike/pisa_raw.png){fig-align="center"} - -## Primer: Grafikon PISA testiranja (2) {.smaller} - -```{r} -tribble( - ~Year, ~Score, ~Subject, -2003,502.335, "math", -2006,501.269, "math", -2009,502.0305, "math", -2012,498.9848, "math", -2015,495.4822, "math", -2018,496.3959, "math", -2021,480.1015, "math", -2000,499.5939, "reading", -2002,497.4619, "reading", -2006,495.6345, "reading", -2008.6667,499.7462, "reading", -2011,501.4213, "reading", -2015,497.4619, "reading", -2017,493.0457, "reading", -2021,482.0812, "reading", -2005,502.9442, "science", -2008,506.1421, "science", -2011,504.9239, "science", -2014,497.3096, "science", -2017,493.5025, "science", -2021,491.3706, "science" -) %>% - mutate(Score = round(Score)) %>% - ggplot(aes(x = Year, y = Score)) + - geom_point() + - geom_line() + - theme_bw() + - facet_wrap(~Subject) + - ylim(0,520) -``` -$Y$ osa produžena do nule. - -## Good chart examples - - - -## Prikazivanje nominalnih podataka -*Grupišu se po [kategorijama]{.yellow}* - -```{r} -tibble( - -) -``` - - -## Bar chart - -## Bad Bar chart - -## Pie chart - -## Prikazivanje ordinalnih podataka -*Grupišu se po [kategorijama]{.yellow}* - -## Prikazivanje diskontinuiranih podataka -*Grupišu se po [kategorijama]{.yellow}* - -## Frequency table - -## Frequency bar chart - -## Bad Frequency bar chart - -## Motivacija za histogram - -```{r} -set.seed(123) -N <- 20 -tibble( - id = rep(1, N), - TA = rnorm(N, mean = 120, sd = 10) -) %>% - ggplot(aes(x = TA, y = id)) + - geom_point(shape = 21, size = 10, fill = "#F4BA02", color = "black", stroke = 1) + - geom_vline(xintercept = 124) + - theme_minimal() + - theme(axis.text.y=element_blank()) + - labs(y = "Pacijent", - x = "Krvni prisitak [mmHg]") -``` -## Široki intervali nisu korisni - -```{r} -set.seed(123) -N <- 20 -tibble( - id = 1:N, - TA = rnorm(N, mean = 120, sd = 10) -) %>% - ggplot(aes(x = TA)) + - geom_histogram(bins = 2, fill = "#F4BA02", color = "white", size = 2) + - theme_minimal() + - labs(y = "Broj", - x = "Krvni prisitak [mmHg]") -``` -## Uski intervali nisu korisni - -```{r} -set.seed(123) -N <- 20 -tibble( - id = 1:N, - TA = rnorm(N, mean = 120, sd = 10) -) %>% - ggplot(aes(x = TA)) + - geom_histogram(bins = 20, fill = "#F4BA02", color = "white", size = 2) + - theme_minimal() + - labs(y = "Broj", - x = "Krvni prisitak [mmHg]") -``` - -## Optimalan broj intervala je proizvoljna stavka - -```{r} -set.seed(123) -N <- 20 -tibble( - id = 1:N, - TA = rnorm(N, mean = 120, sd = 10) -) %>% - ggplot(aes(x = TA)) + - geom_histogram(bins = 7, fill = "#F4BA02", color = "white", size = 2) + - theme_minimal() + - labs(y = "Broj", - x = "Krvni prisitak [mmHg]") -``` -## Informacije možemo predstaviti distribucijom - -:::: {.r-stack} - - -```{r} -set.seed(123) -N <- 1000 -tibble( - id = 1:N, - TA = rnorm(N, mean = 120, sd = 10) -) %>% - ggplot(aes(x = TA)) + - geom_histogram(aes(y = after_stat(density)), bins = 30, fill = "#F4BA02", color = "white", size = 1) + - # stat_function(fun = dnorm, args = list(mean = 120, sd = 10), - # xlim = c(110,130), - # geom = "area", alpha = 3/4, fill = "dodgerblue") + - # stat_function(fun = dnorm, args = list(mean = 120, sd = 10), - # xlim = c(140, 150), - # geom = "area", alpha = 3/4, fill = "tomato") + - # stat_function(fun = dnorm, args = list(mean = 120, sd = 10), color = "black", size = 1.5) + - # - # annotate("text", label = "Više verovatno", x = 135, y = 0.04, size = 7, color = "dodgerblue") + - # annotate("text", label = "Manje\nverovatno", x = 145, y = 0.015, size = 7, color = "tomato") + - theme_void() + - labs(y = "Pacijent", - x = "Krvni prisitak [mmHg]") - - -``` - -::: {.fragment} - -```{r} -set.seed(123) -N <- 1000 -tibble( - id = 1:N, - TA = rnorm(N, mean = 120, sd = 10) -) %>% - ggplot(aes(x = TA)) + - geom_histogram(aes(y = after_stat(density)), bins = 30, fill = "#F4BA02", color = "white", size = 1) + - # stat_function(fun = dnorm, args = list(mean = 120, sd = 10), - # xlim = c(110,130), - # geom = "area", alpha = 3/4, fill = "dodgerblue") + - # stat_function(fun = dnorm, args = list(mean = 120, sd = 10), - # xlim = c(140, 150), - # geom = "area", alpha = 3/4, fill = "tomato") + - stat_function(fun = dnorm, args = list(mean = 120, sd = 10), color = "black", size = 1.5) + - - # annotate("text", label = "Više verovatno", x = 135, y = 0.04, size = 7, color = "dodgerblue") + - # annotate("text", label = "Manje\nverovatno", x = 145, y = 0.015, size = 7, color = "tomato") + - theme_void() + - labs(y = "Pacijent", - x = "Krvni prisitak [mmHg]") - - -``` - -::: - - -::: {.fragment} - -```{r} -set.seed(123) -N <- 1000 -tibble( - id = 1:N, - TA = rnorm(N, mean = 120, sd = 10) -) %>% - ggplot(aes(x = TA)) + - geom_histogram(aes(y = after_stat(density)), bins = 30, fill = "#F4BA02", color = "white", size = 1) + - stat_function(fun = dnorm, args = list(mean = 120, sd = 10), - xlim = c(110,130), - geom = "area", alpha = 3/4, fill = "dodgerblue") + - stat_function(fun = dnorm, args = list(mean = 120, sd = 10), - xlim = c(140, 150), - geom = "area", alpha = 3/4, fill = "tomato") + - stat_function(fun = dnorm, args = list(mean = 120, sd = 10), color = "black", size = 1.5) + - - annotate("text", label = "Više verovatno", x = 135, y = 0.04, size = 7, color = "dodgerblue") + - annotate("text", label = "Manje\nverovatno", x = 145, y = 0.015, size = 7, color = "tomato") + - theme_void() + - labs(y = "Pacijent", - x = "Krvni prisitak [mmHg]") - - -``` - -::: - -:::: - -## Prikazivanje kontinuiranih podataka -*Grupišu se po [kategorijama]{.yellow}* - -- Odrediti apsolutne i relativne učestalosti za **starost** -- Grafički prikaz - - histogram - - poligon frekvencija - -## Histogram - -## Bad Histogram - -## Frequency polygon - -## More examples - -## Zadatak - -- Napraviti tablele -- Zadaci na bazi sa kursa +## Načinite svoje teorije složenim ## Struktura kursa - - -```{css} -#| echo: false - -.reveal table { -font-size: 55%; -} -``` - ```{r} teme <- c( "Uvod u medicinsku statistiku", "Sređivanje podataka", @@ -492,5 +33,5 @@ teme <- c( ) kurs <- tibble(Nedelja = 1:15, Tema = teme) -tt(kurs) +tt(kurs) |> style_tt(j = 1:2, fontsize = 0.55) ``` diff --git a/13_dijagnostika/prezentacija.qmd b/13_dijagnostika/prezentacija.qmd index b45b383..7b0eed3 100644 --- a/13_dijagnostika/prezentacija.qmd +++ b/13_dijagnostika/prezentacija.qmd @@ -1,19 +1,11 @@ --- -title: "Sređivanje podataka" +title: "Testiranje hipoteza o populacionim prosečnim vrednosima i proporcijama" +subtitle: "... i malo o naučnom metodu." date: last-modified author: "Dr Nikola Grubor" # institute: "Institut za Medicinsku Statistiku i Informatiku" logo: "slike/logo.png" lang: sr-Latn - -format: - revealjs: - slide-number: true - show-slide-number: speaker - theme: [default, custom.scss] - -revealjs-plugins: - - revealjs-text-resizer --- ```{r} library(glue) @@ -21,466 +13,15 @@ library(here) library(tidyverse) library(tinytable) library(gtsummary) -library(gganimate) -``` - -## {.center} - -::: r-fit-text -Grupisanje je proces [organizovanja]{.yellow} podataka. -::: - -# Apsolutni i relativni brojevi - -## Formalna definicija {.center} - -::: r-fit-text - -$f_{abs} = \frac{\#n}{\text{interval}}$ - -$f_{rel} = \frac{f_{abs}}{\text{Ukupan broj podataka}} \%$ - -::: - -## Apsolutni jeleni i relativne ajkule - -- Relativni brojevi mogu prenaglasiti rizik (bitnost) neke pojave -- Dobri za plašenje drugih, publikacije -- Loši za javno zdravlje, naučni progres -- Ali potrebni za kauzalno tumačenje - -::: {layout-ncol=2} - -![Apsolutni jelen](slike/deer2.png){width=255} - -![Relativna ajkula](slike/shark.png){width=400} -::: - -::: {.notes} -Retke bolesti mogu da imaju rizike od 300% (RR 3.00), ali ako niko u populaciji ne dobije tu bolest onda to nije od javnozdravstvenog znacaja. -::: - -## Opasnost zaviti od izloženosti {.center} - -![](slike/deadlychart.jpeg){fig-align="center"} - -## Komunikacija rizika {.smaller} - -:::: columns - -::: {.column} -Mnogi ljudi [mešaju]{.yellow} relativni i apsolutni [rizik]{.yellow} - -Primer: - -- 1/10,000 žena ima trombozu -- 3/10,000 žena koje uzimaju kontraceptivne pilule ima trombozu - -$RR = \frac{3/10,000}{1/10,000} = 3.00$ - -- $\uparrow$ 200% u trombozama! -- Promena verovatnoće je samo 0.0002 (2 žene u 10,000) -- Trudnoća povećava verovatnoću tromboze mnogo više (DVT) -::: - -::: {.column} -![](slike/pills.png) -::: - -:::: - -::: {.notes} -Tromboza je retka u opstoj populaciji, ALI su mnogo češći na pilulu. Ima kauzalnih razloga za to. Cost/benefit je težak. Zbog članka mnogo žena prestalo pije KP i dobilo tromboze zbog trudnoće! -::: - -## Tabelarno prikazivanje aps. i rel. podataka {.center} - -```{r} -N <- 100 -freq_dat <- tibble( - Navika = sample(c("Pusač", "Nepusac"), N, replace = T) -) - -tbl_summary(freq_dat) %>% - modify_header(label = "Varijabla") %>% - as_kable_extra(booktabs = TRUE) %>% - kableExtra::kable_styling(font_size = 64) -``` - -## Grafičko prikazivanje relativnih brojeva {.smaller} - -![Redukcija LDL-a u odnosu na vrstu statina.](slike/statins.gif){fig-align="center"} - -## Statini {.smaller} - -Efikasnost (50-65 god): - -- Mortalitet ($RR = 0.86; ARD = -0.40\%; NNT = 250$) -- CVD ($RR = 0.69; ARD, -0.43\%; NNT = 233$) -- CVI ($RR = 0.71; ARD, -0.38\%; NNT = 236$) -- MI ($RR = 0.64; ARD, -0.81\%; NNT = 123$) - -![](slike/statin_jama.png) - -::: {.notes} -Sta moze da bude problem sa NNT? Sta ako terapije nekog osteti? Ovo su proseci, varijabilitet je isto bitan. -::: - -## Grafički prikaz redukcije relativnog rizika - -```{r} -#| eval: false -(tribble( - ~Ime, ~Rizik, ~time, - "Marko", 5, 1, - "Marko", 5 - (5 * 0), 2, - "Radoljub", 20, 1, - "Radoljub", 20 - (20 * 0), 2 -) %>% - ggplot(aes(x = Ime, y = Rizik, group = time)) + - geom_col(fill = "tomato", position = "dodge", color = "white") + - theme_minimal() + - ylim(0, 30)) %>% - ggsave(filename = here("02_sredjivanje/slike", "risk1.png", bg = "white")) - - -(tribble( - ~Ime, ~Rizik, ~time, - "Marko", 5, 1, - "Marko", 5 - (5 * 0.2), 2, - "Radoljub", 20, 1, - "Radoljub", 20 - (20 * 0.2), 2 -) %>% - ggplot(aes(x = Ime, y = Rizik, group = time)) + - geom_col(fill = "tomato", position = "dodge", color = "white") + - theme_minimal() + - ylim(0, 30)) %>% - ggsave(filename = here("02_sredjivanje", "slike", "risk2.png", bg = "white")) - - -(tribble( - ~Ime, ~Rizik, ~time, - "Marko", 5, 1, - "Marko", 5 - (5 * 0.2), 2, - "Radoljub", 20, 1, - "Radoljub", 20 - (20 * 0.2), 2 -) %>% - ggplot(aes(x = Ime, y = Rizik, group = time)) + - geom_col(fill = "tomato", position = "dodge", color = "white") + - geom_hline(yintercept = 20 - (20 * 0.2), linetype = 2) + - geom_hline(yintercept = 20, linetype = 2) + - annotate(geom="text", x=1.25, y=18, label="RR = 0.8", - color="red", size = 5) + - theme_minimal() + - ylim(0, 30)) %>% - ggsave(filename = here("02_sredjivanje", "slike", "risk3.png", bg = "white")) -``` - -```{r} -tribble( - ~Ime, ~Rizik, ~time, - "Marko", 5, 1, - "Marko", 5 - (5 * 0.2), 2, - "Radoljub", 20, 1, - "Radoljub", 20 - (20 * 0.2), 2 -) %>% - ggplot(aes(x = Ime, y = Rizik, group = time)) + - geom_col(fill = "tomato", position = "dodge", color = "white") + - geom_hline(yintercept = 20 - (20 * 0.2), linetype = 2) + - geom_hline(yintercept = 20, linetype = 2) + - annotate(geom="text", x=1.25, y=18, label="RR = 0.8", - color="red", size = 5) + - theme_minimal() + - ylim(0, 30) +source(file = here("theme", "ggthemes.R")) ``` +## -## Greška osnovne stope - -::: {.r-stack} - -![](slike/base1.png) - -![](slike/base2.png){.fragment} - -::: - -## Apsolutni antibiotik, relativni statin - -- Apsolutni rizik je informativniji -- Relativni rizik je bitan kada umemo da procenimo osnovni rizik -- Vakcinacija (100% velike boginje) -- Antibiotici (primer...) - -::: {.notes} -Da li procedure/intervencije mogu da se mere ovako, smanjenjem rizika? Sta je zapravo rizik? -::: - -# Dobri i loši grafikoni - -## Primer: Grafikon PISA testiranja (1) - -![](slike/pisa_raw.png){fig-align="center"} - -## Primer: Grafikon PISA testiranja (2) {.smaller} - -```{r} -tribble( - ~Year, ~Score, ~Subject, -2003,502.335, "math", -2006,501.269, "math", -2009,502.0305, "math", -2012,498.9848, "math", -2015,495.4822, "math", -2018,496.3959, "math", -2021,480.1015, "math", -2000,499.5939, "reading", -2002,497.4619, "reading", -2006,495.6345, "reading", -2008.6667,499.7462, "reading", -2011,501.4213, "reading", -2015,497.4619, "reading", -2017,493.0457, "reading", -2021,482.0812, "reading", -2005,502.9442, "science", -2008,506.1421, "science", -2011,504.9239, "science", -2014,497.3096, "science", -2017,493.5025, "science", -2021,491.3706, "science" -) %>% - mutate(Score = round(Score)) %>% - ggplot(aes(x = Year, y = Score)) + - geom_point() + - geom_line() + - theme_bw() + - facet_wrap(~Subject) + - ylim(0,520) -``` -$Y$ osa produžena do nule. - -## Good chart examples - - - -## Prikazivanje nominalnih podataka -*Grupišu se po [kategorijama]{.yellow}* - -```{r} -tibble( - -) -``` - - -## Bar chart - -## Bad Bar chart - -## Pie chart - -## Prikazivanje ordinalnih podataka -*Grupišu se po [kategorijama]{.yellow}* - -## Prikazivanje diskontinuiranih podataka -*Grupišu se po [kategorijama]{.yellow}* - -## Frequency table - -## Frequency bar chart - -## Bad Frequency bar chart - -## Motivacija za histogram - -```{r} -set.seed(123) -N <- 20 -tibble( - id = rep(1, N), - TA = rnorm(N, mean = 120, sd = 10) -) %>% - ggplot(aes(x = TA, y = id)) + - geom_point(shape = 21, size = 10, fill = "#F4BA02", color = "black", stroke = 1) + - geom_vline(xintercept = 124) + - theme_minimal() + - theme(axis.text.y=element_blank()) + - labs(y = "Pacijent", - x = "Krvni prisitak [mmHg]") -``` -## Široki intervali nisu korisni - -```{r} -set.seed(123) -N <- 20 -tibble( - id = 1:N, - TA = rnorm(N, mean = 120, sd = 10) -) %>% - ggplot(aes(x = TA)) + - geom_histogram(bins = 2, fill = "#F4BA02", color = "white", size = 2) + - theme_minimal() + - labs(y = "Broj", - x = "Krvni prisitak [mmHg]") -``` -## Uski intervali nisu korisni - -```{r} -set.seed(123) -N <- 20 -tibble( - id = 1:N, - TA = rnorm(N, mean = 120, sd = 10) -) %>% - ggplot(aes(x = TA)) + - geom_histogram(bins = 20, fill = "#F4BA02", color = "white", size = 2) + - theme_minimal() + - labs(y = "Broj", - x = "Krvni prisitak [mmHg]") -``` - -## Optimalan broj intervala je proizvoljna stavka - -```{r} -set.seed(123) -N <- 20 -tibble( - id = 1:N, - TA = rnorm(N, mean = 120, sd = 10) -) %>% - ggplot(aes(x = TA)) + - geom_histogram(bins = 7, fill = "#F4BA02", color = "white", size = 2) + - theme_minimal() + - labs(y = "Broj", - x = "Krvni prisitak [mmHg]") -``` -## Informacije možemo predstaviti distribucijom - -:::: {.r-stack} - - -```{r} -set.seed(123) -N <- 1000 -tibble( - id = 1:N, - TA = rnorm(N, mean = 120, sd = 10) -) %>% - ggplot(aes(x = TA)) + - geom_histogram(aes(y = after_stat(density)), bins = 30, fill = "#F4BA02", color = "white", size = 1) + - # stat_function(fun = dnorm, args = list(mean = 120, sd = 10), - # xlim = c(110,130), - # geom = "area", alpha = 3/4, fill = "dodgerblue") + - # stat_function(fun = dnorm, args = list(mean = 120, sd = 10), - # xlim = c(140, 150), - # geom = "area", alpha = 3/4, fill = "tomato") + - # stat_function(fun = dnorm, args = list(mean = 120, sd = 10), color = "black", size = 1.5) + - # - # annotate("text", label = "Više verovatno", x = 135, y = 0.04, size = 7, color = "dodgerblue") + - # annotate("text", label = "Manje\nverovatno", x = 145, y = 0.015, size = 7, color = "tomato") + - theme_void() + - labs(y = "Pacijent", - x = "Krvni prisitak [mmHg]") - - -``` - -::: {.fragment} - -```{r} -set.seed(123) -N <- 1000 -tibble( - id = 1:N, - TA = rnorm(N, mean = 120, sd = 10) -) %>% - ggplot(aes(x = TA)) + - geom_histogram(aes(y = after_stat(density)), bins = 30, fill = "#F4BA02", color = "white", size = 1) + - # stat_function(fun = dnorm, args = list(mean = 120, sd = 10), - # xlim = c(110,130), - # geom = "area", alpha = 3/4, fill = "dodgerblue") + - # stat_function(fun = dnorm, args = list(mean = 120, sd = 10), - # xlim = c(140, 150), - # geom = "area", alpha = 3/4, fill = "tomato") + - stat_function(fun = dnorm, args = list(mean = 120, sd = 10), color = "black", size = 1.5) + - - # annotate("text", label = "Više verovatno", x = 135, y = 0.04, size = 7, color = "dodgerblue") + - # annotate("text", label = "Manje\nverovatno", x = 145, y = 0.015, size = 7, color = "tomato") + - theme_void() + - labs(y = "Pacijent", - x = "Krvni prisitak [mmHg]") - - -``` - -::: - - -::: {.fragment} - -```{r} -set.seed(123) -N <- 1000 -tibble( - id = 1:N, - TA = rnorm(N, mean = 120, sd = 10) -) %>% - ggplot(aes(x = TA)) + - geom_histogram(aes(y = after_stat(density)), bins = 30, fill = "#F4BA02", color = "white", size = 1) + - stat_function(fun = dnorm, args = list(mean = 120, sd = 10), - xlim = c(110,130), - geom = "area", alpha = 3/4, fill = "dodgerblue") + - stat_function(fun = dnorm, args = list(mean = 120, sd = 10), - xlim = c(140, 150), - geom = "area", alpha = 3/4, fill = "tomato") + - stat_function(fun = dnorm, args = list(mean = 120, sd = 10), color = "black", size = 1.5) + - - annotate("text", label = "Više verovatno", x = 135, y = 0.04, size = 7, color = "dodgerblue") + - annotate("text", label = "Manje\nverovatno", x = 145, y = 0.015, size = 7, color = "tomato") + - theme_void() + - labs(y = "Pacijent", - x = "Krvni prisitak [mmHg]") - - -``` - -::: - -:::: - -## Prikazivanje kontinuiranih podataka -*Grupišu se po [kategorijama]{.yellow}* - -- Odrediti apsolutne i relativne učestalosti za **starost** -- Grafički prikaz - - histogram - - poligon frekvencija - -## Histogram - -## Bad Histogram - -## Frequency polygon - -## More examples - -## Zadatak - -- Napraviti tablele -- Zadaci na bazi sa kursa +## Načinite svoje teorije složenim ## Struktura kursa - - -```{css} -#| echo: false - -.reveal table { -font-size: 55%; -} -``` - ```{r} teme <- c( "Uvod u medicinsku statistiku", "Sređivanje podataka", @@ -492,5 +33,5 @@ teme <- c( ) kurs <- tibble(Nedelja = 1:15, Tema = teme) -tt(kurs) +tt(kurs) |> style_tt(j = 1:2, fontsize = 0.55) ```