Lees de data die nodig gaat zijn in R.

paralyse_wormen_data_verdeling <- read_excel("Project wormen.xlsx", sheet = "R2")

Om te zien hoe de data verdeeld is, werd er eerst een gladde histogram gemaakt. Hierin is te zien of er een normale verdeling is of een scheve verdeling.

paralyse_wormen_data_verdeling |> ggplot(aes(x = Paralyse, y = Conditie, fill = Conditie, color = Conditie)) +
  geom_density_ridges(alpha = 0.5, show.legend = FALSE)
## Picking joint bandwidth of 0.291

De verschillende wormgroepen hebben allemaal meerdere pieken in hun histogram zitten.

Voordat de testen voor de verdeling van de data uitgevoerd konden worden, moest er eerst nieuwe data ingeladen worden i.v.m. hoe de data eruit moet zien voor de verschillende testen.

paralyse_wormen_verdelings_testen <- read_excel("Project wormen.xlsx", sheet = "Uitwerking")

wormen_paralyse_tidy <- paralyse_wormen_verdelings_testen |>
  pivot_longer( cols = c(`Mutatie kwijt`,
                         `Geen paralyse`,
                         `Gedeeltelijke verlamming`,
                         `volledige verlamming`),
                names_to = "Paralyse",
                values_to = "Observaties"
  )

Om te checken of de data daadwerkelijk niet normaal verdeeld is moeten er verschillende testen gedaan worden. Er is gekozen om Q-Q grafieken te maken, de ‘skewness’ en ‘kurtosis’ te berekenen en de Shapiro-Wilk-toets uit te voeren.

wormen_paralyse_tidy |>
  ggplot(aes(sample = Observaties)) +
  stat_qq() +
  stat_qq_line(color = "red") +
  facet_wrap(~ Paralyse, scales =  "free") +
  theme_minimal()

Uit de Q-Q plots is te zien dat de data niet geheel normaal verdeeld is. Bij de plot ‘gedeeltelijke paralyse’ is al te zien dat een aantal punten niet op de lijn vallen, eveneens bij de plot voor ‘mutatie kwijt’. De plot van de volledige paralyse heeft één hele grote uitschieten, maar dit komt omdat er maar een enkele observatie was van deze paralyse.
De skewness en kurtosis moeten tussen de -2 en 2 liggen om te kunnen zeggen dat de ata min of meer normaal verdeeld is. De optimale skewness en kurtosis is bij een waarde van 0.

wormen_paralyse_tidy |>
  group_by(Paralyse) |>
  summarize(sk=skewness(Observaties),
            kt=kurtosis(Observaties))
## # A tibble: 4 × 3
##   Paralyse                      sk    kt
##   <chr>                      <dbl> <dbl>
## 1 Gedeeltelijke verlamming -0.513   1.72
## 2 Geen paralyse             0.0582  1.08
## 3 Mutatie kwijt             0.278   1.57
## 4 volledige verlamming      1.15    2.33

De verkregen resultaten laten zien dat er bij ‘Geen paralyse’ een kurtosis is van > 2. Dit betekent dan dus ook dat hier een mogelijke uitbijter in zit.
De data van de volledige paralyse laat ook zien dat hier geen normaal verdeelde data is, maar wederom is hier gerekend met maar één enkele observatie.
De Shapiro-Wilk-test berekent een p-waarde. Met deze p-waarde kan er een nulhypothese geaccepteerd of verworpen worden. Als de nulhypothese verworpen wordt, dan dient de alternatieve hypothese geaccepteerd te worden.
Indien de p-waarde ≥ 0,05 is wordt de nulhypothese geaccepteerd. De data is normaal verdeeld.
Indien de p-waarde < 0,05 is wordt de nulhypothese verworpen en de alternatieve hypothese geaccepteerd. De data is niet normaal verdeeld.

wormen_paralyse_tidy |>
  group_by(Paralyse) |>
  summarise(sw=(shapiro.test(Observaties)$p.value |>
                  round(digits = 2)))
## # A tibble: 4 × 2
##   Paralyse                    sw
##   <chr>                    <dbl>
## 1 Gedeeltelijke verlamming  0.58
## 2 Geen paralyse             0.11
## 3 Mutatie kwijt             0.8 
## 4 volledige verlamming      0

