在 JMP ®軟體中分析重複測量數據
在一項實驗中,通常會對同一受試者或實驗單位採取不只一項措施。這意味著可能需要對數據進行重複測量分析才能做出有效的推論並得出有意義的結論。
JMP 提供了多種分析重複測量的方法:多變量重複測量方法、單變量裂區方法,以及透過 JMP ® Pro 使用擬合模型平台中的混合模型個性執行此類分析的附加功能。下面的討論對分析類型進行了比較。此範例使用 DOGS (dogs.jmp) 範例資料表,該表是重複測量的研究結果。在此範例中,在對 DOGS 資料集進行分析之前,我們將 ID 變數重新命名為“Subject”,並將建模類型從連續變更為名義。
圖 A 顯示了 DOGS 表中選定的欄位。該數據表包含分配到由自變量drug定義的治療組的 16 隻狗的信息,其值為“嗎啡”和“三甲氧苯丙胺”。在藥物注射前記錄組織胺的血液濃度,並在註射後一分鐘和三分鐘再次記錄。取每個值的對數(常見的轉換,以在反應變數中實現更高的線性度),從而產生三個變數LogHist0 、 LogHist1和LogHist3 。此外,還有一個額外的主題列,如上所述聲明為名目值,它將用於解釋重複測量資料的單變量分析中的主題內變異性。
圖 A:資料表的排列,多元方法

圖 B 顯示了重構後的 DOGS 表中的選定列,其中LogHist列已堆疊到單一回應列中。
圖B :資料表的排列、單變量裂區方法和混合模型方法

多元方法
具有多個回應列的原始 DOGS 表採用多元變異數分析 (MANOVA) 所需的形式來測試相同的效果 - 無需更改任何內容。
啟動此資料表後,再次從「分析」選單中選擇「擬合模型」。
將LogHist0 、 LogHist1和LogHist3指定為 Y 變數。將擬合特性變更為 Manova。將藥物指定為模型效應並運行模型。
當存在多個 Y 變數時,JMP 會自動執行多變量分析。首次運行模型時,會出現多變量控制面板。若要測試藥物隨時間變化的效果,請從控制面板的彈出式選單中選擇「重複測量」作為反應設計。在出現的重複測量對話方塊中,使用預設效果名稱“時間”,但選取“同時進行單變量測試”以獲得單變量和調整後的單變量測試。此選項包括球形度檢定(此處未顯示),用於檢查未調整的單變量 F 檢定是否合適。如果球形度卡方檢定不顯著,則可以使用未調整的單變數 F 檢定。然而,如果球形檢定卡方顯著,則拒絕該標準,並應使用多元 F 檢定或調整後的單變量 F 檢定。 JMP 提供 Greenhouse-Geisser (GG) 和 Huynh-Feldt (HF) 調整 F 檢定。
單變量裂區方法
單變量模型具有單一響應。要將資料作為單變量變異數分析 (ANOVA) 進行分析,您必須將每個變異來源(受試者間和受試者內)作為效應納入模型中。
單變量分析要求反應測量位於單列。使用Tables選單中的 Stack 指令,您可以堆疊LogHist0 、 LogHist1和LogHist3欄位以建立新的回應列,如圖 B 所示。
正確設定資料表後,從「分析」選單中選擇「擬合模型」。選擇LogHist為Y,並在Model中加入Effects,如圖C所示。
圖 C:單變量重複測量規範

若要建立上面所示的模型(該模型具有用於測試模型中受試者間效應的隨機效應),請按一下以下變數和按鈕:
- 在變數選擇清單中加入藥物,然後新增
- 變數選擇清單中的主題,然後新增
- 變數選擇清單中的藥物,以及
- 模型中效果清單中的主題,然後嵌套
- 模型清單中的效果中的主題 [藥物] ,然後從效果屬性彈出式選單中選擇隨機,在模型中的效果清單中給出主題 [藥物] 和隨機
- 在變數選擇清單中時間,然後新增
- 變數選擇清單中的藥物和
- 變數選擇清單中的時間,然後交叉
受試者間效應(藥物)是裂區設計的整體效應。受試者效應嵌套在藥物中。該術語被指定為隨機效應。模型中包含的隨機效應顯示資料中存在多個變異源。 REML 模型考慮了所有變異來源;因此,效應估計和效應檢定要進行適當的調整和計算。
運行此模型後,您可以檢查在結果視窗的「固定效應測試」部分中看到的模型效應的顯著性,這些效應顯示在下面的「比較結果」部分。
混合模型方法
在 JMP Pro 中,擬合模型平台中的混合模型個性也提供了分析重複測量資料的功能。此方法要求將響應測量建置在單列中,如圖 B 所示。
混合模型個性適合各種協方差結構。這與多元變異數分析(假設所有變異數和協方差都是單獨估計的非結構化協方差矩陣)和單變量裂區變異數分析(假設所有誤差都是獨立的)形成鮮明對比。當資料呈常態分佈時,後者相當於在混合模型中假設複合對稱協方差結構。
當資料表處於活動狀態時,從「分析」選單中選擇「擬合模型」。從個性下拉選單中,選擇混合模型。將LogHist指定為 Y 變量,在「固定效應」標籤中新增「時間」、 「藥物」和「藥物*時間」 ,並將「主題」新增至「隨機效應」標籤。點擊“重複結構”標籤並保留預設選擇“殘差”,它表示複合對稱協方差結構。在此範例中,我們將使用此選項來顯示跨方法的一致結果。如上一段所述,複合對稱結構相當於單變量裂區分析中假設的協方差結構。
運行模型,固定效應的顯著性將出現在結果視窗的最後一部分。
比較結果
多元方法

