日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

R语言基础 | 方差分析(2):多因素方差分析(上)

發(fā)布時間:2023/12/31 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 R语言基础 | 方差分析(2):多因素方差分析(上) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

專注系列化高質(zhì)量的R語言教程

推文索引 | 聯(lián)系小編 | 付費合集


當存在兩個及以上的分組變量時,可以使用多因素方差分析(N-way ?ANOVA、Multifactor ANOVA)檢驗各組的樣本均值是否存在顯著差異。本篇主要以雙因素方差分析(Two-way ?ANOVA)為例介紹相關(guān)內(nèi)容。

本篇的目錄如下:

  • 2 多因素方差分析

    • 2.1 示例數(shù)據(jù)

    • 2.2 平衡試驗設(shè)計

    • 2.3 I型方差分析

    • 2.4 交互效應(yīng)

    • 2.5 多因素方差分析

    • 未完待續(xù)

2 多因素方差分析

2.1 示例數(shù)據(jù)

本篇使用兩個示例數(shù)據(jù)。

第一個示例數(shù)據(jù)是來自基礎(chǔ)包datasets的npk:

npk ##????block?N?P?K?yield ##?1??????1?0?1?1??49.5 ##?2??????1?1?1?0??62.8 ##?3??????1?0?0?0??46.8 ##?4??????1?1?0?1??57.0 ##?5??????2?1?0?0??59.8 ##?6??????2?1?1?1??58.5 ##?7??????2?0?0?1??55.5 ##?...

npk共有5個變量:yield表示產(chǎn)量,為觀測值;block為土地編號,取值為1-6,因子類型;N、P、K分別表示氮、磷、鉀的使用情況,均為二分變量。

第二個示例數(shù)據(jù)是由mtcars數(shù)據(jù)集的四個變量組成,記為mpg:

library(dplyr)? mpg?<-?mtcars?%>%select(mpg,?cyl,?gear,?carb)?%>%mutate(cyl?=?factor(cyl),gear?=?factor(gear),carb?=?factor(carb)) mpg ##??????????????????????mpg?cyl?gear?carb ##?Mazda?RX4???????????21.0???6????4????4 ##?Mazda?RX4?Wag???????21.0???6????4????4 ##?Datsun?710??????????22.8???4????4????1 ##?Hornet?4?Drive??????21.4???6????3????1 ##?Hornet?Sportabout???18.7???8????3????2 ##?Valiant?????????????18.1???6????3????1 ##?Duster?360??????????14.3???8????3????4 ##?...
  • 以mpg為觀測變量,cyl、gear、gear為分組變量,它們分別將樣本分為3、3、6組。

  • 當分組數(shù)量在三個及以上時,分組變量應(yīng)為因子類型。

2.2 平衡試驗設(shè)計

參照單因素方差分析的模型形式,可以很自然地推測雙因素方差分析的模型形式。

例2.1:觀察并比較如下兩組模型的結(jié)果

##?npk aov(yield?~?N?+?P,?npk) ##????????????????????????N????????P?Residuals ##?Sum?of?Squares??189.2817???8.4017??678.6817 ##?Deg.?of?Freedom????????1????????1????????21 aov(yield?~?P?+?N,?npk)? ##?Terms: ##????????????????????????P????????N?Residuals ##?Sum?of?Squares????8.4017?189.2817??678.6817 ##?Deg.?of?Freedom????????1????????1????????21##?mpg aov(mpg?~?cyl?+?gear,?mpg)? ##?Terms: ##??????????????????????cyl?????gear?Residuals ##?Sum?of?Squares??824.7846???8.2519??293.0107 ##?Deg.?of?Freedom????????2????????2????????27 aov(mpg?~?gear?+?cyl,?mpg)? ##?Terms: ##?????????????????????gear??????cyl?Residuals ##?Sum?of?Squares??483.2432?349.7933??293.0107 ##?Deg.?of?Freedom????????2????????2????????27

上述兩組模型各包含兩個方差分析,模型形式的區(qū)別僅在于分組變量的順序不同

  • 對于第一組模型(npk)來說,兩個方差分析的結(jié)果完全相同;

  • 對于第二組模型(mpg)來說,cyl和gear變量所對應(yīng)的離差平方和在兩個方差分析中是不同的,但二者之和仍然相同(824.7846 + 8.2519 = 483.2432 + 349.7933 = 833.0365),自由度和組內(nèi)離差平方和(Residuals)也相同。

以上結(jié)果意味著多因素方差分析可能與分組變量順序有關(guān)。實際上,這與樣本分組是否符合平衡試驗設(shè)計(balanced design)有關(guān)。平衡設(shè)計是指,由多個分組變量形成的交叉組所對應(yīng)的樣本數(shù)量完全一致。