De condities ‘gedeeltelijke paralyse’ en ‘geen paralyse’ hebben normaal verdeelde data.
De condities ‘mutatie kwijt’ en ‘volledige paralyse’ hebben niet normaal verdeelde data. Dit kan dus betekenen dat er uitbijters in deze datasets zitten. Omdat de groep volledige paralyse maar één observatie had wordt hier niet verder naar gekeken. De groep die de mutatie kwijt is geraakt had in de eerdere geen bewijs van uitschieter, dus wordt hier voor het gemak niet van een uitbijter uitgegaan.

Om nu een kruskal-wallis rank sum test uit te kunnen voeren op de verkregen data moet de kolom voor ‘Conditie’ eerst als factor gezien worden.

paralyse_wormen_data_verdeling$Conditie <- as.factor(paralyse_wormen_data_verdeling$Conditie)

De Kruskal-Wallis test berekent ook een p-waarde. Met deze p-waarde kan er een nulhypothese geaccepteerd of verworpen worden. Als de nulhypothese verworpen wordt, dan dient de alternatieve hypothese geaccepteerd te worden.
Indien de p-waarde ≥ 0,05 is wordt de nulhypothese geaccepteerd. De data is gelijk verdeeld. Er is geen verschil tussen de experimentele groepen.
Indien de p-waarde < 0,05 is wordt de nulhypothese verworpen en de alternatieve hypothese geaccepteerd. De data is niet normaal verdeeld. Er is wel een verschil tussen de experimentele groepen.

kruskal.test(data = paralyse_wormen_data_verdeling,
             Paralyse ~ Conditie)
## 
##  Kruskal-Wallis rank sum test
## 
## data:  Paralyse by Conditie
## Kruskal-Wallis chi-squared = 1.9931, df = 3, p-value = 0.5738

Uit deze test komt dat de data gelijk verdeeld is over de vier groepen (WT16, WT25, SNA16, SNA25). Er is dus geen statistisch verschil, omdat de p-waarde > 0,05.
Om nog verder te kijken tussen de groepen tegenover elkaar is er ook nog een post-hoc test gedaan.

Uit deze post-hoc-test komt ook weer een p-waarde voor elke groep tegenover elkaar. Hier gelden dezelfde regels voor het verwerpen van de nulhypothese als bij de Kruskal-Wallis-test.

pairwise.wilcox.test(paralyse_wormen_data_verdeling$Paralyse,
                     paralyse_wormen_data_verdeling$Conditie,
                     exact=FALSE,
                     p.adjust.method = "BH")
## 
##  Pairwise comparisons using Wilcoxon rank sum test with continuity correction 
## 
## data:  paralyse_wormen_data_verdeling$Paralyse and paralyse_wormen_data_verdeling$Conditie 
## 
##       SNA16 SNA25 WT16
## SNA25 0.82  -     -   
## WT16  0.61  0.61  -   
## WT25  0.93  0.82  0.82
## 
## P value adjustment method: BH

Ook hier zijn alle p-waarden > 0,05, dus er zijn geen statistische verschillen te zien tussen de vier wormgroepen.

/newline

Als laatst zijn er wat grafieken gemaakt als beschrijvende data.

#Boxplot die onze data laat zien naast elkaar
paralyse_wormen_data_verdeling |>
  ggplot(aes(x = Conditie, y= Paralyse)) +
  geom_boxplot() +
  theme_minimal()

staafdiagram <- read_xlsx("Project wormen.xlsx", sheet = 'Uitwerking')

#Maak de data tidy zodat deze gebruikt kan worden in een staafdiagram, waarbij de observaties bij elkaar opgeteld zijn
staafdiagram_tidy <- paralyse_wormen_verdelings_testen |>
  pivot_longer( cols = c(`Mutatie kwijt`,
                         `Geen paralyse`,
                         `Gedeeltelijke verlamming`,
                         `volledige verlamming`),
                names_to = "Paralyse",
                values_to = "Observaties"
  )

#Maak de staafdiagram
staafdiagram_tidy |>
  group_by(Conditie) |>
  ggplot(aes(x = Paralyse, y = Observaties, fill = Conditie)) +
  geom_col(color = 'black', position = position_dodge()) +
  theme_minimal() +
  labs(
    title = "staafdiagram voor de observaties per vorm van paralyse ",
    x = "vorm van paralyse",
    y = "Hoeveelheid observaties"
  )