簡體   English   中英

生物測定的統計分析

[英]Statistical analysis of a bioassay

在此處輸入圖像描述

我正在分析一些生物測定的數據,我需要關於使用哪種統計分析以及如何使用 ggplot2 R package 來更好地可視化結果的建議。

正如您在上圖中所見,我已經用一種病原體(一種假單胞菌屬細菌)感染了豆類植物,然后用同時或接種前 1 小時應用的噬菌體進行了測試。 在右側的散點圖 plot 中,您可以看到我所擁有的四個的兩個重復。 在y軸上的每個plot中都有植物的疾病指數(從0設計的健康植物到死亡植物,5)。 我想測試四種情況(陽性和陰性對照以及兩種噬菌體應用)之間以及所有可能的配對之間是否存在顯着差異。 我嘗試了 Kruskal-Wallis 檢驗和 Wilcoxon 配對檢驗,我發現只有四個重復中的兩個(代表兩個)存在顯着差異。

現在我有疑問:1)我可以進行更適合的統計測試嗎? 2) 有一種更好的方法來可視化 dthe 數據(我用 power point 直接在圖像上應用了字母,但我更願意通過 R 腳本來完成所有操作)

我在這里添加了我用來分析數據的腳本。

# load libraries
library(tidyverse)
library(patchwork)
library(broom)
library(agricolae)
library(ggplot2)
library (reshape2)


#Clear the Worskspace
rm(list=ls())


# Read data
DF<- read_csv2("R_summary_bioassay_4.csv")
#Looks at data as structure , first rows  or whole dataset
str(DF)
head(DF)
View(DF)


DF1 <- DF %>%
filter(date=="23/11/2020")

DF2 <- DF %>%
  filter(date=="18/02/2022")

DF3 <- DF %>%
  filter(date=="22/03/2022")

DF4 <- DF %>%
  filter(date=="29/04/2022")

class(DF$treatment)

plot1 <- DF1 %>%
ggplot(aes(x = treatment,
           y = index)) +
  geom_col(fill = "grey") +
  geom_jitter(data = DF, 
              aes(x = treatment,
                  y = index),
              width = 0.1, height = 0) +
  theme_classic() +
  theme(text = element_text(size = 20 )) +
  theme(axis.title.y = element_text(size = 14)) +
  labs(title = "23/11/2020",
       x = "Treatment",
       y = "Disease index") 

plot1

plot2 <- DF2 %>%
ggplot(aes(x = treatment,
           y = index)) +
  geom_col(fill = "grey") +
  geom_jitter(data = DF, 
              aes(x = treatment,
                  y = index),
              width = 0.1, height = 0) +
  theme_classic() +
  theme(text = element_text(size = 20 )) +
  theme(axis.title.y = element_text(size = 14)) +
  labs(title = "18/02/2022",
       # caption = paste0("ANOVA value: ", unique(x$ANOVA)),
       x = "Treatment",
       y = "Disease index") 

plot2

plot3 <- DF3 %>%
  ggplot(aes(x = treatment,
             y = index)) +
  geom_col(fill = "grey") +
  geom_jitter(data = DF, 
              aes(x = treatment,
                  y = index),
              width = 0.1, height = 0) +
  theme_classic() +
  theme(text = element_text(size = 20 )) +
  theme(axis.title.y = element_text(size = 14)) +
  labs(title = "23/03/2022",
       # caption = paste0("ANOVA value: ", unique(x$ANOVA)),
       x = "Treatment",
       y = "Disease index") 

plot3

plot4<- DF4 %>%
  ggplot(aes(x = treatment,
             y = index)) +
  geom_col(fill = "grey") +
  geom_jitter(data = DF, 
              aes(x = treatment,
                  y = index),
              width = 0.1, height = 0) +
  theme_classic() +
  theme(text = element_text(size = 20 )) +
  theme(axis.title.y = element_text(size = 14)) +
  labs(title = "23/03/2022",
       # caption = paste0("ANOVA value: ", unique(x$ANOVA)),
       x = "Treatment",
       y = "Disease index") 

plot4

scatterplot1 <- DF1 %>%
  ggplot(aes(x = treatment,
             y = index)) +
  geom_jitter(data = DF1,
              aes(x = treatment,
                  y = index, colour = treatment),
              show.legend = F,
              width = 0.1, height = 0) +
  
  theme_classic() +
  theme(text = element_text(size = 20 )) +
  theme(axis.title.y = element_text(size = 14)) +
  theme(axis.text.x = element_text(angle = -15, vjust = 0.5, hjust=0)) +
  
  labs(title = "23/11/2020",
       # caption = paste0("ANOVA value: ", unique(x$ANOVA)),
       x = "Treatment",
       y = "Disease index")

