致JMP日本社群:
請問對於樣本數較少的數據,有哪些交叉驗證方法可供選擇?
病例數:44例,陽性:23例,陰性:21例。
由於擷取的因子眾多,我們基於資料可靠性(兩位評分者之間的ICC值)和ROC曲線下面積(ROC-AUC)值選擇了兩個指標,並進行了邏輯迴歸分析。這兩個因子對結果皆有顯著影響,且二者結合後ROC-AUC值大於0.85,結果較為合理。審查者指出需要進行交叉驗證以防止過度擬合,鑑於樣本量較小,我們決定採用留一交叉驗證法(LOOCV)。
當我執行「分析」>「廣義迴歸」>「Lasso」>「留一交叉驗證」時,出現了以下結果。我以前從未使用過這種方法,所以不太確定如何解讀這些結果。請問哪位更有經驗的人可以幫忙解釋一下?

順便一提,二項式邏輯迴歸的結果如下。

感謝您的合作。
Lasso迴歸(發音為“lasso”或“ras-”)是一類迴歸方法,統稱為懲罰迴歸或正規化迴歸。其他類型的懲罰回歸(正規化回歸)包括嶺回歸和彈性網路回歸。
在標準邏輯迴歸中,需要找到使對數似然函數最大化的迴歸係數(參數)。尋找對數似然函數最大化的參數值的估計方法稱為最大似然估計。從訓練資料計算出的對數似然函數越大,模型對訓練資料的擬合效果越好。因此,最大似然估計可以被視為一種尋找最能擬合訓練資料的迴歸係數(參數)的估計方法。
當資料量較大時,邏輯迴歸中的最大似然估計具有良好的數學性質(一致性、有效性、漸近常態性)。
懲罰迴歸(正則化迴歸)是一種透過使用負對數似然函數加上一個懲罰項作為目標函數來避免過擬合並提高預測精度的方法。在 Lasso 迴歸中,懲罰項是除截距項外所有參數估計值的絕對值總和乘以一個常數(懲罰參數)。將此懲罰參數設為零(即弱化懲罰)會導致常態最大似然估計,而將該懲罰參數設為無窮大(即增強懲罰)則會導致除截距項外的所有參數估計值都變為零。
在你發布的截圖報告中,懲罰參數隨著向左移動而增加,隨著向右移動而減少。
「負對數似然值」是指符號相反的對數似然值。 「標準化負對數似然值」是指每個觀測值(行)的平均負對數似然值。較大的對數似然值表示模型與資料的擬合度較好,而符號相反的較小負對數似然值也表示模型與資料的擬合度較好。
在最大似然估計或懲罰迴歸中計算參數估計值時,會使用訓練資料的負對數似然值。在您提交的報告右側的圖中,不僅繪製了訓練資料的負對數似然值,還繪製了驗證資料的負對數似然值。模型越複雜(例如,放寬懲罰、增加解釋變數的數量等),訓練資料的負對數似然值就越小。然而,驗證資料的負對數似然值並非如此。
一般來說,如果你有相當多的資料、一個簡單的模型,並指定真實模型,則訓練資料和驗證資料的負對數似然值將相同,如下圖所示。
然而,在資料較少的情況下,即使擬合了真實模型,驗證資料的負對數似然值也會大於訓練資料的負對數似然值,如下圖所示,並且驗證資料的曲線圖通常會呈現 U 形。
驗證資料的負對數似然值大於訓練資料的負對數似然值,表示模型對訓練資料過擬合,也就是說,模型對訓練資料的擬合效果很好,但對驗證資料的擬合效果很差。驗證資料的U形曲線表明,模型越複雜,對驗證資料的擬合效果就越差。
■AUC 的置信區間可以粗略估計 AUC 估計值的不確定性。如果您使用「廣義迴歸」來擬合邏輯迴歸模型,則可以透過以下步驟獲得 AUC 的置信區間:
(1)點選「邏輯回歸」大綱中的紅色三角形按鈕。
(2)從出現的選單中,選擇[儲存列] → [儲存預測公式] 。
此操作會在資料表中建立一個機率預測公式列。
(3)從下拉式選單中選擇[分析(A)] → [預測模型] → [比較模型] 。
(4)在呼叫的啟動視窗左側的「選擇列」列錶框中,選擇包含機率預測值的兩列( 「機率(列名 = 事件名稱)」和「機率(列名 = 非事件名稱)」) ,然後按[Y,預測器]按鈕。
(5)點選[確定]按鈕。
(6)點選「模型比較」大綱中的紅色三角形按鈕,然後選擇「AUC 比較」。
■如果要求您“基於使用留一法獲得的機率預測值計算AUC”,JMP並未提供用於此過程的圖形使用者介面(GUI)。要在JMP中完成此操作,您必須使用名為JMP腳本語言(JSL)的腳本語言進行程式設計。
下面是一個範例程序,僅供參考。
這將清除資料表的所有行屬性,因此請事先僅準備您需要分析的資料表。執行此操作時,請刪除任何包含已排除屬性的行。
在以下範例中,逐行刪除數據,擬合邏輯迴歸模型,並計算每一行的預測機率。然後基於預測機率計算 ROC 曲線和 AUC。
以下範例僅供參考。
此外,為了使此功能生效,您需要相應地更改列名和事件資料值。請注意,預設情況下,所有包含缺失值的行都會在分析之前被刪除(分析採用清單刪除法)。
Names Default To Here(1);
dt = Current Data Table();
eta = J(NRow(dt),1,.);
For(i = 1, i <= NRow(dt), i++,
dt << Clear Row States; // 行属性のクリア
Row State(i)= Excluded State(1); // 第i行に除外属性を付与
// ロジスティックモデルのあてはめ
plat = dt << Fit Model(
<
<INVISIBLE></INVISIBLE>
<DIV>
</DIV>
<DIV>■無論如何,如果解釋變數是包含n=50的雙變數邏輯迴歸模型(事件變數和非事件變數約為n=25),即使擬合出了真實模型,估計誤差也會很大,難以判斷該雙變數模型是否有效(例如,是否應該使用其他解釋變數?是否應該加入其他解釋變數?)。此外,也很難判斷估計的模型未來是否能作為實際的預測模型。即使可以使用上述方法和其他方法進行內部驗證,我認為也必須謹慎保守地做出判斷。</DIV>
<DIV>
</DIV>
<DIV>■TRIPOD是醫學領域建構預測模型的指導原則,但我在撰寫上述答案時並沒有遵循TRIPOD的指導原則。我認為建立預測模型時還有很多其他方面需要考慮。</DIV>
<DIV>
</DIV>