致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>