統計分析

Bootstrap 中介效果:用 PROCESS macro 跑比 Baron & Kenny 更準

我指導過不少論文,有一個問題學生最常問:「老師,我用 Baron & Kenny 四步驟做中介分析,夠嗎?」

我的回答通常是:「在教育、心理、管理等領域,bootstrap 間接效果檢驗已經非常普遍,很多期刊和審稿人會期待看到。如果你還只用四步驟,很可能被要求補做。」

這篇從為什麼要改、怎麼跑、怎麼報告,一步一步說清楚。

先釐清一個學生最常有的誤解:中介分析不是在問「X 對 Y 還有沒有影響」,而是在問「X 是否透過 M 影響 Y」。 這個方向搞清楚,後面的邏輯才會通。

Baron & Kenny 四步驟,問題出在哪?

Baron & Kenny(1986)的四步驟中介檢驗,被引用超過 40,000 次,是教科書裡最常見的方法:

  1. X → Y 顯著(總效果 c path)
  2. X → M 顯著(a path)
  3. M → Y 顯著(b path,控制 X)
  4. 加入 M 後,X → Y 的效果減小或不顯著(中介成立)

這個方法的根本限制是:它用逐步顯著性來推論中介,而不是直接測試間接效果(indirect effect = a × b)的大小。

問題在於:a 顯著、b 顯著,不代表 a × b 顯著。反過來,a 或 b 個別不顯著,但 a × b 可能仍然顯著。這不是邏輯問題,是統計問題。

Sobel test 試圖直接測試 a × b,但它假設間接效果的抽樣分佈是常態的。而現實中,間接效果的分配往往是偏斜的(skewed),因此 Sobel test 在小樣本或中等樣本下容易過於保守、統計力不足,導致本來存在的間接效果被漏掉(Type II error)。

⚠️ 容易犯錯的地方:很多學生看到「X → Y 不顯著」就直接放棄做中介分析。但現代中介分析的觀點是:total effect 不顯著,仍然可能存在顯著的間接效果。X 可能透過 M 正向影響 Y,同時又有另一條路徑直接負向影響 Y,兩者抵消讓總效果看起來不顯著,但中介機制確實存在。

Bootstrap 的邏輯是什麼?

Bootstrap 不依賴間接效果分配是常態的假設,而是直接從你的資料出發,用重複抽樣建立信賴區間。邏輯如下:

  1. 從原始樣本中,重複有放回地隨機抽樣(通常 5000 次)
  2. 每一次都計算間接效果 a × b
  3. 把 5000 個 a × b 的值排序,取第 2.5 百分位和第 97.5 百分位,作為 95% 信賴區間(BootCI)
  4. 如果 95% BootCI 不包含 0 → 間接效果顯著

相較於 Sobel test,bootstrap 不依賴間接效果常態分配假設,更適合處理偏斜的間接效果分配,通常也有較佳的統計力。方法學文獻普遍建議以 bootstrap 信賴區間作為間接效果的主要檢驗方式,許多期刊也明確期待看到這種做法。

⚠️ 一個細節:PROCESS macro 提供兩種 bootstrap CI:percentile CI(直接取百分位)和 bias-corrected and accelerated CI(BCa,修正偏誤)。一般情況下 percentile CI 已經夠用,但如果間接效果分配明顯偏斜,BCa 更準確。PROCESS 預設是 percentile,若要改成 BCa 可在選項中設定。在論文裡報告時,說明你用的是哪種。

用 PROCESS macro 跑 Bootstrap 中介

Hayes 的 PROCESS macro 是目前最廣泛使用的工具,免費,支援 SPSS 和 SAS。

安裝:processmacro.org

Bootstrap 中介效果:用 PROCESS macro 跑比 Baron & Kenny 更準 Read More »

CFA 實作入門:驗證性因素分析步驟與常見錯誤

學生拿著 EFA 的結果來找我,說:「老師,我因素分析跑完了,接下來要跑 CFA 嗎?」

我問:「你為什麼要跑 CFA?」

他愣了一下:「就是…驗證一下?」

這個回答讓我知道,他還沒弄清楚 CFA 是什麼。這也是我想寫這篇的原因——CFA 的概念不難,但實作起來每個步驟都有人反覆在同樣的地方摔倒。

先講一個核心提醒:CFA 不是在證明你的量表一定正確,而是在檢驗你的理論模型是否站得住。 學生最常錯的,不是不會跑,而是把統計決策和理論論證分開了——審稿人最常抓的,也正是這個斷裂。

CFA 是什麼?跟 EFA 有什麼不同?

探索性因素分析(EFA)是在「不確定結構」的情況下使用的——你不確定有幾個因素、哪些題目應該歸在一起,所以讓資料自己告訴你。

驗證性因素分析(CFA)完全相反。你已經有一個明確的理論模型,然後用資料去驗證這個結構跟實際資料的配適程度。

CFA 的前提是:你有理論依據。 最常見的誤用是先跑 EFA 找出因素結構,再用同一份資料跑 CFA「驗證」——你用資料找出一個結構,再用同一份資料確認它,這叫過度擬合,不叫驗證。我看過不少論文這樣做,審稿意見也常常在這裡被抓到。

CFA 實作五步驟

驗證性因素分析 CFA 實作流程
CFA 實作流程與常見錯誤提醒

步驟一:建立理論模型

