Experiment ingezet door Leentje.
Is er een verschil tussen AQC wanneer het seed al dan niet gefilterd wordt?
library(dplyr) # Package voor Operaties in data.frames
library(ggplot2) # package om plots te maken
library(knitr) # tabel visualisatie in html
# De data inladen
setwd("~/BZV/BZV berekening") #working directory
Seeddata = read.table("2024121101SeedtestLM.txt", header=FALSE, sep = ";") # lees de tekstfile in
# seeddata is de naam van het dataframe waar we de data van ons experiment opslagen.
# header is false voor deze data want ze heeft momenteel nog geen kolomnamen.
# hier brengen we verandering in met de functie colnames()
colnames(Seeddata) = c("Labonummer","Tray","PosNr","Predil","Volume","StartDate","StartTime","StartValDO","StartTemp","EndDate","EndTime","EndValDO","EndTemp","O2%","BZV","O2Final","BZVFinal","Operator")
# Op dit moment worden datums en numerieke waarden nog niet herkent door R, dit wordt opgelost met onderstaande code.
Seeddata = Seeddata %>% mutate_at(c("EndDate","StartDate"), as.Date, format = "%d/%m/%Y")
Seeddata = Seeddata %>% mutate_at(c("Tray","PosNr","Predil","Volume","StartValDO","StartTemp","EndValDO","EndTemp","O2%","BZV","O2Final","BZVFinal"),as.numeric)
kable(Seeddata, caption = "Volledige BZV run")
| Labonummer | Tray | PosNr | Predil | Volume | StartDate | StartTime | StartValDO | StartTemp | EndDate | EndTime | EndValDO | EndTemp | O2% | BZV | O2Final | BZVFinal | Operator |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| blank1 | 18 | 1 | 1 | 292 | 2024-12-06 | 11:34:43 | 8.99 | 19.7 | 2024-12-11 | 9:20:50 | 8.05 | 19.9 | 10.45 | 0.94 | 10.58 | 0.96 | LM |
| AQC11 | 18 | 2 | 1 | 5 | 2024-12-06 | 11:37:59 | 9.07 | 19.6 | 2024-12-11 | 9:22:18 | 5.01 | 19.8 | 44.73 | 182.03 | 44.73 | 182.03 | LM |
| AQC12 | 18 | 3 | 1 | 5 | 2024-12-06 | 11:40:13 | 9.07 | 19.6 | 2024-12-11 | 9:23:50 | 4.85 | 19.8 | 46.51 | 191.37 | 46.51 | 191.37 | LM |
| AQC13 | 18 | 4 | 1 | 5 | 2024-12-06 | 11:42:04 | 9.09 | 19.6 | 2024-12-11 | 9:25:20 | 5.11 | 19.7 | 43.77 | 177.53 | 43.77 | 177.53 | LM |
| AQC14 | 18 | 5 | 1 | 5 | 2024-12-06 | 11:44:09 | 9.08 | 19.5 | 2024-12-11 | 9:26:54 | 4.92 | 19.6 | 45.87 | 188.39 | 45.87 | 188.39 | LM |
| AQC15 | 18 | 6 | 1 | 5 | 2024-12-06 | 11:46:09 | 9.09 | 19.6 | 2024-12-11 | 9:28:31 | 4.93 | 19.7 | 45.76 | 188.04 | 45.76 | 188.04 | LM |
| AQC16 | 18 | 7 | 1 | 5 | 2024-12-06 | 11:48:00 | 9.09 | 19.6 | 2024-12-11 | 9:30:07 | 5.06 | 19.6 | 44.35 | 180.45 | 44.35 | 180.45 | LM |
| AQC11NF | 18 | 8 | 1 | 5 | 2024-12-06 | 11:49:52 | 9.09 | 19.5 | 2024-12-11 | 9:31:46 | 5.08 | 19.6 | 44.10 | 179.28 | 44.10 | 179.28 | LM |
| AQC12NF | 18 | 9 | 1 | 5 | 2024-12-06 | 11:51:57 | 9.10 | 19.5 | 2024-12-11 | 9:33:09 | 5.05 | 19.6 | 44.54 | 181.79 | 44.54 | 181.79 | LM |
| AQC13NF | 18 | 10 | 1 | 5 | 2024-12-06 | 11:53:49 | 9.09 | 19.6 | 2024-12-11 | 9:34:33 | 5.11 | 19.7 | 43.77 | 177.35 | 43.77 | 177.35 | LM |
| AQC14NF | 18 | 11 | 1 | 5 | 2024-12-06 | 11:55:35 | 9.10 | 19.5 | 2024-12-11 | 9:35:53 | 5.30 | 19.6 | 41.71 | 166.67 | 41.71 | 166.67 | LM |
| AQC15NF | 18 | 12 | 1 | 5 | 2024-12-06 | 11:57:26 | 9.13 | 19.5 | 2024-12-11 | 9:37:19 | 5.08 | 19.6 | 44.34 | 181.62 | 44.34 | 181.62 | LM |
| AQC16NF | 18 | 13 | 1 | 5 | 2024-12-06 | 11:59:47 | 9.07 | 19.6 | 2024-12-11 | 9:38:47 | 4.92 | 19.7 | 45.74 | 187.46 | 45.74 | 187.46 | LM |
| blank1 | 18 | 14 | 1 | 292 | 2024-12-06 | 12:01:27 | 9.09 | 19.3 | 2024-12-11 | 9:40:28 | 8.12 | 19.6 | 10.70 | 0.97 | 10.58 | 0.96 | LM |
Seed lotnr: #032406 Inzetdatum: 06/12/2024 Concentratie van het seed: 1 capsule / 400 ml verdunningswater
Nulhypothese : Er is geen verschil in BZV tussen gefilterd en ongefilterd seed.
We voeren een simpele t-test uit om te kijken of de nulhypotese moet verworpen worden.
# vat alle AQC samen in 1 dataframe
BZV_AQC = Seeddata[grep("AQC", Seeddata$Labonummer,ignore.case=TRUE),]
# maak een nieuwe kolom aan die gefilterde en ongefilterd uit elkaar houd.
BZV_AQC$Gefilterd = ifelse(grepl("NF", BZV_AQC$Labonummer) == TRUE, FALSE, TRUE)
#dataframe in overzichtelijke tabel
kable(BZV_AQC[c(1,5,14,15,18,19)])
| Labonummer | Volume | O2% | BZV | Operator | Gefilterd | |
|---|---|---|---|---|---|---|
| 2 | AQC11 | 5 | 44.73 | 182.03 | LM | TRUE |
| 3 | AQC12 | 5 | 46.51 | 191.37 | LM | TRUE |
| 4 | AQC13 | 5 | 43.77 | 177.53 | LM | TRUE |
| 5 | AQC14 | 5 | 45.87 | 188.39 | LM | TRUE |
| 6 | AQC15 | 5 | 45.76 | 188.04 | LM | TRUE |
| 7 | AQC16 | 5 | 44.35 | 180.45 | LM | TRUE |
| 8 | AQC11NF | 5 | 44.10 | 179.28 | LM | FALSE |
| 9 | AQC12NF | 5 | 44.54 | 181.79 | LM | FALSE |
| 10 | AQC13NF | 5 | 43.77 | 177.35 | LM | FALSE |
| 11 | AQC14NF | 5 | 41.71 | 166.67 | LM | FALSE |
| 12 | AQC15NF | 5 | 44.34 | 181.62 | LM | FALSE |
| 13 | AQC16NF | 5 | 45.74 | 187.46 | LM | FALSE |
# data visualiseren
ggplot(BZV_AQC, aes(y = BZV, x = Gefilterd,col = Gefilterd)) + geom_boxplot() +
labs(title = "Boxplot met BZV waarden van de AQC",
y = "BZV in mg O2/L",
x = "Gefilterd seed")
Nu voeren we een t test uit. Voordat we dit doen testen we de assumpties van een t-test.
1 . Variantie tussen groepen is dezelfde.
Ftest_BZV = var.test(BZV~Gefilterd, data = BZV_AQC)
Ftest_BZV
##
## F test to compare two variances
##
## data: BZV by Gefilterd
## F = 1.6529, num df = 5, denom df = 5, p-value = 0.5948
## alternative hypothesis: true ratio of variances is not equal to 1
## 95 percent confidence interval:
## 0.2312856 11.8119361
## sample estimates:
## ratio of variances
## 1.652855
De p-waarde in deze test is niet significant, de nulhyopthese wordt niet verworpen.
De variantie tussen de groepen is gelijk.
shapiro.test(BZV_AQC$BZV)
##
## Shapiro-Wilk normality test
##
## data: BZV_AQC$BZV
## W = 0.92602, p-value = 0.3398
H0: de data is normaal verdeeld.
de p-waarde is groter dan 0.05 dus de H0 wordt niet verworpen.
De data is normaal verdeeld.
Nu de T-test zelf uitvoeren
GefilterdSeed_T_test = t.test(BZV~Gefilterd, data = BZV_AQC)
GefilterdSeed_T_test
##
## Welch Two Sample t-test
##
## data: BZV by Gefilterd
## t = -1.5613, df = 9.429, p-value = 0.1514
## alternative hypothesis: true difference in means between group FALSE and group TRUE is not equal to 0
## 95 percent confidence interval:
## -13.674318 2.460984
## sample estimates:
## mean in group FALSE mean in group TRUE
## 179.0283 184.6350
Ook bij deze test vinden we geen significant resultaat.
Bij de groep waar het seed niet gefilterd werd is de eindBZV gemiddeld lager maar het verschil tussen de groepen is dus wel niet statistisch significant.