中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

R語言如何實現方差分析及其可視化

發布時間:2022-01-20 10:49:22 來源:億速云 閱讀:611 作者:iii 欄目:開發技術

今天小編給大家分享一下R語言如何實現方差分析及其可視化的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

方差分析(Analysis of Variance,簡稱ANOVA),又稱“變異數分析”,是R.A.Fisher發明的,用于兩個及兩個以上樣本均數差別的顯著性檢驗。 由于各種因素的影響,研究所得的數據呈現波動狀。 造成波動的原因可分成兩類,一是不可控的隨機因素,另一是研究中施加的對結果形成影響的可控因素。

方差分析分類:

方差分析常用的為單因素方差分析和雙因素方差分析,而多因素方差分析比較復雜用的不多,這里主要介紹前兩種方差分析。

單因素方差分析

單因素方差分析比較的是分類因子定義的兩個或多個組別中的因變量均值。與t檢驗區別:t檢驗適用于兩列數據的均值比較。單因素方差分析適用于兩列或更多列數據的均值比較。但對于兩列數據的均值比較,單因素方差分析=等方差假設的雙尾t檢驗。

以R中內置數據PlantGrowth集為例。不同地塊( ‘ctrl’, ‘trt1’, and ‘trt2’)種植的植物的產量(weight)數據;解決的問題如下
1.不同地塊產量是否存在差異
2.trt1與trt2是哪塊差異更大

##正態性檢驗

my_data <- PlantGrowth
shapiro.test(my_data$weight)

#結果表明,p=0.8915 >0.05,接受原假設,說明數據在多個水平下都是正態分布的。

##方差齊性檢驗
bartlett.test(weight~group,data=my_data)

#結果表明,p=0.2371 >0.05,接受原假設,說明數據在不同水平下是等方差的。

##單因素方差分析
fit<-aov(weight~group,data=my_data)
summary(fit)
#            Df Sum Sq Mean Sq F value Pr(>F)  
#group        2  3.766  1.8832   4.846 0.0159 *
#Residuals   27 10.492  0.3886                 
#---
#Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#結果表明,不同地塊見產量差異非常顯著。

#如果用非參數檢驗法 Kruskal-Wallis test
kruskal.test(weight ~ group, data = my_data)

##多重比較(多重T檢驗),哪塊差異更明顯
#R語言中TukeyHSD()函數提供了對各組均值差異的成對檢驗。
TukeyHSD(fit)


#如果用KW檢驗多重比較,
pairwise.wilcox.test(PlantGrowth$weight, PlantGrowth$group,
                     p.adjust.method = "BH")

更好的方法+繪圖展示:

利用ggpubr包做方差分析,并可視化分析結果:

library("ggpubr")
compare_means(weight ~ group, data = PlantGrowth,method="anova")
compare_means(weight ~ group, data = PlantGrowth,method="kruskal.test")

my_comparisons <- list(c("ctrl","trt1"), c("ctrl", "trt2"),
                       c("trt1", "trt2"))

ggboxplot(my_data, x = "group", y = "weight", 
          color = "group", palette = "jco",
          order = c("ctrl", "trt1", "trt2"),
          ylab = "Weight", xlab = "Treatment")+
          stat_compare_means(label.y = 11,method = "anova")+
          stat_compare_means(comparisons = my_comparisons,label.y = c(7,9,8))

或者小提琴圖

ggviolin(my_data, x = "group", y = "weight", 
          fill = "group", palette = "jco",
          order = c("ctrl", "trt1", "trt2"),
          ylab = "Weight", xlab = "Treatment",add = "boxplot", add.params = list(fill="white"))+
  stat_compare_means(label.y = 11,method = "anova")+     # Global p-value
  stat_compare_means(comparisons = my_comparisons,label.y = c(7,9,8))
ggbarplot(PlantGrowth, x = "group", y = "weight", add = "mean_se",
          color = "group",fill="group", palette = "jco")+
  stat_compare_means(label.y = 11,method = "anova") +    # Global p-value
  stat_compare_means(comparisons = my_comparisons,label.y = c(7,9, 8),method="t.test")+
  scale_y_continuous(expand=c(0,0))

或者線圖

ggline(my_data, x = "group", y = "weight", 
       add = c("mean_se", "jitter"), 
       order = c("ctrl", "trt1", "trt2"),
       ylab = "Weight", xlab = "Treatment")+
      stat_compare_means(label.y = 11,method = "anova")+   # Global p-value
      stat_compare_means(comparisons = my_comparisons,label.y = c(7,9,8))

以上就是“R語言如何實現方差分析及其可視化”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

长兴县| 康定县| 同仁县| 建阳市| 宜春市| 出国| 甘孜县| 遂平县| 衡南县| 吴江市| 沙雅县| 东山县| 民丰县| 宁乡县| 额尔古纳市| 棋牌| 永修县| 腾冲县| 磐石市| 荥阳市| 鄯善县| 安塞县| 武强县| 天台县| 饶河县| 策勒县| 黔西县| 康定县| 焦作市| 奉贤区| 平乡县| 蓝田县| 雷州市| 宜都市| 建德市| 台东市| 电白县| 霍山县| 临洮县| 志丹县| 农安县|