本文轉(zhuǎn)載自統(tǒng)計之都,文章翻譯自 Jonas Kristoffer Lindel?v 的 Common statistical tests are linear models (or: how to teach stats),翻譯工作已獲得原作授權(quán)。本翻譯工作首發(fā)于統(tǒng)計之都網(wǎng)站和微信公眾號上。
7 比率:卡方檢驗是對數(shù)線性模型
# Data in long formatD <- data.frame(
mood = c('happy', 'sad', 'meh'),
counts = c(60, 90, 70)
)# Dummy coding for the linear model
D$mood_happy <- ifelse(D$mood == 'happy', 1, 0)
D$mood_sad <- ifelse(D$mood == 'sad', 1, 0)
# Built-in test
a <- chisq.test(D$counts)
# As log-linear model, comparing to an intercept-only model
full <- glm(counts ~ 1 + mood_happy + mood_sad, data = D, family = poisson())
null <- glm(counts ~ 1, data = D, family = poisson())
b <- anova(null, full, test = 'Rao')
# Note: glm can also do the dummy coding for you:
c <- glm(counts ~ mood, data = D, family = poisson())
anova(..., test = 'Rao')
表示用 Rao 得分 檢驗,又稱為拉格朗日乘子檢驗(Lagrange Multiplier test,LM test)來計算 p 值。當然也可以使用 test='Chisq'
或 test='LRT'
,它們計算近似的 p 值。你可能會認為我們在這里作弊了,偷偷地對卡方模型進行后續(xù)處理,實際上,anova
僅僅指定了 p 值的計算方式,內(nèi)部對數(shù)線性模型仍然發(fā)生在 glm
中。binom.test
。這個樣本量比通常情況要更大,所以我認為這不是經(jīng)驗準則,也不會在此進一步探索。lm
函數(shù)了。我們需要一些“長”格式的數(shù)據(jù),并且需要保存為表格格式,才能作為 chisq.test 的輸入:
# Contingency data in long format for linear model
D <- data.frame(
mood = c('happy', 'happy', 'meh', 'meh', 'sad', 'sad'),
sex = c('male', 'female', 'male', 'female', 'male', 'female'),
Freq = c(100, 70, 30, 32, 110, 120)
)
# ... and as table for chisq.test
D_table <- D %>%
tidyr::spread(key = mood, value = Freq) %>% # Mood to columns
select(-sex) %>% # Remove sex column
as.matrix()
# Dummy coding of D for linear model (skipping mood=='sad' and gender=='female')
# We could also use model.matrix(D$Freq~D$mood*D$sex)
D$mood_happy <- ifelse(D$mood == 'happy', 1, 0)
D$mood_meh <- ifelse(D$mood == 'meh', 1, 0)
D$sex_male <- ifelse(D$sex == 'male', 1, 0)
# Built-in chi-square. It requires matrix format.
a <- chisq.test(D_table)
# Using glm to do a log-linear model, we get identical results when testing the interaction term:
full <- glm(Freq ~ 1 + mood_happy + mood_meh + sex_male +
mood_happy * sex_male + mood_meh * sex_male, data = D, family = poisson())
null <- glm(Freq ~ 1 + mood_happy + mood_meh + sex_male, data = D, family = poisson())
b <- anova(null, full, test = 'Rao') # Could also use test='LRT' or test='Chisq'
# Note: let glm do the dummy coding for you
full <- glm(Freq ~ mood * sex, family = poisson(), data = D)
c <- anova(full, test = 'Rao')
# Note: even simpler syntax using MASS:loglm ('log-linear model')
d <- MASS::loglm(Freq ~ mood + sex, D)
Cross Validated 網(wǎng)站上,我的原始想法。
https://stats.stackexchange.com/questions/303269/common-statistical-tests-as-linear-models
對于“非參”檢驗,我之前提出的疑問和有用的答案。
https://stats.stackexchange.com/questions/210529/are-parametric-tests-on-rank-transformed-data-equivalent-to-non-parametric-test
StackOverflow 網(wǎng)站上,關(guān)于 t 檢驗和方差分析的問題和回答。
https://stats.stackexchange.com/questions/59047/how-are-regression-the-t-test-and-the-anova-all-versions-of-the-general-linear
Christoph Scheepers 的幻燈片,介紹了卡方檢驗如何被理解為對數(shù)線性模型。
https://uni-tuebingen.de/fileadmin/Uni_Tuebingen/SFB/SFB_833/A_Bereich/A1/Christoph_Scheepers_-_Statistikworkshop.pdf
Philip M. Alday 的筆記,里面包括了卡方、二項、多項、泊松分布作為對數(shù)線性模型和 logistic 模型的理解。文中介紹的“等價性”沒有我在本文展示的那么精確,因此我沒有在本文詳細介紹。然而,它們對理解這些檢驗是有幫助的!
https://rpubs.com/palday/glm-test
Kristoffer Magnusson 的文章使用 lme4::lmer
混合模型( mixed model )介紹了 RM-ANOVA 和增長模型( growth model )。
https://rpsychologist.com/r-guide-longitudinal-lme-lmer
Thom Baguley 的文章介紹了 Friedman 檢驗。這篇文章實際上啟發(fā)了我開始思考“非參”檢驗的線性模型等價形式,而且最終推動我寫下了本文章。
https://seriousstats.wordpress.com/2012/02/14/friedman/
Russ Poldrack 的開源書籍 'Statistical Thinking for the 21st century'(從關(guān)于建模的第 5 章開始)
http://statsthinking21.org/fitting-models-to-data.html
Jeff Rouder 的課程筆記,介紹了僅使用 R^2 和 BIC 來對比模型。它避開了所有關(guān)于 p 值、F 值等等的繁瑣問題。完整的材料和幻燈片。
https://jeffrouder.blogspot.com/2019/03/teaching-undergrad-stats-without-p-f-or.html
https://drive.google.com/drive/folders/1CiJK--bAuO0F-ug3B5I3FvmsCdpPGZ03
回歸的基礎(chǔ)知識
回想高中的知識:
擴展到多元回歸模型。記得這時候要帶有非常多的生活例子和練習(xí),從而使這些概念變得直覺上非常容易理解。讓聽眾感嘆于這些簡潔的模型都可以用來描述非常大的數(shù)據(jù)集。
介紹對于非數(shù)值型數(shù)據(jù)如何進行秩轉(zhuǎn)換,并進行各種嘗試。
教授三種前提假設(shè):數(shù)據(jù)點的獨立性,殘差分布的正態(tài)性和方差齊性 (homoscedasticity)。
參數(shù)的置信(confidence)/可信(credible)區(qū)間。指出極大似然估計(Maximum-Likelihood estimate)很難計算,因此區(qū)間估計更為重要。
對以上簡單的回歸模型,簡要地介紹 R^2。順便提及一下,這就是 Pearson 和 Spearman 相關(guān)系數(shù)。
特殊情況 #1:一個或兩個均值(t 檢驗、Wilcoxon 檢驗、Mann-Whitney 檢驗):
單均值:當只有一個 x 值的時候,回歸模型簡化成了 y = b。如果 y 不是數(shù)值型的,你可以進行秩轉(zhuǎn)換。應(yīng)用模型假設(shè)(只有一個 x,因此方差齊性不適用于這里)。順便提及一下,這些僅有截距的模型也分別可稱為單樣本 t 檢驗和 Wilcoxon 符號秩檢驗。
雙均值:如果我們把兩個變量一起放在 x 軸,兩者均值之差就是斜率。很好!這就能用我們稱為瑞士軍刀的線性模型來解決。應(yīng)用模型的假設(shè)條件,檢查兩個組的方差是否相等,相等即方差齊性。這模型稱為獨立 t 檢驗。構(gòu)造一些例子,做一些練習(xí),也許還能加上 Welch 檢驗,再加上秩轉(zhuǎn)換 ---- 變成所謂的 Mann-Whitney U 檢驗的版本。
配對樣本:違反了獨立性假設(shè)。通過計算配對組的差值,這就轉(zhuǎn)化成了 2.1(單截距)的等價形式,盡管這種情況有另外的名稱:配對 t 檢驗和 Wilcoxon 配對組檢驗。
特殊情況 #2:三個或多個均值(方差分析(ANOVA))
對類別轉(zhuǎn)化后的示性變量:類別的每一個取值范圍對應(yīng)的回歸系數(shù),是如何通過乘以一個二元(binary)示性變量,來對每個取值范圍對應(yīng)的截距來進行建模的。 ( How one regression coefficient for each level of a factor models an intercept for each level when multiplied by a binary indicator.) 這只是我們?yōu)榱耸箶?shù)據(jù)能用線性模型建模,而擴展了在 2.1 所做的事情而已。
一個變量的均值:單因素方差分析(one-way ANOVA).
兩個變量的均值:雙因素方差分析(two-way ANOVA).
特殊情況 #3:三個或多個比率(卡方檢驗)
對數(shù)變換:通過對數(shù)變換,把“多元乘法”模型轉(zhuǎn)化成線性模型,從而可以對比率進行建模。關(guān)于對數(shù)線性模型和對比率的卡方檢驗的等價性,可以查閱這個非常優(yōu)秀的介紹。此外,還需要介紹 (log-) odds ratio(一般翻譯為“比值比”或“優(yōu)勢比”)。當“多元乘法”模型使用對數(shù)變換轉(zhuǎn)化為“加法”模型之后,我們僅加上來自 3.1 的示性變量技巧,就會在接下來發(fā)現(xiàn)模型等價于 3.2 和 3.3 的方差分析----除了系數(shù)的解釋發(fā)生了變化。
單變量的比率:擬合優(yōu)度檢驗.
雙變量的比率:列聯(lián)表.
假設(shè)檢驗:
視為模型比較的假設(shè)檢驗:假設(shè)檢驗用于全模型和某個參數(shù)固定了(通常為 0,也即從模型中去除)的模型進行比較,而不是對模型進行估計。比如說,在 t 檢驗 把兩個均值之一固定為零之后,我們探究單獨一個均值(單樣本 t 檢驗)對兩個組的數(shù)據(jù)的解釋程度。如果解釋程度比較好,那么我們更傾向于這個單均值模型,而不是雙均值模型,因為前者更為簡單。假設(shè)檢驗其實是比較多個線性模型,來獲得更多的定量描述。單參數(shù)的檢驗,假設(shè)檢驗包含的信息更少。但是,同時對多個參數(shù)(如方差分析的類別變量)進行檢驗的話,模型比較就會變得沒有價值了。
似然比:似然比是一把瑞士軍刀,它適用于單樣本 t 檢驗到 GLMM 等情況。BIC 對模型復(fù)雜度進行懲罰。還有,加上先驗(prior)的話,你就能得到貝葉斯因子(Bayes Factor)。一個工具,就能解決所有問題。我在上文方差分析中使用了似然比檢驗。
我沒在這里覆蓋到前提假設(shè)的內(nèi)容。這會在另一篇文章揭曉!但是所有檢驗都很可能有三個預(yù)定假設(shè):a) 數(shù)據(jù)點的獨立性, b) 殘差的正態(tài)性, c) 同方差性(homoscedasticity)。
我假定所有的零假設(shè)是缺失了效應(yīng)的情況,但是所有原理都和非 0 的零假設(shè)所一致的。
我沒有討論推斷內(nèi)容。因為大家都會關(guān)心 p 值,因此我在比較中提到了 p 值,從而簡短地展示了背后的模型等價性。參數(shù)的估計值也會展示出相同的等價性。如何進行推斷則是另一個話題了。我個人是貝葉斯學(xué)派的,但是展示貝葉斯學(xué)派內(nèi)容的話,會減少這篇文章的受眾。此外,構(gòu)造穩(wěn)健模型是更好的選擇,但是它無法揭示模型的等價性。
本文列表依然缺失了很多其它著名的檢驗,有可能在以后添加進來。比如說符號檢驗(sign test)(要求很大的 N 從而可以有效地使用線性模型來近似),F(xiàn)riedman 檢驗 -- 即在 rank(y) 上的 RM-ANOVA,McNemar 檢驗,和二項(Binomial)/多項(Multinomial)檢驗。如果你認為它們需要在本文提及到,歡迎在本文檔的 Github 倉庫 提交對應(yīng)說明!
Dennis D. Boos and L. A. Stefanski. Essential Statistical Inference: Theory and Methods. 2013. Springer, New York.
Vito M. R. Muggeo and Gianfranco Lovison (2014) The “Three Plus One” Likelihood-Based Test Statistics: Unified Geometrical and Graphical Interpretations, The American Statistician, 68:4, 302-306, DOI: 10.1080/00031305.2014.955212