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"
)