在正式跑分析之前,先把測量模型畫在紙上。你需要清楚指定:幾個潛在因素、每個因素對應哪些題項、因素之間是否允許相關、有沒有 cross-loading。

這個步驟很多學生跳過,直接打開 AMOS 開始畫。但跳過這步的學生,在後面遇到問題的時候,通常不知道問題出在模型設定還是資料本身。先把模型畫在紙上,思路會清楚很多。

在畫模型之前,我會要求學生逐題問自己:「這一題為什麼只能屬於這個因素,不屬於別的?」 這個問題問得清楚,後面很多麻煩就不會出現。

容易犯錯的地方:

  • 每個因素的題項數不夠。 我常看到學生把一個因素只放兩題,說「文獻原版就是這樣」。問題是兩個題項的因素在統計上無法識別(just-identified),連配適度指標都算不出來。最少要三題,建議四題以上。如果原始量表某個分量表真的只有兩題,需要在方法段說明並討論限制。
  • 跨文化量表直接套用原版因素結構。 學生拿英文量表翻成中文,就直接假設結構不變。翻譯後的題項語意可能已經不同,嚴格來說應該先用新的資料跑 EFA 確認結構,或至少在論文裡說明這個限制。
  • 構念邊界不清。 審稿人最常抓的是:某些題項文字看起來同時可屬於兩個因素,前面不先處理,後面 MI 和 cross-loading 會一直爆。

步驟二:設定模型規格

在 AMOS 裡,你在圖形介面畫橢圓(潛在因素)和方框(題項),用箭頭連起來。在 R lavaan 裡,用 =~ 語法定義:

f1 =~ q1 + q2 + q3 + q4
f2 =~ q5 + q6 + q7 + q8
f3 =~ q9 + q10 + q11 + q12

模型畫完還有一件必須做的事:固定因子尺度。 潛在因素本身沒有測量單位,需要人為固定一個尺度,模型才能估計。兩種做法:

  • 固定一個負荷量為 1(marker variable): AMOS 和 lavaan 預設。每個因素的第一個題項路徑固定為 1。
  • 固定潛在因素的變異量為 1: 讓所有負荷量都自由估計,適合要比較不同題項貢獻時。lavaan 語法:std.lv

CFA 實作入門:驗證性因素分析步驟與常見錯誤 Read More »

前後測統計方法選擇:常態假設怎麼看?

「老師,我跑完前後測,用 paired t-test 對嗎?」

這是我最常聽到的一句話——不是因為學生懶,而是因為沒有人告訴他們,方法選擇其實有一個清楚的判斷邏輯。

選哪種方法?兩個關鍵問題

前後測的統計方法,取決於兩件事:

  1. 你的資料是否符合常態分佈假設?
  2. 你有幾個時間點要比較?

這兩個問題決定了一切。

前後測統計方法選擇流程

四種情境與對應方法

常態 + 2個時間點(前測、後測)→ Paired t-test(配對樣本 t 檢定)

常態 + 3個以上時間點(前測、後測1、後測2……)→ Repeated-measures ANOVA(重複量數變異數分析)

非常態 + 2個時間點Wilcoxon signed-rank test

非常態 + 3個以上時間點Friedman test

怎麼確認常態假設?

很多人直接跑 Kolmogorov-Smirnov(K-S)檢定,但這是個常見錯誤:K-S 在樣本大的時候幾乎一定拒絕常態假設,讓你誤以為資料不符合常態分佈。

建議的做法:

  • 樣本數 < 50:使用 Shapiro-Wilk 檢定
  • 樣本數 ≥ 50:用 Q-Q Plot 加上 Skewness / Kurtosis 目視判斷

⚠️ 就算常態假設輕微違反,樣本數 > 30 時,t-test 仍然足夠穩健,不一定要換成非參數方法。

選定方法之後:怎麼呈現前後測的差異?

確定用哪種統計方法後,還有一個問題:你要用「差值」直接分析,還是用統計控制的方式?這涉及兩種常見的前後測分析策略:

  • 進步分數(Gain scores):後測分數 − 前測分數,直接拿差值去分析
  • 殘餘改變分數(Residualized change score):用迴歸控制前測後,取後測的殘差,更能排除前測水準的影響

這兩種做法各有適用情境,詳細說明請參考延伸閱讀。

延伸閱讀

如果有問題,歡迎留言。

更新記錄:2026-03 新建,整合常態假設判斷與方法選擇邏輯。

前後測統計方法選擇:常態假設怎麼看? Read More »

Stata: Anova的pairwise comparison 多重比較

在之前的文章提過什麼是多重比較,這是在作完regression或anova之後,針對一個categorical variable進行比較。

舉具體一點的例子來說。如果你有一個categorical variable叫condition,是你的實驗情況。0是對照組,1是實驗1,2是實驗2,3是實驗3。

如果你用anova分析,你會先分析出有組間差異,這是主效應 (main effect)。但是具體是哪兩組之間有差異,還必須進一步作分析才知道。如果你沒有特定的理論依據,來針對哪幾組作比較,那你必須作多重比較 (multiple comparisons) 來知道哪兩組存在差異。

在Stata裡面,作多重比較很容易,只要在跑完anova之後,可以直接用oneway的option來作事後比較

Stata: Anova的pairwise comparison 多重比較 Read More »

Scroll to Top