單變量裂區法

混合模型方法(僅限 JMP Pro)

方法比較
分析結果的比較如上所示。透過檢查每組結果,您可以看到多變量和單變量效應檢定之間的關係,包括混合模型分析。需要注意的要點是:
- 對於受試者間效應(藥物),當不存在缺失值時,多變量方法給出的結果與單變量方法相同。如果存在缺失值,單變量分析將使用所有非缺失資料值,但多變量分析會排除任何具有缺失值的受試者。
- 如果不存在缺失值,則單變量模型中的受試者內時間變數與具有「重複測量」反應設計的多變量模型中未調整的時間效應相同。然而,只有在滿足球形度測試標準(前面提到)時,這些測試才是合適的。否則,應使用多變量檢定或調整後的單變量檢定。
- 由於資料相當常態分佈,因此在混合模型個性中使用複合對稱協方差結構會產生與單變量裂區分析相同的結果。對於包含時間重複測量的數據,請注意,替代協方差結構 AR(1) 通常是合適的,因為它允許相關觀察結果但不會過度擬合模型。
- 通常,在重複測量研究中,最重要的影響是受試者之間相互作用產生的受試者內部的影響——感興趣的假設是研究治療是否隨著時間的推移而產生影響。在單變量分析中,藥物*時間交互作用似乎不顯著。
- 在此範例中,更強大的多變量方法顯示藥物*時間交互作用效應具有邊際顯著性。
概括
總之,JMP 可以使用單變量裂區模型、多變量分析或使用 JMP Pro 的混合模型來分析重複測量資料。
每種類型的分析都有其優點和缺點:
- 在 JMP 中指定多變量分析既簡單又直觀。它的測試通常更強大。從計算的角度來看,這種方法是最有效的。但是,如果某個主題缺少某個值,則該主題的所有資訊都會在分析中遺失。
- 單變量分析可以使用所有數據-只有受試者缺失的測量結果會在分析中遺失。然而,單變量分析的計算量可能非常大,特別是在有許多受試者的情況下。
- 上述兩種方法均假設極端協方差結構。多變量分析假設非結構化協方差矩陣,其中所有變異數和協方差都是單獨估計的。裂區分析假設所有誤差都是獨立的。透過這兩個假設,資料中的資訊用於估計協方差參數。這可能會導致模型過度擬合。混合模型的優點是它允許您選擇不太極端的協方差結構,從而產生更強大的模型。在《JMP 擬合線性模型指南》中,「混合模型」一章的「其他範例」部分提供了有關模型過擬合或欠擬合以及混合模型個性中各種協方差結構的使用的更多信息。
在對受試者內效應和涉及這些效應的交互作用的單變量檢定中,需要對協方差矩陣進行上述假設,才能使普通 F 檢定提供的機率正確。如果不滿足這些假設(如果拒絕球形檢定),則應使用調整後的單變量 F 檢定(在多變量報告中給出)或多變量 F 檢定的機率。由於這些假設,僅當滿足球形條件時才應考慮單變數方法。有關此測試和本示例中討論的其他想法的更多信息,請參閱《JMP 擬合線性模型》一書,可通過選擇幫助► 書籍► 擬合線性模型找到該書(第3 章:標準最小二乘法報告與選項,第7 章:混合模型) ,以及第 8 章:多元反應模型)
Cole 和 Grizzle,JE (1966),“十六隻狗”,生物識別,22:810
[以前的 JMP 註 30584]
@AdamMorris哈哈,確實,這解決了它。一定是分心了...非常感謝。
嗨@arnaudsteyaert
我認為您的結果有所不同,因為該範例僅使用 3 個回應:LogHist0、LogHist1 和 LogHist3,但您的腳本還包括 LogHist5。我希望這有幫助!
亞當
你好,
感謝您的非常有用的帖子。然而,當我嘗試使用我的設定(JMP 17.1,MacOS)複製它時,我沒有得到相同的結果。
對於多元變異數分析方法尤其如此,如下所示。

對於裂區和混合,結果更接近,但仍然不一樣。


Dogs.jmp 表資料在最新版本中是否已更改?我沒有正確指定型號嗎?這是我運行的 MANOVA 的 JSL 腳本:
Fit Model(
Y( :LogHist0, :LogHist1, :LogHist3, :LogHist5 ),
Effects( :drug ),
Personality( "Manova" ),
Run(
Response Function(
"Sum",
Repeated( 1 ),
Title( "Between Subjects", "Somme" )
),
Response Function(
"Contrast",
Univariate Tests Also,
Repeated( 2 ),
Prefix( "Time*" ),
Title( "Within Subjects", "Contraste" )
)
),
SendToReport(
Dispatch( {"Within Subjects"}, "Sphericity Test", OutlineBox, {Close( 1 )} ),
Dispatch(
{"Within Subjects"},
"All Within Interactions",
OutlineBox,
{Close( 1 )}
)
)
)任何幫助將不勝感激。