熱線電話:13121318867

登錄
首頁精彩閱讀R語言中的方差分析
R語言中的方差分析
2017-11-01
收藏

R語言中的方差分析

方差分析:當包含的因子是解釋變量時,我們關注的重點通常會從預測轉向組別差異的分析,這種分析法稱作方差分析(ANOVA)。

install.packages(c('multcomp', 'gplots', 'car', 'HH', 'effects', 'rrcov', 'mvoutlier', 'MASS'))   

(1)ANOVA 模型擬合

aov()函數的語法為aov(formula, data = dataframe)

1、僅有一個類別型變量,稱為單因素方差分析(one-way ANOVA)

2、每個患者在所有水平下都進行了測量,因此這種統計設計稱單因素組內方差分析;又由于每個受試者都不止一次被測量,也稱作重復測量方差分析

3、當設計包含兩個甚至更多的因子時,便是因素方差分析設計,比如兩因子時稱作雙因素方差分析,三因子時稱作三因素方差分析。

4、若因子設計包括組內和組間因子,又稱作混合模型方差分析

5、當因變量不止一個時,設計被稱作多元方差分析(MANOVA), 若協變量也存在, 那么就叫多元協方差分析MANCOVA。

注意,表達式中變量的順序很重要

有三種類型的方法可以分解等式右邊各效應對y所解釋的方差。
類型I(序貫型)
效應根據表達式中先出現的效應做調整。A不做調整,B根據A調整,A:B交互項根據A和
B調整。
類型II(分層型)
效應根據同水平或低水平的效應做調整。A根據B調整,B依據A調整,A:B交互項同時根
據A和B調整。
類型III(邊界型)
每個效應根據模型其他各效應做相應調整。A根據B和A:B做調整,A:B交互項根據A和B
調整。
R默認調用類型I方法,其他軟件(比如SAS和SPSS)默認調用類型III方法

首先是協變量,然后是主效應,接著是雙因素的交互項,再接著是三因素的交互項,以此類推。對于主效應,越基礎性的變量越應放在表達式前面。

car包中的Anova()函數(不要與標準anova()函數混淆)提供了使用類型II或類型III方法的選項,而aov()函數使用的是類型I方法。

(2)單因素方差分析

單因素方差分析中,你感興趣的是比較分類因子定義的兩個或多個組別中的因變量均值

library(multcomp)
attach(cholesterol)
table(trt)     樣本的數量

1time 2times 4times  drugD  drugE 
    10     10     10     10     10 
aggregate(response, by = list(trt), FUN = mean)  計算每一個方法的均值

Group.1        x
1   1time  5.78197
2  2times  9.22497
3  4times 12.37478
4   drugD 15.36117
5   drugE 20.94752
aggregate(response, by = list(trt), FUN = sd)    計算每一個方法的標準值

Group.1        x
1   1time 2.878113
2  2times 3.483054
3  4times 2.923119
4   drugD 3.454636
5   drugE 3.345003
fit <- aov(response ~ trt)

summary(fit)

Df Sum Sq Mean Sq F value   Pr(>F)    
trt          4 1351.4   337.8   32.43 9.82e-13 ***
Residuals   45  468.8    10.4                     
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
library(gplots)
plotmeans(response ~ trt, xlab = "Treatment", ylab = 
"Response", 
    main = "Mean Plot\nwith 95% CI")
detach(cholesterol)

Tukey HSD的成對組間比較(二二比較)

TukeyHSD(fit)

Fit: aov(formula = response ~ trt)

$trt
                  diff        lwr       upr     p adj
2times-1time   3.44300 -0.6582817  7.544282 0.1380949
4times-1time   6.59281  2.4915283 10.694092 0.0003542
drugD-1time    9.57920  5.4779183 13.680482 0.0000003
drugE-1time   15.16555 11.0642683 19.266832 0.0000000
4times-2times  3.14981 -0.9514717  7.251092 0.2050382
drugD-2times   6.13620  2.0349183 10.237482 0.0009611
drugE-2times  11.72255  7.6212683 15.823832 0.0000000
drugD-4times   2.98639 -1.1148917  7.087672 0.2512446
drugE-4times   8.57274  4.4714583 12.674022 0.0000037
drugE-drugD    5.58635  1.4850683  9.687632 0.0030633
par(las = 2)
par(mar = c(5, 8, 4, 2))
plot(TukeyHSD(fit))

如果要做單因素的方差分析,因變量要滿足正態分布??梢允褂肣Q圖查看。

library(car)
qqPlot(lm(response ~ trt, data = cholesterol), simulate = TRUE, main = "QQ Plot", labels = FALSE)

因變量滿足各組方差相等

bartlett.test(response ~ trt, data = cholesterol)


        Bartlett test of homogeneity of variances


data:  response by trt
Bartlett's K-squared = 0.5797, df = 4, p-value = 0.9653

p-value = 0.9653 越接近1 證明 不同值之間的方差是相等的。

方差齊性分析對離群點非常敏感??衫胏ar包中的outlierTest()函數來檢測離群點:

library(car)
> outlierTest(fit)
No Studentized residuals with Bonferonni p < 0.05
Largest |rstudent|:
   rstudent unadjusted p-value Bonferonni p
19 2.251149           0.029422           NA

數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