SciTech-Mathmatics-Probability+Statistics-VIII-Statistics:Quantifing Uncertainty
ANOCOVA(ANalysis Of COVAriance)
協方差分析原理
ANOCOVA 是一種將RA(迴歸分析) 與 VA(方差分析) 結合的一種分析方法。
用來比較不同Samples的Means(均值), 同時控制一個或多個協變數(即可能影響結果的連續變數)的影響.
多組資料的比較可以用VA(方差分析), 但是如果不同Samples的Baseline本來就不一致,
直接分析測試結果資料, 直接用VA(方差分析)可能存在問題。
這時候就需要使用ANOCOVA(協方差分析)。
協方差分析基本思想是:
- 將不易控制的因素對因變數Y的影響看作是協變數X,
- 建立協變數X與因變數Y的 LR(線性迴歸)關係,
- 利用該LR(線性迴歸)關係將協變數X的值化為相等, 計算因變數Y的修正,
- 後對 因變數Y的修正 的 均數 進行比較。
ANOCOVA 的例子:
- 在研究不同教學方法對學生考試成績的影響時,
學生的初始能力(比如之前的考試成績)也會影響最終成績。
為公平地比較不同教學方法的效果,要去除培訓前成績差異的影響。 - 研究物件分為兩組接受不同治療(如治療組和安慰組),
每組分別在治療前後測量觀察指標(如血壓值),
比較治療前後的血壓值時,需要去除不同研究物件本身血壓值就有差異的影響。
科學研究的ANOCOVA
來源:透過一個簡單例子,通俗講下協方差分析
臨床經常碰到這種設計:研究物件分為兩組, 接受不同治療(如治療組和安慰組),
每組分別在治療後前測量觀察指標(如血壓值). 目的是比較兩種治療方式是否有差異.
這種情況你會怎麼處理呢?
我看過不少國內的文章,他們的做法有這麼幾種:
- 直接比較治療後的兩組指標,如血壓值,用t檢驗比較;
- 先比較治療前兩組的差異,證明無統計學意義,然後再比較治療後兩組的差異;
- 先比較試驗組治療前和治療後差異, 再比較對照組治療前和治療後差異,
如果試驗組治療後和治療前差異更大,說明試驗組更有效。
第 1. 種做法是肯定有問題的,因為它根本不考慮兩組在療前的差異。
- 為什麼有問題呢? 比方說,下面這個簡單的例子:
有甲乙丙3個學生,期末考試成績分別為90、85、80,
如果讓你判斷,你覺得哪個學生更優秀一些(只考慮成績)?
當然,你可以毫不猶豫地說,甲最優秀,因為成績最高。 - 但確實如此嗎?再給你一組資料,
甲乙丙3個人的剛入學時的成績,分別是95、85、60。
這時候誰更優秀呢?你可能要猶豫一下。
雖然甲的期末成績最高,但是相比入學成績而言,他是下降。
丙的期末成績最低,可是相對入學成績而言,他上升了很多。
作為老師,也許他不會評甲最優秀, 而是丙最優秀。因為成績上升很快。
所以,很明顯,我們是不應該只看治療後兩組差異的,這說明不了什麼問題。
第 2. 種做法,比較好一些,起碼透過統計學方法說明兩組治療前無統計學差異。
但是,統計學差異有時未必可靠,跟例數有關的.
如果例數少的話, 即使兩組治療前差別較大, 也是無統計學差異。
所以,也不是很好。
第 3. 種做法,聽起來似乎也有理,但仔細想想。
試驗組的治療後前的差異比對照組的大, 是反映一種真實情況?還要統計學來證實的。
比如, 試驗組的血壓值治療後前對比,降低2mmHg,對照組降低1.8mmHg,
僅從數字來看, 試驗組降低更多, 但有意義?不一定。
比較兩組差異的正確做法, 真正說明兩組的差異,比較好的做法有兩種:
- 倍差法(因為做了兩次差值, 所以叫倍差法):
兩組分別求出服藥後前的血壓值差值, 變成兩組差值的比較, 用t檢驗或方差分析. - ANCOVA(協方差分析), 比較兩組治療後的血壓值, 但以服藥前血壓值作為協變數, 校正其影響.
實際上是比較兩組校正的服藥後血壓值。
第一種方法很簡單, 只是一種思路而已, 仍然是t檢驗或方差分析, 不必多言。
第二種方法是協方差分析,本文主要介紹一下:
協方差分析的思想
大概就是:
把治療前兩組的數值作為一個協變數, 比較兩組治療後差異時, 校正這一協變數。
這樣可以得到校正後的兩組治療後均值, 比較兩組的校正均值。
比如說,a和b兩組治療後均值分別為62和56,
但是校正協變數後, 很可能就變成了59和59,
這時比較兩個校正均值59和59,兩組就沒有統計學差異。
基本概念: 協變數、因變數、自變數
- Dependent Variable(因變數)
因變數是研究時被測量的結果或反應變數。
比如研究教學方法對學生成績影響時,因變數是不同的研究教學方法。 - Independent Variable(自變數)
自變數是研究時被操縱或分類的變數,用於探討其對因變數的影響。
比如研究教學方法對學生成績影響時,自變數是學生之後的成績。 - Covariate(協變數)
協變數是那些可能影響因變數的變數,但不是主要研究物件。
透過控制這些變數, 可以更準確地評估自變數對因變數的影響。
比如研究教學方法對學生成績影響時,協變數是學生之前的成績。
主效應 和 互動效應
- 主效應:
自變數對因變數的直接影響, 不考慮協變數。 - 互動效應:
自變數和協變數之間的互動作用對因變數的影響, - 要求
- 所關注的變數應該是連續的、正態分佈的,各組方差齊性。
各組應該是獨立的(互不相關),
並且應該有足夠的資料(每組有 5 個以上的值)。 - 因變數與協變數之間的迴歸關係必須是線性的。
- 自變數與因變數之間沒有互動作用。
互動作用也可以認為代表斜率, 沒有顯著作用,說明斜率不存在顯著差異。只有當分類變數和連續變數之間沒有顯著的互動作用,才可以進行ANCOVA。
- 所關注的變數應該是連續的、正態分佈的,各組方差齊性。
以協變數為x軸,以因變數為y軸,
如果互動作用顯著,則會出現類似左圖和中圖的情況。
分析策略
- 如果 只有組別變數顯著, 則放棄 協變數。 從模型刪除變數,
這時得到一個方差分析。 - 如果 只有協變數顯著, 則放棄 組別變數。 從模型提取一個變數,
這時得到一個簡單的LR(線性迴歸)結果. - 如果 互動作用顯著,即協變數對因變數的影響因組別的不同而不同.
此時, 需要考慮互動作用對因變數的影響。可以對不同組別分別進行RA(迴歸分析),
以更深入地瞭解協變數在不同組別的效應。
繪製三個Figure
- ANOCOVA Prediction Plot:
繪製三組協變數和因變數的相關性,並進行迴歸。
可以簡單檢視協變數和因變數是否成線性相關關係,
若不成立,則不能進行ANOCOVA分析 - ANOCOVA Coefficients:
展示三組迴歸的係數 - ANOCOVA Test Results:
展示自變數、協變數和自變數與協變數相互作用對因變數的影響,
如果相互作用的p-value<0.05,則說明三組斜率顯著不一,
則不能進行ANOCOVA分析
ANOCOVA Test Results的結果其實等效於:
線性迴歸模型 FinalScore ~ InitialScore * Method
問題
- 協方差分析為什麼要看協變數和組別的相互作用
ANOCOVA假設 協變數 和 因變數 之間的關係在所有Samples(組別)是一致的。
如果協變數在Samples(組別)之間存在顯著的相互作用,
這表示協變數對因變數的影響在不同Samples(組別)之間是不一致的。 - 如何理解 "ANOCOVA建立協變數X與因變數Y的LR(線性迴歸)關係,
利用該回歸關係將協變數X的值化為相等,
計算因變數Y的修正均值,
再對因變數Y的修正均數進行比較。"
這句話可以看下圖:
ANOCOVA是 協變數為x軸,因變數為y軸,對Samples(各組)RA(迴歸分析),
看Samples(各組)因變數隨著協變數的變化是否有顯著差異。
從上圖看到, 當Samples(各組)協變數透過迴歸都相等時, 各組因變數值的差異,
從而計算顯著差異。
❓但是"說計算因變數Y的修正 的 均值", 我沒有搞懂是怎麼計算修正均值的?
是直接LR(線性迴歸)模型套ANOVA就可以計算均值並計算顯著性?
調整均數是對Samples(各組)求協變數的均值,然後得到一個總協變數均值,
根據迴歸關係,得到各組的調整均值公式:
\(\large \overset{-'}{y_{i}} = \overset{-}{y_i}− \beta_{yx(e)} (\overset{-}{x_i}−\overset{-}{x})\)
❓那麼是怎麼根據校正均值進行方差分析的?
暫時不管了
參考
- How to Perform an ANCOVA in Python - GeeksforGeeks
- Chapter 6 Analysis of covariance (ANCOVA) | Workshop 4: Linear models (qcbs.ca)
- ANCOVA using R and Python (with examples and code) (reneshbedre.com)
- 第十章 協方差分析 - Thinkando
- Analysis of Covariance - MATLAB & Simulink - MathWorks 中國
- 透過一個簡單例子,通俗講下協方差分析 - 醫小咖的文章
- Analysis of covariance - Wikipedia