您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān)R中如何實(shí)現(xiàn)方差分析ANOVA,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
R實(shí)現(xiàn)統(tǒng)計(jì)中的檢驗(yàn)方法---方差分析ANOVA
前言
方差分析(均數(shù)的顯著性檢驗(yàn))
方差分析(Analysis of Variance,簡(jiǎn)稱ANOVA),又稱“變異系數(shù)分析”,是R.A.Fisher發(fā)明的,用于兩個(gè)及兩個(gè)以上樣本均數(shù)差別的顯著性檢驗(yàn)。
1.適用條件
方差分析數(shù)據(jù)必須滿足3個(gè)條件即獨(dú)立、正態(tài),方差齊次性。
---------------------#正態(tài)性檢驗(yàn)#--------------------- #Shapiro-Wilk檢驗(yàn)用來(lái)檢驗(yàn)數(shù)據(jù)是否符合正態(tài)分布,類似于線性回歸的方法一樣,是檢驗(yàn)其于回歸曲線的殘差。 #該方法作者推薦在樣本量很小的時(shí)候使用,比如N<20。但是也有作者推薦在大數(shù)據(jù)集上使用。該作者將這種修改 #后的方法運(yùn)用在R語(yǔ)言的stats包中的shapiro.test函數(shù)中。該檢驗(yàn)原假設(shè)為H0:數(shù)據(jù)集符合正態(tài)分布。 #R語(yǔ)言中的Shapiro-Wilk檢驗(yàn)(W檢驗(yàn)),shapiro.test(x)該函數(shù)只有一個(gè)參數(shù)即數(shù)據(jù)集x。x可以是數(shù)值型向量,允許存在NA #但是非丟失數(shù)據(jù)需要在3-5000內(nèi)。 ##example## #11個(gè)隨機(jī)抽取的樣本的體重(斤)數(shù)據(jù)為:148,154,158,160,161,162,166,170,182,195,236 k<-c(148,154,158,160,161,162,166,170,182,195,236) shapiro.test(k) Shapiro-Wilk normality test data: k W = 0.78881, p-value = 0.006704 ##p=0.0067<-0.05,拒絕原假設(shè),該數(shù)據(jù)不符合正態(tài)分布。 ---------------------#方差齊性檢驗(yàn)#--------------------- #R中最常用的方差齊性檢驗(yàn)(bartlett檢驗(yàn)),bartlett.test()調(diào)用格式為bartlett.test()調(diào)用格式為 #bartlett.test(x,g...)其中,參數(shù)x是數(shù)據(jù)向量或列表(list);g是因子向量,如果x是列表則忽略g,當(dāng)使用數(shù)據(jù)集時(shí),也通過formula調(diào)用函數(shù) ##example## #以multcomp包中的cholesterol數(shù)據(jù)集為例 library(multcomp) head(cholesterol) trt response 1 1time 3.8612 2 1time 10.3868 3 1time 5.9059 4 1time 3.0609 5 1time 7.7204 6 1time 2.7139 bartlett.test(response~trt,data=cholesterol) Bartlett test of homogeneity of variances data: response by trt Bartlett's K-squared = 0.57975, df = 4, p-value = 0.9653 #Bartlett檢驗(yàn)表明五組的方差并沒有顯著不同(p=0.97)
2.分類(按因素分)
單因素方差分析、二因素方差分析和多因素方差分析。(單因素方差分析主要對(duì)因素的主效應(yīng)進(jìn)行分析,而二因素及多因素方差分析除了多組效應(yīng)分析外,還可對(duì)因素間的交互作用進(jìn)行分析。分析交互作用時(shí),觀測(cè)值必須有重復(fù))
3.R實(shí)例
R中的函數(shù)aov()用于方差分析的計(jì)算,其調(diào)用格式為:
aov(formula,data=NULL,projections=FALSE,qr=TRUE,contrasts=NULL,...) #其中的參數(shù)formula表示方差分析的公式,在單因素方差分析中即為X~A;data表示做方差分析的數(shù)據(jù)框; projections為邏輯值,表示是否返回預(yù)測(cè)結(jié)果;qr同樣是邏輯值,表示是否返回QR分解結(jié)果,默認(rèn)為TRUE; contrasts是公式中的一些因子的對(duì)比列表。通過summary()可列出分析表的詳細(xì)結(jié)果。 #詳情參見R語(yǔ)言實(shí)戰(zhàn)(第2版)page:201.
單因素方差分析
---------------------#單因素方差分析#--------------------- #單因素方差分析比較的是分類因子定義的兩個(gè)或多個(gè)組別中的因變量均值。以multcomp包中cholesterol數(shù)據(jù)集為例。 ##正態(tài)性檢驗(yàn) library(multcomp) head(cholesterol) str(cholesterol) shapiro.test(cholesterol$response) Shapiro-Wilk normality test data: cholesterol$response W = 0.97722, p-value = 0.4417 #結(jié)果表明,p=0.4417>0.05,接受原假設(shè),說明數(shù)據(jù)在五個(gè)水平下都是正態(tài)分布的。 ##方差齊性檢驗(yàn) bartlett.test(response~trt,data=cholesterol) Bartlett test of homogeneity of variances data: response by trt Bartlett's K-squared = 0.57975, df = 4, p-value = 0.9653 #結(jié)果表明,p=0.9653,接受原假設(shè),說明數(shù)據(jù)在不同水平下是等方差的。 ##單因素方差分析 fit<-aov(response~trt,data=cholesterol) 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 #結(jié)果表明,5種治療方式間的效果差異非常顯著。 ##多重比較(多重T檢驗(yàn)) #以上單因素方差分析可以得出,五組之間治療效果有顯著差異,但是我們不知道哪種療法與其他療法的不同,多重比較可以解決這個(gè)問題。 #R語(yǔ)言中TukeyHSD()函數(shù)提供了對(duì)各組均值差異的成對(duì)檢驗(yàn)。 TukeyHSD(fit) Tukey multiple comparisons of means 95% family-wise confidence level Fit: aov(formula = response ~ trt, data = cholesterol) $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 #結(jié)果表明,1time和2times的均值差異不顯著(p=0.138),而1time和4times間的差異非常顯著(p<0.01)
一般圖像給的效果會(huì)更加直觀,R中multcomp包中的glht()函數(shù)提供了多重均值比較更為全面的方法。
par(mar=c(5,4,6,2)) tuk<-glht(fit,linfct=mcp(trt="Tukey")) plot(cld(tuk,level=0.05),col="lightgreen")##cld函數(shù)中的level選項(xiàng)設(shè)置了使用的顯著水平0.05. #圖像中,有相同字母的組說明均值差異不顯著。
備注:
1)在單因素方差分析前需要對(duì)數(shù)據(jù)進(jìn)行正態(tài)性和方差齊性檢驗(yàn)。除了以上提及的檢驗(yàn)方法,R中還可以使用Q-Q圖來(lái)檢驗(yàn)正態(tài)性假設(shè)。#詳情參見R語(yǔ)言實(shí)戰(zhàn)(第2版)page:206-207.
2)單因素方差分析的擴(kuò)展為單因素協(xié)方差分析,包含一個(gè)或多個(gè)定量的協(xié)變量。(詳情參見R語(yǔ)言實(shí)戰(zhàn)(第2版)page:208.)
二因素方差分析(雙因素方差分析)
---------------------#二因素方差分析#--------------------- #以基礎(chǔ)安裝包中的ToothGrowth數(shù)據(jù)集為例,60只豚鼠,自變量包括兩種投喂方法(橙汁或VC),不同喂食方法中抗壞血酸含量有 #三種水平,牙齒長(zhǎng)度為因變量,每種處理都被分配10只豚鼠。 head(ToothGrowth) len supp dose 1 4.2 VC 0.5 2 11.5 VC 0.5 3 7.3 VC 0.5 4 5.8 VC 0.5 5 6.4 VC 0.5 6 10.0 VC 0.5 ToothGrowth$dose<-as.factor(ToothGrowth$dose)#將劑量改為factor,而不是數(shù)值型。 #正態(tài)性檢驗(yàn)# shapiro.test(ToothGrowth$len) Shapiro-Wilk normality test data: ToothGrowth$len W = 0.96743, p-value = 0.1091 #結(jié)果顯示,p>0.05,接受原假設(shè),數(shù)據(jù)正態(tài)分布。 #方差齊性檢驗(yàn)# #需要檢驗(yàn)方差在兩個(gè)不同分類標(biāo)準(zhǔn)下方差是否等值。 #檢驗(yàn)牙齒長(zhǎng)度在不同喂食方法水平下方差是否等值 bartlett.test(len~supp,data=ToothGrowth) Bartlett test of homogeneity of variances data: len by supp Bartlett's K-squared = 1.4217, df = 1, p-value = 0.2331 #結(jié)果顯示,p>0.05,接受原假設(shè),在不同喂食方法水平上,牙齒長(zhǎng)度方差等值。 #檢驗(yàn)牙齒長(zhǎng)度在不同劑量水平下方差是否等值 bartlett.test(len~dose,data=ToothGrowth) Bartlett test of homogeneity of variances data: len by dose Bartlett's K-squared = 0.66547, df = 2, p-value = 0.717 #結(jié)果顯示,p>0.717,接受原假設(shè),在不同劑量水平上,牙齒長(zhǎng)度方差等值。 #雙因素方差分析# fitt<-aov(len~supp*dose,data=ToothGrowth) summary(fitt) Df Sum Sq Mean Sq F value Pr(>F) supp 1 205.4 205.4 15.572 0.000231 *** dose 2 2426.4 1213.2 92.000 < 2e-16 *** supp:dose 2 108.3 54.2 4.107 0.021860 * Residuals 54 712.1 13.2 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 #結(jié)果顯示,不同喂食方法以及不同劑量對(duì)豚鼠牙齒生長(zhǎng)影響顯著,且喂食方法和不同劑量之間的交互作用非常顯著。
備注:
1)R仍然用函數(shù)aov()作雙因素方差分析,只需將formula改為x~A+B+A:B或x~A*B的形式即可。(且分析包含了交互作用的方差分析)
2)多因素方差分析和雙因素方差分析過程類似。
關(guān)于“R中如何實(shí)現(xiàn)方差分析ANOVA”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。