:::

多組常態分佈資料之差異檢定與事後比較:R的ANOVA與Welch's anova / Parametric Tests for Comparing Many Normal Distribution Groups: ANOVA and Welch's anova in R

image

繼前一篇用的Kruskal–Wallis檢定跟Welch's anova來檢定多組非常態分佈資料之間是否有差異的無母數統計之後,這一篇則是用於常態分佈的多組資料之間差異檢定的有母數統計,也就是大家比較熟悉的ANOVA。雖然ANOVA也可以用SPSS來操作,不過這篇用R腳本來實作,不僅自動進行敘述統計、繪製直方圖與箱型圖,還會根據資料同質性檢定結果選擇使用ANOVA或Welch's ANOVA,操作起來更簡單喔。


R腳本與操作環境:RStudio / R script & Environment: RStudio

2018-01-27_200353

R腳本必須要在R環境中執行,我推薦安裝RStudio這個R環境的IDE編輯器。在安裝RStudio的時候也會一併安裝R環境。而這個R腳本使用了許多套件,在R腳本執行過程中會自動確認並安裝。

此腳本主要改編自EV Nordheim、MK Clayton與BS Yandell所著的An Example of ANOVA using R,後面加上的Welch's anova則是來自於An R Companion for the Handbook of Biological Statistics的One-way Anova,事後多重比較Games-Howell檢定則是來自於RPubs

因為R的版本更新的非常頻繁,你閱讀這篇的時候安裝的不一定是跟我一樣的R 3.4版,可能會有版本差異的問題。若安裝套件時發生了版本不符合的問題,請看Ubuntu中舊版R安裝套件的方法。關於R的版本問題,請看我之前學習R的感想

那麼以下我們就來開始實作看看吧。


實作:多組常態分佈同質性資料之平均數差異檢定 / Practice: Test for difference in mean among many homoscedastic groups

我們先以最常見的三組常態分佈的資料來進行ANOVA分析。

資料格式 / Data format

image

這份資料改編自An Example of ANOVA using R中的例子。這裡面有A、B、C三組資料,我們希望檢測這三組資料之間有沒有差異。我的R腳本只能接受csv格式,第一行欄位必須為group跟value,而資料本身需以逗號(,)隔開。

image

請下載CSV格式,待會我們就用這個檔案來進行ANOVA分析。

執行R腳本 / Excute R script

image

下載好R腳本Parametric Tests for Comparing Many Non-normal Distribution Groups.R之後,請在該檔案上按右鍵,在「開啟檔案」裡面選擇RStudio。

image

在腳本文字的位置按Ctrl + A全選全部的腳本,然後按下上方的「Run」。

image

選擇你要分析的CSV檔案,例如ANOVA example - data.csv

image

第一次執行的時候,因為要安裝大量的R套件,所以會花費大概十分鐘左右的時間。第二次執行的時候,大概只要三十秒左右就可以算完了。如果左下角的console出現了「Finish」,表示分析已經結束。

image

在CSV相同的資料夾裡面會出現三個分析結果的檔案,各別是:

  • 直方圖(histogram):檔案名稱例子為ANOVA example - data_0128-1957_histogram.png
  • 箱型圖(boxplot):檔案名稱例子為ANOVA example - data_0128-1957_boxplot.png
  • 檢定結果:ANOVA example - data_0128-1957_result.txt

以下我們以檢定結果檔案為主,其他兩個統計圖表為輔,用這個來解說ANOVA的分析結果吧。

檢定結果 / Result

在result.txt為後綴的檔案中記錄著分析的過程,以下我就各個段落進行解說:

檔案名稱 / File
### File

C:\data\ANOVA example - data.csv

這是記錄此分析結果是來此於那個CSV檔案。

敘述統計 / Descriptive statistics
### Descriptive statistics

   group n     mean       sd  min   Q1 median    Q3  max
1     A 7 18.61429 1.165373 16.8 17.9   18.8 19.40 20.1
2     B 7 17.65714 1.187234 15.9 16.9   17.7 18.55 19.1
3     C 7 16.84286 1.180194 15.2 16.2   16.7 17.40 18.8

敘述統計會列出各個組別的組別名稱(group)、個數(n)、平均數(mean)、標準差(sd)、最小值(min)、下四分位數(Q1)、中位數(median)、上四分位數(Q3)、最大值(max)。就像我在資料的中心與離度所強調的,在說明敘述統計的時候,最好搭配圖表一起看。