對于平衡設(shè)計來說,多因素方差分析的結(jié)果與變量順序無關(guān);而對于非平衡設(shè)計來說,存在三種類型的多因素方差分析:I型、II型和III型,而aov()函數(shù)使用的是I型方差分析,它的結(jié)果與變量順序有關(guān)。

在aov()函數(shù)的幫助文檔中作者寫道:aov()函數(shù)是為平衡設(shè)計準備的,對于非平衡設(shè)計它的結(jié)果很難解釋。

統(tǒng)計兩個示例數(shù)據(jù)的交叉組樣本數(shù)量:

with(npk,?{tapply(yield,?list(N,?P),?length)}) ##???0?1 ##?0?6?6 ##?1?6?6with(mpg,?{tapply(mpg,?list(cyl,?gear),?length)}) ##????3??4?5 ##?4??1??8?2 ##?6??2??4?1 ##?8?12?NA?2

可以看出,npk數(shù)據(jù)的4個交叉組的樣本均為6,屬于平衡設(shè)計;而mpg數(shù)據(jù)的9個交叉組的樣本并不完全一致,并且有一個交叉組沒有樣本(NA),屬于非平衡設(shè)計。

2.3 I型方差分析

對于平衡設(shè)計來說,三種類型的方差分析的結(jié)果一致,因此下文僅針對非平衡設(shè)計的方差分析,示例數(shù)據(jù)為mpg。

例2.2:aov()函數(shù)執(zhí)行的是I型方差分析,使用它運行如下模型

aov(mpg?~?cyl,?mpg) aov(mpg?~?gear,?mpg) aov(mpg?~?cyl?+?gear,?mpg) aov(mpg?~?gear?+?cyl,?mpg)

為了方便比較,我們將模型的離差平方和匯總?cè)缦?#xff1a;

模型形式SS(cyl)SS(gear)SS(Residuals)
cyl824.7846-301.2626
gear-483.2432642.8040
cyl + gear824.78468.2519293.0107
gear + cyl349.7933483.2432293.0107

SS表示離差平方和(Sum of Squares)。

通過比較可以得到如下結(jié)論:

  • 所有模型的離差平方和之和(即總離差平方和)是相等的;

  • 在雙因素方差分析中,分組變量的離差平方和與它的順序有關(guān),其中第一個分組變量的離差平方和與它對應(yīng)的單因素方差分析的結(jié)果相同;

  • 在雙因素方差分析中,cyl和gear的離差平方和與順序無關(guān)。

總離差平方和():

只與觀察變量有關(guān),而與分組變量無關(guān),其計算方法和單因素方差分析完全一致。使用表示樣本標識,表示全體樣本的均值,有

組間離差平方和(和):

這里組間離差平方和由兩部分組成,分別對應(yīng)兩個分組變量的離差平方和,記為、。使用、表示兩個分組變量的水平數(shù),、表示分組標識。

假設(shè)對應(yīng)的是第一個分組變量的離差平方和,我們已經(jīng)知道它和單因素方差分析的結(jié)果一樣:

其中,表示第組的樣本均值。

不易直接計算,但是我們知道它與之和為定值:

因此只要計算出即可反推出。

組內(nèi)離差平方和():

相當于“剩余”部分,在輸出結(jié)果中也使用Residuals標識。方差分析與線性回歸存在內(nèi)在聯(lián)系聯(lián)系,實際就等于線性回歸的殘差平方和。

fit.lm?<-?lm(mpg?~?cyl?+?gear,?mpg) sum(residuals(fit.lm)^2) ##?[1]?293.0107

自由度和F統(tǒng)計量

的自由度為(為樣本總量),、的自由度分別為和,的自由度為。

2.4 交互效應(yīng)

分組變量之間可能存在交互效應(yīng)。

例2.3:比較不含和含有交互項的雙因素方差分析

aov(mpg?~?cyl?+?gear,?mpg)? ##?Terms: ##??????????????????????cyl?????gear?Residuals ##?Sum?of?Squares??824.7846???8.2519??293.0107 ##?Deg.?of?Freedom????????2????????2????????27aov(mpg?~?cyl*gear,?mpg) ##?Terms: ##??????????????????????cyl?????gear?cyl:gear?Residuals ##?Sum?of?Squares??824.7846???8.2519??23.8907??269.1200 ##?Deg.?of?Freedom????????2????????2????????3????????24

在有交互項的情況下,組間離差平方和由三部分組成:、、,其中表示交互項的離差平方和。

可以看出,交互項的出現(xiàn)不影響、、的值。那的值和自由度應(yīng)如何確定呢?

我們依然可以先使用線性回歸求出再反推:

fit2.lm?<-?lm(mpg?~?cyl*gear,?mpg) sum(residuals(fit2.lm)^2) ##?[1]?269.12

