統計分析

什麼是層次迴歸分析 (hierarchical regression)?

層次迴歸分析 (hierarchical regression,有人翻譯成階層性迴歸) 是心理、教育、社會學領域常用的一種統計方法,使用這種的方法用意是:你有 a, b, c 三個自變數 (independent variables),你想要看這些變數個別對 Y 的影響

如果你將 a, b, c 一次放進迴歸分析裡面,你可以得到整體的解釋力。如果你想的話,你也可以算 effect size,得到 a, b, c 個別對 Y 的影響有多大。然而,有時候研究者有理論或實際依據,認為 a, b, c 必須依照不同的順序放入迴歸分析

如果將a, b, c 依序個別放入,那我們就有三個models,hierarchical 指的就是這些 models 之間有層次性或階層性的關係,才會這麼命名的。這種作法其實就相當於簡單的路徑分析 (path analysis) 了。

常常與 hierarchical regression 搞混的統計方法是hierarchical linear modeling (階層線性模式),這部分詳情請見什麼是階層線性模式 (hierarchical linear modeling)?

什麼是層次迴歸分析 (hierarchical regression)? Read More »

什麼是階層線性模式 (hierarchical linear modeling)?

階層線性模式(hierarchical linear modeling,簡稱 HLM)或多層次分析(multilevel analysis)是近幾十年來在教育、社會學、心理學等領域廣泛使用的統計方法。它的核心問題很簡單:當你的資料有巢套結構(nested structure)——也就是「小單位嵌在大單位裡面」——普通的線性迴歸就不夠用了。

為什麼普通迴歸不夠用?

最典型的例子還是從教育研究來看。假設你要研究學生的學習成就,但你手上有來自 30 個班級的資料。問題來了:同一個班的學生共享同一位老師、同樣的教室氣氛、相似的背景環境,他們的學習成就之間自然會有關聯。這違反了普通迴歸的基本假設——觀察值必須彼此獨立。

如果你硬用普通迴歸,就等於忽略了「班級」這個層次的影響。你可以嘗試把班級人數、師生比、老師年資等變數全部丟進去當控制變數,但你永遠控制不完——每個班總有你沒測量到的差異。HLM 的解法是:直接把這種層次結構納入模型,讓資料的巢套性成為分析的一部分,而不是需要「消除」的麻煩。

第二個典型例子是重複測量(repeated measures)。如果你對同一批人進行三次前後測,每個人自己的三次測量就形成了巢套結構——三次觀察「嵌在」同一個人裡面。第一層是不同時間點的測量,第二層是個人本身。如果你不處理這個層次性,統計推論的可靠度就會受到影響。

HLM 核心概念一覽:巢套結構、ICC 判斷、Random Intercept、Random Slope、常用軟體
HLM 核心概念一覽

什麼時候該用 HLM?ICC 是關鍵指標

判斷要不要用 HLM,最常用的標準是組內相關係數(Intraclass Correlation Coefficient,ICC)。ICC 反映的是「整體變異中,有多少比例是來自於上層單位(例如班級)之間的差異」。

一般來說,ICC > 0.05 就值得認真考慮使用 HLM;ICC > 0.10 則通常建議使用。如果你的 ICC 接近 0,代表學生之間的相似性主要不是來自班級效應,用普通迴歸或許還可以接受。

關於如何計算 ICC,可以參考這篇:Stata: 計算 Intraclass Correlation

Random Intercept vs.

什麼是階層線性模式 (hierarchical linear modeling)? Read More »

Stata: 顯示完整變數值,而非使用科學記號

如果你在處理資料時,裡面有學生id,像是 80070394,甚至更長如: 5140712902,如果你直接 list 出來,會出現像這樣的情況:

1.png

這些值沒顯示完整數值,而是用科學記號,像是 8.0e+07,或是 1.1e+09。如果你要知道完整數值,還得到 data editor 裡面一筆一筆去看,這會浪費不少時間

2.png

要解決這樣的問題,就得從資料格式上來處理。至於為什麼會出現這樣的問題,這跟 output width 有關,詳情請參閱 Stata help 的 format。

首先來瞧瞧左方 variable list 是怎麼顯示的。studentid 的記號是 long %8.0f,ssid 是 double %8.0f ,long 與 double 是兩種不同的儲存格式,這有興趣請參考 datatypes 得到更多資訊,但這裡不影響。有影響的是 %8.0f。在小數點前的數字指的是要顯示幾位數,小數點後的數字指的是要顯示小數點後幾位,f 指的是 fixed format。依照這個例子來說,就是顯示 8 位數,不顯示小數點以後的位數。

3.png

所以這裡要作的很簡單,就是將顯示的位數加大。我的程式如下:

format studentid %9.0f <br />format ssid %12.0f

列出結果就正常了:

4.png

參考資料
http://www.ats.ucla.edu/stat/stata/faq/longid.htm

Stata: 顯示完整變數值,而非使用科學記號 Read More »

因素負荷量 (factor loadings) 與特徵值 (eigenvalues)

作因素分析時,常會碰到兩個讓人頭痛的名詞:因素負荷量 (factor loadings)特徵值 (eigenvalues)。加上 scree plot 的判斷,很多人在這幾個步驟都卡住了。這篇的目標很簡單:不講太多數學,把這幾個概念說清楚,以及它們實際上在回答什麼問題。

看懂因素分析:你其實只要過4關

特徵值 (Eigenvalues):這個因素值不值得留?

特徵值(有時也稱為 characteristic roots)回答的是一個問題:這個因素能代表多少個變數的資訊?

以 10 個變數為例,所有因素的特徵值加總等於 10。如果某個因素的特徵值是 0.5,代表它只解釋了半個變數的資訊量——留下這個因素,對精簡變數結構的幫助非常有限。

常見的判斷準則(rule of thumb)是:特徵值 < 1 的因素通常可以刪除(Harman, 1976)。背後的邏輯是,若特徵值小於 1,代表這個因素解釋的資訊量連一個原始變數都不如,自然沒有保留的必要。這個標準在 EFA(探索性因素分析)初步判斷時最常使用,大部分期刊也接受。不過它並非最嚴謹的方式,最好搭配下面的 scree plot 和理論意義一起判斷。

除了看特徵值,也可以觀察每個因素解釋的 % of variance,了解所有因素加總能解釋多少總變異量。

Scree Plot:到底該留幾個因素?

Scree Plot 是另一個判斷因素數量的工具。它把每個因素的特徵值由高到低畫成折線圖,你要找的是線條突然變平的轉折點——轉折點之前的因素留下,之後的捨棄。

轉折點後,每多留一個因素,能新增的解釋量已經非常有限,留下來只會讓模型變複雜,不會更清楚。

需要注意的是,Scree Plot 有一定的主觀性。如果折線是慢慢變平而非突然斷下去,不同人看到的轉折點可能不一樣。這時候不要硬選,應回頭對照理論:這份量表在概念上應該測幾個維度?特徵值準則、scree plot 和理論意義三者一起看,是最穩的做法。

因素負荷量 (Factor Loadings):這個因素代表什麼?

確定保留幾個因素之後,下一步是理解每個因素的意義——靠的就是因素負荷量

因素負荷量是個別變數與因素之間的相關程度(未轉軸前),數值介於 -1 到 1 之間,類似 Pearson 相關係數。因素負荷量的平方,就是該因素能解釋這個變數多少的 variance。例如負荷量為 0.4,代表能解釋 16% 的變異量。

依照 Hair et al.…

因素負荷量 (factor loadings) 與特徵值 (eigenvalues) Read More »

Scroll to Top