ANOVA example - data_0128-1957_histogram

以histogram.png後綴的檔案是各組的直方圖,注意Y軸為所佔比例,而非資料的個數。從這邊大概可以看得出來C組資料偏小,而A組資料偏大,B組則是介於兩者中間。

ANOVA example - data_0128-1957_boxplot

以boxplot.png後綴的檔案是各組的箱型圖,我們可以看到三組的五數綜合比較。關於箱型圖的閱讀方法,請看用R畫箱型圖。從這邊可以更清楚的看到A、B、C三組的差別,其中A組的下四分位數大於C組的上四分位數,幾乎可以說這兩組有明顯的差異了。

常態性檢定 / Normality test
### Normality test

Group: A, Shapiro-Wilk normality test W = 0.9756555 p-value = 0.9359176
Group: B, Shapiro-Wilk normality test W = 0.9483481 p-value = 0.7146411
Group: C, Shapiro-Wilk normality test W = 0.9878776 p-value = 0.9886119

這裡測試各組的資料分佈是否為常態分佈。根據柴惠敏的建議,若該組的樣本個數小於50,則是使用Shapiro-Wilk常態檢定,檢定統計量為W值;若該組的樣本數在50以上,則是使用Kolmogorov-Smirnov (K-S)常態檢定,檢定統計量為D值。STHDA推薦使用Shapiro-Wilk檢定,因為它的統計檢定力(power)高於Kolmogorov-Smirnov檢定。這邊R腳本會依照該組的樣本個數來自動判斷要使用的檢定法。

這兩個檢定的虛無假設都是該組資料為常態分佈。因此若p值(p-value)在0.05以下,則表示該組資料並非常態分佈。以這個例子來說,三組資料的p值都大於顯著水準0.05,意思是三組資料皆為常態分佈。

大部分做ANOVA分析時都不會特別去檢定資料分佈是否非常態。這個常態性檢定僅供參考即可。

變異數同質性檢定 / Test for Homogeneity of Variance
### Test for Homogeneity of Variance

Levene's Test for Homogeneity of Variance (center = mean)
       Df F value Pr(>F)
group  2  0.0162  0.984
       18              

Data are homoscedastic. Excute ANOVA.

這邊我們使用Levene變異數同質性檢定中無母數檢定的方法來檢定三組的變異數是否相同。請看「Pr(>F)」這一欄的顯著性是否在0.05以上。若在0.05以上使用的是ANOVA,否則使用Welch's anova。

在本例中,Pr(>F)為0.984,大於顯著水準0.05,表示三組資料變異數同質,因此進行ANOVA分析。

值得一提的是,這邊跟我在前一篇Kruskal–Wallis檢定中不太一樣。這裡的Levene變異數同質性檢定的資料中心(center)採用的是平均值(mean),做法跟SPSS相同。而Kruskal–Wallis檢定是無母數檢定,Levene檢定的資料中心採用的是中位數(median)。

單因子變異數分析 / ANOVA
### ANOVA for equal variances

Analysis of Variance Table

Response: value
           Df Sum Sq Mean Sq F value  Pr(>F) 
group      2 11.007  5.5033  3.9683 0.03735 *
Residuals 18 24.963  1.3868                 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Eta squared: 0.3059998

ANOVA檢定統計量為F值(F value),此例的F值為3.9683,顯著性p值要看Pr(>F),本例子中F值的顯著性p值為0.03735,低於顯著水準0.05,表示三組資料的平均數有顯著的差異。

最後的Eta squared是表示分組變項group對於value的影響力,也就是關聯強度。計算方式是用的R的lsr套件的etaSquared函數。關於Eta squared的說明請看我介紹ANOVA的這篇。Eta squared的判斷準則如下:

  • 0.059 > eta squared >= 0.01 低度關聯強度
  • 0.138 > eta squared >= 0.059 中度關聯強度
  • eta squared >= 0.138 高度關聯強度

以本例的0.3059998為例,是屬於高度關聯強度。

Scheffe法事後多重比較檢定 / Scheffe Post Hot test
### Post Hoc Tests

   Posthoc multiple comparisons of means : Scheffe Test
     95% family-wise confidence level

$group
           diff    lwr.ci      upr.ci   pval   
B-A -0.9571429 -2.635501  0.72121521 0.3370   
C-A -1.7714286 -3.449787 -0.09307051 0.0376 * 
C-B -0.8142857 -2.492644  0.86407235 0.4493   

---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

跟我之前介紹ANOVA一樣,我們用Scheffe法來做事後多重比較檢定。下面會列出三個組別A、B與C之間的比較。其中「C-A」組別的差異-1.7714286的顯著性pval為0.0376,低於顯著水準0.05,表示C組跟A組之間有顯著的差異。其中差異值-1.7714286表示前者「C組」小於後者「A組」。

雖然我也想跟前一篇ANOVA一樣做統計檢定力分析(power analysis),不過用R來做的話看起來還得花一番功夫,在這裡還是先打住吧。

這樣我們就做完了ANOVA跟Scheffe事後多重比較囉。


實作:多組常態分佈異質性資料之中位數差異檢定 / Practice: Test for difference in means among many heteroscedastic groups

在我之前介紹ANOVA中,若各組之間的資料違反了同質性檢定,我只有在事後多重比較改用了Dunnett T3檢定。但後來看Salvatore S. Mangiafico的建議是可以改用Welch's anova,以及Jim Frost推薦使用適合Welch's anova的Games-Howell事後多重比較。以下我們就來看看當各組資料違反同質性檢定時是會如何分析吧。

異質性的資料 / Heteroscedastic data

image

這份資料是來自Jean and Alexander Heard Library的Conducting an ANOVA using RStudio中的CSV file with red, green, and blue ANOVA data。該教學也是用R來做ANOVA分析,但是其實它的三組資料red、green以及blue違反了變異數同質性檢定,因此照該網頁的教學來分析其實不太適合,但正好給我們作為Welch's anova的例子。

image

請下載CSV格式,待會我們就用這個檔案來進行Welch's anova分析。

執行R腳本 / Excute R script

image

操作方法跟上述相同,在此我們就不贅述。若順利分析完成,最後一樣可以獲得三個檔案:

  • 直方圖:color-anova-example - data_0128-2115_histogram.png
  • 箱型圖:color-anova-example - data_0128-2115_boxplot.png
  • 檢定結果:color-anova-example - data_0128-2115_result.txt

以下我們依然是來從檢定結果檔案來說明分析的結果吧。

檢定結果 / Result

在result.txt為後綴的檔案中記錄著分析的過程,以下我就各個段落進行解說:

檔案名稱 / File
### File

C:\data\color-anova-example - data.csv

這是本次分析的檔案。

敘述統計 / Descriptive statistics
### Descriptive statistics

   group  n      mean       sd  min    Q1 median    Q3  max
1   red 24  2.491667 1.546350 0.80 1.405    2.0  3.40  6.7
2 green 24  8.530417 6.977992 1.00 4.000    6.4  9.85 27.2
3  blue 24 10.632083 5.976309 5.27 6.600    8.0 11.75 25.6

敘述統計中可以看到這次的資料有三組「red」、「green」跟「blue」,三組的平均數(mean)、標準差(sd)都不一樣,可以想象他們應該會有很大的差異。

color-anova-example - data_0128-2115_histogram

在以histogram.png後綴的直方圖裡面可以看到三組的分佈。red較為集中,而green跟blue都非常分散,green甚至有較明顯的雙峰分佈。

color-anova-example - data_0128-2115_boxplot

在以boxplot.png後綴的箱型圖裡面可以清楚比較三組的分佈。可以看到red明顯的小於blue,而green分佈較廣,介於兩組之間。

常態性檢定 / Normality test
### Normality test

Group: red, Shapiro-Wilk normality test W = 0.865417 p-value = 0.004283695
Group: green, Shapiro-Wilk normality test W = 0.8609989 p-value = 0.003522477
Group: blue, Shapiro-Wilk normality test W = 0.7905905 p-value = 0.0002075442

在常態性檢定中,因為三組資料的樣本個數都小於50,因此使用Shapiro-Wilk檢定。而這三組的p值都小於顯著水準0.05,表示三組資料皆非常態分佈。

一般來說,這時候應該改用Kruskal–Wallis檢定,但因為下面可以看到這三組也違反了同質性假設,因此仍會用Welch's anova來做分析。

變異數同質性檢定 / Test for Homogeneity of Variance
### Test for Homogeneity of Variance

Levene's Test for Homogeneity of Variance (center = mean)
       Df F value    Pr(>F)   
group  2  9.9731 0.0001568 ***
       69                     
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Data are heteroscedastic. Excute Welch's anova.

在Levene檢定中,Pr(>F)的顯著性p值0.0001568小於顯著水準0.05,表示各組資料違反了變異數同質性的假設,為異質性,因此接下來將使用Welch's anova進行分析。

Welch's anova
### Welch’s anova for unequal variances

   One-way analysis of means (not assuming equal variances)

data:  value and group
F = 27.526, num df = 2.000, denom df = 33.916, p-value = 7.898e-08

在Welch's anova中檢定的是各組的平均數是否相同,檢定統計量F值為27.526,而顯著性p值(p-value)為7.898e-08,有e表示是科學記號格式,意思是7.898乘以-10的8次方,也就是非常非常小的小數,低於顯著水準0.05,表示三組資料之間有顯著差異。但到底這三組中誰大誰小,則還要用事後多重比較來分析。

Games-Howell事後多重比較 / Games-Howell Post-Hoc Test
### Games-Howell Post-Hoc Test

### Oneway Anova for y=value and x=group (groups: red, green, blue)

Omega squared: 95% CI = [.12; .44], point estimate = .28
Eta Squared: 95% CI = [.14; .42], point estimate = .3

                                     SS Df    MS     F     p
Between groups (error + effect)  857.2  2 428.6 14.81 <.001
Within groups (error only)      1996.4 69 28.93           


### Post hoc test: games-howell

            diff ci.lo ci.hi    t    df     p
green-red  6.04  2.41  9.67 4.14 25.25  .001
blue-red   8.14  5.01 11.27 6.46 26.07 <.001
blue-green 2.10 -2.44  6.65 1.12 44.94  .507

Eta Squared的點估計值為0.3,表示高度關聯強度。然後我們看「### Post hoc test: games-howell」以下的部分,可以看到「red」、「green」、「blue」三組的比較結果。

在「green-red」的比較中,p值為0.001,小於顯著水準0.05,而差異值diff為6.04,表示前組「green」顯著大於後組「red」。同樣的,「blue-red」比較結果也顯示前組「blue」顯著大於後組「red」。但是「blue-green」比較結果沒有顯著差異。

這樣子就完成了Welch's anova跟Games-Howell事後多重比較囉。


結語 / Conclusion

本篇以R腳本實作了ANOVA跟Scheffe事後多重比較以及Welch's anova跟Games-Howell事後多重比較這兩套有母數統計方法,可以用來分析常態分佈的多組資料之間是否有顯著差異。ANOVA分析方法是相當常用的統計檢定技術,這套R腳本應該可以大幅簡化分析時的操作。

image

本篇的分析全部都可以在SPSS裡面實作,交互比較來看,R腳本的結果與SPSS計算結果完全相同。但是SPSS的群組必須用數字,在資料整理上比較麻煩,而各種操作也挺複雜的。現在寫成R腳本之後,未來分析就可以簡化許多囉。


這篇多組常態分佈資料的差異檢定的整理就到這裡為止。我本身並非統計專業,只是因為分析資料時會用到,所以看文獻來將它整理一下。如果有什麼統計上的建議,歡迎在下面留言提出指教。如果你覺得我整理的不錯的話,請幫我在AddThis分享工具按讚、將這篇分享到Facebook等社群媒體吧!感謝你的耐心閱讀,讓我們下一篇見。

總共24 則留言 ( 我要發問 , 隱藏留言 顯示留言 )

  1. 如果要用RScript執行的話,那就要多加入一個指令才能安裝套件:
    options(repos = "https://cran.rstudio.com")

    來源:https://stackoverflow.com/a/45116122/6645399

    回覆刪除
  2. RStudio預設載入了很多常用的函數,這些函數大多都在methods套件裡面
    請使用以下語法來載入他們:
    if(!require(methods)){install.packages("methods")}

    methods套件的說明
    https://www.rdocumentation.org/packages/methods/versions/3.4.3

    回覆刪除
  3. R語言裡面不能在雙引號"裡面使用單引號',例如以下是錯誤的
    cat("\n### Welch’s anova for unequal variances", out, file=output_file_path, sep="\n", append=TRUE)

    但是可以在單引號'裡面使用脫逸的單引號\' ,以下是正確的
    cat('\n### Welch\'s anova for unequal variances', out, file=output_file_path, sep="\n", append=TRUE)

    實在是常常卡在 R的眉眉角角orz

    回覆刪除
  4. 回覆
    1. 有沒有辦法進階成同時分析多組變數呢?
      結果呈現為value1, value2.....
      圖片的話改存為pdf?

      刪除
    2. To 陳昊,

      我看不太懂你的意思...
      是批次做多組比較的意思嗎?
      例如我有A-B-C要比較,還有 甲-乙-丙 要比較的意思嗎?
      這個不能分別執行兩次即可...?

      如果會寫R的話,也可以用程式去抓資料夾裡面的資料進行分析

      另外圖片存成PDF的部分
      https://www.stat.berkeley.edu/~paciorek/computingTips/Saving_graphics_as_pdf_file.html
      看起來可以用這個語法來輸出成PDF
      pdf(file.pdf,width=6,height=4,paper='special')

      這個就請自行研究與修改吧
      開放原始碼就是可以自己動手做

      刪除
  5. 這個腳本實在太好用了,非常的感謝!!
    整個脈絡跟教學也寫得很清楚,
    讓我這幾天花了不少時間泡在貴Blog
    很有收穫,再次感謝!!

    回覆刪除
    回覆
    1. To 黑凱文,

      不客氣,有問題也可以提出,我能回答就幫忙回答。

      刪除
  6. 作者已經移除這則留言。

    回覆刪除
    回覆
    1. To LukeLi,

      如果是在R Studio裡面執行的話,應該是不會有pause吧?

      你是用我寫的另一篇「直接執行R腳本:RScript Caller」來執行R腳本嗎?
      http://blog.pulipuli.info/2018/02/rrscript-caller-runing-r-script.html

      那個pause會保留現在的視窗
      沒有pause的話,執行結果會直接關閉,不方便查看結果

      如果想要關閉這個功能的話,需要修改RScript-Caller.au3的程式碼並用AutoIT3重新編譯了
      https://github.com/pulipulichen/RScript-Caller

      刪除
    2. 此外,關於R腳本執行器的RScript Caller的問題,請移到那篇去留言吧
      http://blog.pulipuli.info/2018/02/rrscript-caller-runing-r-script.html#comment-form-iframe

      刪除
  7. 布丁大您好,這篇教學文獲益良多,讓我從一個R語言與程式新手,從無到有學會了怎麼利用R進行統計分析。但一直有個問題困擾我許久,R語言的多重比較除了可以星號標記,也可以用字母標記顯著性差異,就是可以將資料自動以abc作分群,如本篇文章ABC三組資料就會呈現A (a)、B (ab)、C (b),不過經過了許多錯誤的嘗試,還是不得門而入,只好厚著臉皮請教,是在哪一段加入什麼樣的指令,才可以實現這樣的功能,希望布丁大能指點迷津,萬分拜託。

    回覆刪除
    回覆
    1. 您好,

      不好意思,我看不太懂您的問題。

      首先來看一下這篇使用的資料:
      https://docs.google.com/spreadsheets/d/1AhyrkWGB4pfV1NVRx4IRUbDqZd2amfW_gWvb9y4xteU/edit?usp=sharing
      打開試算表,你可以注意到group有A、B、C三種。
      這之中並沒有什麼R自動分群的操作。

      所以我搞不太懂您想問的是什麼問題。

      刪除
    2. 不好意思,我說明的沒有很清楚。
      例如在本篇教學使用Scheffe法事後多重比較檢定,分析結果如下:
      $group
      diff lwr.ci upr.ci pval

      B-A -0.9571429 -2.635501 0.72121521 0.3370
      C-A -1.7714286 -3.449787 -0.09307051 0.0376 *
      C-B -0.8142857 -2.492644 0.86407235 0.4493

      但有些研究報告的圖表會採用字母標記顯著性差異,可以呈現下面的結果:
      group n mean
      1 A 7 18.61429 a
      2 B 7 17.65714 ab
      3 C 7 16.84286 b

      我參考網址:https://www.twblogs.net/a/5b7cfabf2b71770a43dd6211
      關鍵指令好像是$groups
      可是不知道要加在哪裡
      不知道上面的說明有沒有比較詳細一點
      謝謝

      刪除
    3. 您好,

      不,我還是看不懂你的問題。
      看不懂的點有兩個:

      1. 「關鍵指令好像是$groups,可是不知道要加在哪裡」

      https://www.twblogs.net/a/5b7cfabf2b71770a43dd6211
      我看他的程式碼裡面一直有出現group

      例如:
      > tmp <- aov(value ~ group, tarD)

      或是
      > res <- LSD.test(tmp, 'group', p.adj = 'bonferroni')
      > print(res$groups)

      或是
      > TukeyHSD(tmp)
      Tukey multiple comparisons of means
      95% family-wise confidence level

      Fit: aov(formula = value ~ group, data = tarD)

      https://pulipulichen.github.io/blog-pulipuli-info-data-2018/01/Parametric%20Tests%20for%20Comparing%20Many%20Non-normal%20Distribution%20Groups.R
      然後我的程式碼裡面也有出現很多次group

      例如
      out <- capture.output(oneway.test(value ~ group, data=Data, var.equal=FALSE))

      程式碼裡面有著各種group,可是你不知道要把group加在哪裡?

      -------------

      2. 「顯著性差異裡面有a b」

      我也不知道你說的ab是指什麼

      一般來說,顯著程度要用p值表示。
      如果超過顯著水準alpha,那會標示顯著差異。
      在SPSS裡面常用的是*。

      你會認為會用字母標註顯著性差異的資料來源是什麼?

      刪除
    4. 例如本篇的範例有A、B、C三組資料,使用Scheffe法事後多重比較檢定,結果顯示:

      diff lwr.ci upr.ci pval
      B-A -0.9571429 -2.635501 0.72121521 0.3370
      C-A -1.7714286 -3.449787 -0.09307051 0.0376 *
      C-B -0.8142857 -2.492644 0.86407235 0.4493

      這代表A資料與C資料有顯著差異,A資料與B資料或B資料與C資料無顯著差異。

      如果採用字母標記顯著性差異,會將資料平均值最大者給予a,然後依序給b,c等小寫字母做區別,例如下面的圖表:
      資料 平均值
      A 18.61429 a
      B 17.65714 ab
      C 16.84286 b
      A資料跟B資料都有a,代表兩者無顯著差異。
      B資料與C資料都有b,代表兩者無顯著差異。
      但A資料與C資料沒有重複的字母,代表兩者有顯著差異。

      這樣方便讀者可以快速知道哪個資料有最高的平均與其資料間顯著差異。
      我目前遇到的問題就是希望R可以顯示這樣的圖表,
      謝謝。

      刪除
    5. 您好,

      您有試著先照他的程式碼跑跑看嗎?
      結果如何?

      刪除
    6. 照原本的程式碼跑是沒問題的,不過原本程式碼只會用*標誌資料間的顯著差異,因此還必須用人工方式判讀順序並標上小寫英文字母。

      請問下面這個程式碼:
      lsd.result<- capture.output(PostHocTest(aov.result, method="lsd"))
      PostHocTest可以改成LSD.test,
      因為我查詢別人用LSD.test都可以得到我想要的結果,
      不好意思,一直打擾。

      刪除
    7. 您好,

      我沒研究過...您可以自己改改看?

      刪除
    8. 好的,
      布丁大,非常感謝您。

      刪除
  8. 您好!真的很感謝你想了這些R教學,但目前在運行此篇討論的檢定時,遇到了一個安裝套件錯誤的問題,如下
    Warning message:
    In library(package, lib.loc = lib.loc, character.only = TRUE, logical.return = TRUE, :
    there is no package called ‘userfriendlyscience’

    userfriendlyscience近期似乎是已被刪除,不曉得有沒有辦法可以解決,我有到處爬文,但還是無法有效解決,因此統計結果就仍然缺少了三組間兩兩相比的結果,只進行到這部分
    Data are heteroscedastic. Excute Welch's anova.

    ### Welch's anova for unequal variances

    One-way analysis of means (not assuming equal variances)

    data: value and group
    F = 6.162, num df = 2.000, denom df = 26.152, p-value = 0.006417

    不曉得我後續應該怎麼處理呢🥹

    回覆刪除
    回覆
    1. To Chelsea,

      1. 去Google
      there is no package called ‘userfriendlyscience’

      2. 找到StackOverflow的建議
      https://stackoverflow.com/questions/51033614/cant-install-package-userfriendlyscience

      3. 解答
      devtools::install_github("matherion/userfriendlyscience", dependencies=TRUE)

      因為R版本相依的問題太嚴重了,我之後會傾向包裝成Docker來分析。

      刪除