不過也可以直接求出、、的和:

其中,表示交叉組的樣本均值。

將交叉組看作是由單個變量分組形成的,也可以使用類似單因素方差分析的方法直接計算:

假設(shè)交叉組的個數(shù)為,則、、的自由度之和為,因此的自由度為。

顯然,交叉組的最大數(shù)目為,在此情況下:

前文已經(jīng)提到,mpg數(shù)據(jù)中有一個交叉組不存在,因此,而對于平衡設(shè)計來說,總是成立的。

例2.4:手動計算和

data?<-?mpg?%>%mutate(mean?=?mean(mpg))?%>%group_by(cyl,?gear)?%>%mutate(mean2?=?mean(mpg))?%>%ungroup()?%>%mutate(SSAB?=?(mean2?-?mean)^2,SSE?=?(mpg?-?mean2)^2)sum(data$SSAB)?-?824.7846?-?8.2519? ##?[1]?23.89069 sum(data$SSE) ##?[1]?269.12

2.5 多因素方差分析

從前文可以看出,即使只有兩個分組變量,I型方差分析的都很難直接計算。那對于多因素方差分析來說該如何計算各個離差平方和呢?下面通過兩個例子進行說明。

例2.5:運行形式最簡單的三因素方差分析

aov(mpg?~?cyl?+?gear?+?carb,?mpg) ##?Terms: ##??????????????????????cyl?????gear?????carb?Residuals ##?Sum?of?Squares??824.7846???8.2519??88.5199??204.4908 ##?Deg.?of?Freedom????????2????????2????????5????????22

cyl的離差平方和:

fit1?<-?lm(mpg?~?cyl,?mpg)? sum((fitted(fit1)?-?mean(mpg$mpg))^2) ##?[1]?824.7846

gear的離差平方和:

fit2?<-?lm(mpg?~?cyl?+?gear,?mpg)? sum((fitted(fit2)?-?mean(mpg$mpg))^2)?-?sum((fitted(fit1)?-?mean(mpg$mpg))^2) ##?[1]?8.251855

carb的離差平方和:

fit3?<-?lm(mpg?~?cyl?+?gear?+?carb,?mpg)? sum((fitted(fit3)?-?mean(mpg$mpg))^2)?-?sum((fitted(fit2)?-?mean(mpg$mpg))^2) ##?[1]?88.5199

Residuals的離差平方和:

sum(residuals(fit3)^2) ##?[1]?204.4908

因此,I型方差分析可以使用逐步回歸的方法計算離差平方和。I型平方和又稱為順序平方和。

例2.6:運行含有交互項的三因素方差分析

aov(mpg?~?cyl*gear?+?carb,?mpg) ##?Terms: ##??????????????????????cyl?????gear?????carb?cyl:gear?Residuals ##?Sum?of?Squares??824.7846???8.2519??88.5199??25.3878??179.1030 ##?Deg.?of?Freedom????????2????????2????????5????????2????????20aov(terms(mpg?~?cyl*gear?+?carb,?keep.order?=?T),?mpg) ##?Terms: ##??????????????????????cyl?????gear?cyl:gear?????carb?Residuals ##?Sum?of?Squares??824.7846???8.2519??23.8907??90.0170??179.1030 ##?Deg.?of?Freedom????????2????????2????????3????????4????????20

默認情況下,交互項會排在所有主效應(yīng)變量之后;而使用terms()函數(shù)可以更改設(shè)置。位置不同會導(dǎo)致離差平方和發(fā)生變化。

兩種情況下cyl:gear的離差平方和:

##?默認情況 fit11?<-?lm(mpg?~?cyl?+?gear?+?carb,?mpg)? fit22?<-?lm(mpg?~?cyl*gear?+?carb,?mpg)? sum((fitted(fit22)?-?mean(mpg$mpg))^2)?-?sum((fitted(fit11)?-?mean(mpg$mpg))^2)? ##?[1]?25.38784##?更改后的情況 fit33?<-?lm(mpg?~?cyl?+?gear,?mpg)? fit44?<-?lm(mpg?~?cyl*gear,?mpg)? sum((fitted(fit44)?-?mean(mpg$mpg))^2)?-?sum((fitted(fit33)?-?mean(mpg$mpg))^2)? ##?[1]?23.89074

正如aov()函數(shù)的幫助文檔所言,非平衡設(shè)計的I型方差分析的結(jié)果很難解釋。學(xué)堂君注意到<醫(yī)學(xué)方>公眾號的一篇推文對其做了非常直觀的解釋,有興趣的讀者可以閱讀:

關(guān)于方差分析,您必須知道的四種類型平方和

總結(jié)

以上是生活随笔為你收集整理的R语言基础 | 方差分析(2):多因素方差分析(上)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。