# 示例數據wide formatdata("selfesteem", package = "datarium")selfesteem # 每個個體在三個不同時間段的自尊評分
# 數據轉換為long formatselfesteem <- selfesteem %>% gather(key = "time", value = "score", t1, t2, t3) %>% convert_as_factor(id, time)head(selfesteem)
# 對數據進行描述統計selfesteem %>% group_by(time) %>% get_summary_stats(score, type = "common")
# 數據可視化繪製帶散點的箱線圖ggboxplot(selfesteem, x = "time", y = "score", add = "jitter")圖1|long format selfesteem數據。time為自變量,score為因變量,id為獨一無二的樣本序號。
2.3 Friedman test
rstatix包中friedman_test()用於進行單因素非參數重複測量方差分析
# Friedman testres.fried <- selfesteem %>% friedman_test(score ~ time |id) res.fried # p<0.05,時間點各組間的score差異顯著
# Effect size計算:Kendall's W一致性檢驗,用於檢測Friedman檢驗的效應量。##W=X2/N(K-1),W是Kendall's W值,X2是Friedman檢驗統計值,N是樣品數量(此處為10),k是自變量的分組數(此處t1-3,k=3)。##Kendall'W 係數假定值從0(表示沒有關係)到1(表示完全一致關係)。##Kendall』W採用Cohen的解釋準則:0.1<0.3(小效應)、0.3-<0.5(中度效應)和>=0.5(強效應)。採用Bootstap計算置信區間。?friedman_effsize#edit(friedman_effsize) # 查看和編輯函數selfesteem %>% friedman_effsize(score ~ time |id) # W=0.91,預示著強效應。統計顯著性(statistical significance)表明研究中存在一種效應,而實際顯著性(practical significance)則表明這種效應在現實世界中是有意義的。統計顯著性用p值來表示,而實際顯著性用effect size來表示。effect size即不同處理下的總體均值之間差異的大小,是衡量處理效應大小的指標,表示變量之間的關係或組間差異的實際顯著性,簡稱ES。僅統計顯著性本身可能產生誤導,因為它受樣本大小的影響。增加樣本的數量總是使其更有可能發現一個統計顯著的影響,無論這個影響在現實世界中是多麼的小。相反,ES與樣本大小無關。只使用數據來計算效果大小。ES大意味著一個研究發現具有實際顯著性,而小的ES表明實際意義有限。因此在研究論文中有必要報告ES和置信區間,以表明結果的實際意義。
圖2|Friedman test檢驗結果。p<0.05,時間點各組間的score差異顯著。
圖3|Kendall'W 係數結果。Kendall's W一致性檢驗,用於檢測Friedman檢驗的效應量。
W=X2/N(K-1),W是Kendall's W值,X2是Friedman檢驗統計值,N是樣品數量(此處為10),k是自變量的分組數(此處t1-3,k=3)。Kendall'W 係數假定值從0(表示沒有關係)到1(表示完全一致關係)。Kendall』W採用Cohen的解釋準則:0.1<0.3(小效應)、0.3-<0.5(中度效應)和>=0.5(強效應)。採用Bootstap計算置信區間。W=0.91,預示著強效應。
2.4 多重比較及數據可視化
# 多重比較,Wilcoxon signed-rank tests用於檢測分組兩兩之間的差異是否顯著。##檢測時,數據必須嚴格按照id進行排序,使t1與t2的樣本順序一一對應。pwc <- selfesteem %>% wilcox_test(score ~ time, paired = TRUE, p.adjust.method = "bonferroni")pwc # 不同時間分組兩兩間都差異顯著。
# 數據可視化# Visualization: box plots with p-valuespwc <- pwc %>% add_xy_position(x = "time")?ggboxplot # 查看幫助手冊
## 設置離群值形狀ggboxplot(selfesteem, x = "time", y = "score", add = "point",outlier.shape = 25) + stat_pvalue_manual(pwc, hide.ns = TRUE) + labs( subtitle = get_test_label(res.fried, detailed = TRUE), caption = get_pwc_label(pwc) )
## 顯示均值與標準誤差並隱藏離群值ggboxplot(selfesteem, x = "time", y = "score", add = "mean_se",bxp.errorbar = TRUE,outlier.shape = NA) + stat_pvalue_manual(pwc, hide.ns = TRUE) + labs( subtitle = get_test_label(res.fried, detailed = TRUE), caption = get_pwc_label(pwc) )圖4|Wilcoxon signed-rank檢驗結果。使用bonferroni方法校正p值(p.adj=p x 3)。p<0.05,三個時間點的score,兩兩間都差異顯著。
圖5|單因素非參數重複測量方差分析結果箱型圖。以時間點為橫坐標,score為縱坐標。*表示2組之間差異顯著。圖中添加樣本點,並將離群值的形狀設置為倒三角。
圖6|單因素非參數重複測量方差分析結果箱型圖。以時間點為橫坐標,score為縱坐標。*表示2組之間差異顯著。圖中添加樣本點,均值與誤差棒,並隱藏離群值。
圖7|ggplot2的shape對應數字圖。縱坐標和橫坐標合併的數字表示對應的交叉點shape,如25表示無填充色倒三角。
公眾號後臺回復"Friedman檢驗"獲取全部R代碼。