scatterplot1

scatterplot2 <- DF2 %>%
  ggplot(aes(x = treatment,
             y = index)) +
  geom_jitter(data = DF2,
              aes(x = treatment,
                  y = index, colour = treatment),
              show.legend = F,
              width = 0.1, height = 0) +
  
  theme_classic() +
  theme(text = element_text(size = 20 )) +
  theme(axis.title.y = element_text(size = 14)) +
  theme(axis.text.x = element_text(angle = -15, vjust = 0.5, hjust=0)) +
  
  labs(title = "18/02/202",
       # caption = paste0("ANOVA value: ", unique(x$ANOVA)),
       x = "Treatment",
       y = "Disease index")

scatterplot2

scatterplot3 <- DF3 %>%
  ggplot(aes(x = treatment,
             y = index)) +
  geom_jitter(data = DF3,
              aes(x = treatment,
                  y = index, colour = treatment),
              show.legend = F,
              width = 0.1, height = 0) +
  
  theme_classic() +
  theme(text = element_text(size = 20 )) +
  theme(axis.title.y = element_text(size = 14)) +
  theme(axis.text.x = element_text(angle = -15, vjust = 0.5, hjust=0)) +
  
  labs(title = "22/03/2022",
       # caption = paste0("ANOVA value: ", unique(x$ANOVA)),
       x = "Treatment",
       y = "Disease index")

scatterplot3

scatterplot4 <- DF4 %>%
  ggplot(aes(x = treatment,
             y = index)) +
  geom_jitter(data = DF4,
              aes(x = treatment,
                  y = index, colour = treatment),
              show.legend = F,
              width = 0.1, height = 0) +
  
  theme_classic() +
  theme(text = element_text(size = 20 )) +
  theme(axis.title.y = element_text(size = 14)) +
  theme(axis.text.x = element_text(angle = -15, vjust = 0.5, hjust=0)) +
  
  labs(title = "29/04/2022",
       # caption = paste0("ANOVA value: ", unique(x$ANOVA)),
       x = "Treatment",
       y = "Disease index")

scatterplot4

kruskal.test(index ~ treatment, data = DF1)
kruskal.test(index ~ treatment, data = DF2)
kruskal.test(index ~ treatment, data = DF3)
kruskal.test(index ~ treatment, data = DF4)

pairwise.wilcox.test(DF1$index, DF1$treatment,
                     p.adjust.method = "BH")
pairwise.wilcox.test(DF2$index, DF2$treatment,
                     p.adjust.method = "BH")
pairwise.wilcox.test(DF3$index, DF3$treatment,
                     p.adjust.method = "BH")
pairwise.wilcox.test(DF4$index, DF4$treatment,
                     p.adjust.method = "BH")

也許 Tukey 結束計數可能有助於您的評估和可視化。 您有多個治療比較,因此 95% 置信度的典型最小結束計數 7 應增加到 9。如果您需要,我在某處有一個公式。

Tukey 在他的原始論文中將平局處理為 0.5,不計算平局會更加保守。

Andy Sleeper 在“Pocket Stats”中有一個簡短的概述: https://www.processexcellencenetwork.com/lean-six-sigma-business-performance/columns/pocket-stats-quick-significance-tests-you-can-rem

Tukey End Count 測試(又名 Tukey 的快速測試)是 John Tukey 在 Duckworth(工程師)詢問是否可以開發比 t 檢驗更簡單的東西后開發的非參數(無分布)測試。 Tukey 在第一版 Technometrics (1959) “A Quick, Compact, Two-Sample Test to Duckworth's Specifications”中發表了它。

也許 Tukey End Count 可能有助於您的評估和可視化。 您有多個治療比較,因此 95% 置信度的典型最小結束計數 7 應增加到 9。如果您需要,我在某處有一個公式。

由於響應是有界的並且是有序響應,因此序數邏輯回歸是一個可能的候選者。 這是一個類似的問題,其中包含一些很好的信息: 我應該使用哪個 model 來擬合我的數據? 序數和非序數,非正態和非均方差

Tukey 在他的原始論文中將平局處理為 0.5,不計算平局會更加保守。

有關 Tukey End Count 的更多信息:Andy Sleeper 在“Pocket Stats”中有簡要概述: https://www.processexcellencenetwork.com/lean-six-sigma-business-performance/columns/pocket-stats-quick-significance -tests-you-can-rem

Tukey End Count 測試(又名 Tukey 的快速測試)是 John Tukey 在 Duckworth(工程師)詢問是否可以開發比 t 檢驗更簡單的東西后開發的非參數(無分布)測試。 Tukey 在第一版 Technometrics (1959) “A Quick, Compact, Two-Sample Test to Duckworth's Specifications”中發表了它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM