什麼是層次迴歸 Hierarchical Regression?
當你搜尋「層次迴歸」時,維基百科說 Hierarchical linear modeling,Stata 說 Swamy-Arora estimator,統計書又說 hierarchical regression 是一種變數分批進入的方法。這些名詞到底有什麼關係?為什麼會搞混?
簡單來說:這其實是兩種完全不同的東西,只是中文都用了「層次」這個詞。
—
層次迴歸 = 變數分批進入模型
想像你是一位教育研究者,想預測學生的學業表現。你手上有兩類變數:
- 控制變數:學生的家庭收入、父母教育程度、性別
- 研究變數:學生的學習動機
你不希望學習動機的「功勞」被控制變數稀釋,或者想先看控制變數能解釋多少變異,再加入研究變數看看能增加多少解釋力。
這時候你用的是 hierarchical regression——把變數分「階」放入模型,一次一批:
第一階模型:成績 ~ 家庭收入 + 父母教育 + 性別
第二階模型:成績 ~ 家庭收入 + 父母教育 + 性別 + 學習動機
比較:ΔR² 就是學習動機的獨立貢獻
這裡的「層次」指的是變數進入的順序層次,不是資料的結構層次。
用 SPSS 操作時,你會在「Block」欄位分批放入變數,就是這個概念。
—
HLM = 資料本身有巢套結構
現在換個場景:你想研究學校資源對學生成績的影響。你的資料長這樣:
- 50 所學校,每所學校 30 位學生
- 學生(Level 1)巢套在學校(Level 2)之內
這時候問題來了:
- 同一所學校的學生成績會比較接近(共同的老師、校風、設備)
- 這違反了一般迴歸「殘差獨立」的假設
- 如果你跑一般迴歸,標準誤會被低估,容易假性顯著
這時候你需要 Hierarchical Linear Modeling (HLM),多層次線性模式。
HLM 的「層次」指的是資料的階層結構:
Level 1: 學生 i 在學校 j 的成績
Level 2: 學校 j 的平均資源水平
學生成績_ij = γ₀₀ + γ₀₁(學校資源_j) + u₀_j + ε_ij
這裡處理的是資料依賴性,不是變數順序。
—
一張圖看懂如何選擇

這張圖總結了選擇邏輯:
| 問題 | 使用方法 |
|---|---|
| 想控制變數進入順序,看 incremental R²? | 層次迴歸 |
| 資料有巢套結構(學生→班級→學校)? | HLM |
| 只是單純預測,沒有階層也沒有分批需求? | 一般多元迴歸 |
—
常見誤區
「層次迴歸就是多層次模式」
– 錯。前者是變數管理策略,後者是處理資料依賴的統計方法。
「跑 HLM 比較高級,所以我應該用 HLM」
– 錯。如果資料沒有巢套結構,跑 HLM 是多餘的,甚至有過度參數化的風險。
「分批放變數一定要用 SPSS 的 Block 功能」
– 不一定。你可以手動跑多個模型比較 ΔR²,只是 Block 功能幫你省時間。
—
站內相關文章
若想深入了解,可以參考以下文章:
- [多層次線性分析方法—HLM軟體應用](/?p=52):HLM6/7 軟體的實際操作教學
- [Stata: xtmixed 階層線性模式分析指令簡介](/?p=54):用 Stata 跑多層次模式的指令說明
- [比較迴歸分析模組之間的差異](/?p=5):迴歸相關方法的整體比較
—
延伸閱讀素材建議
針對想進一步鑽研的讀者,建議準備:
文獻推薦:
– Cohen, J., Cohen, P., West, S. G., & Aiken, L. S. (2003). *Applied Multiple Regression/Correlation Analysis for the Behavioral Sciences*(層次迴歸經典)
– Raudenbush, S. W., & Bryk, A. S. (2002). *Hierarchical Linear Models*(HLM 聖經)
實作資源:
– SPSS:Analyze → Regression → Linear → Block 分批放入
– R:lm() 分批比較 或 lme4::lmer() 做多層次
– Stata:xtmixed 或 mixed 指令
延伸主題:
– 層次迴歸與調節效果的關係
– HLM 與固定效果 vs 隨機效果的取捨
– 交叉分類多層次模式(Cross-classified models)
—
總結
下次看到「層次」兩字,先問自己:這指的是資料的階層,還是變數進入的順序?
搞懂這個區別,你就不會再在方法論上迷路了。
延伸閱讀
Cohen, J., Cohen, P., West, S. G., & Aiken, L. S. (2003). Applied Multiple Regression/Correlation Analysis for the Behavioral Sciences.
Raudenbush, S. W., & Bryk, A. S. (2002). Hierarchical Linear Models.
如果有問題,歡迎留言。
版主你好,當研究生的日子以來,從你的部落格受益良多,不過最近在指令上遇到了瓶頸…我想請問您知道stata是否有指令可以產生以下的數據:
我把資料按"年"分成不同的群, 因為想知道各年之間變數的數據(變數都是一樣的)變化是否有差異. 然後我的問題是, 我每年跑出一條迴歸式(研究期間只有8年,所以一共8條迴歸式), 想以一個表總結出這八條迴歸式的係數與t值,係數可以以簡單平均的方式去算,可是t值應該就不可以了吧?……不知道這是要用怎樣的檢定(對不起…我統計也是只懂怎麼用,不懂原理的人)還是方法,才可以知道八條迴歸式平均後係數的t值?
其實我參考的文獻說他用的是Fama-MacBeth Regression的作法,這個迴歸式好像在金融研究領域蠻有名的,很多文獻都有提到他,我也在線上有找到一些他的說明,甚至有國外教授寫好的指令(http://www.kellogg.northwestern.edu/faculty/petersen/htm/papers/se/se_programming.htm 網頁中間部分有個Fama-MacBeth Standard Errors那一小欄就是),可是由於stata指令我只會一些最基本的,從開頭就看不懂那些說明……
雖然知道領域不同,還是冒昧的請教版主這個問題,基本上,我參考的文獻是用上面說的Fama-MacBeth Regression的方式推得那些迴歸式的平均係數與t值;而目前自己用土法煉鋼的方式是算得出平均係數(就是上面提的簡單八年的係數平均…不過,該不會其實也不能這樣算吧@@),剩下的問題就在於實在不知道他那些所謂平均的t值是怎樣產生的.叨擾了