此插件允许您在 JMP 中运行广义线性混合模型。 默认参数设置与 SAS %GLIMMIX 宏基本相同。
这选择列面板显示当前数据集中的所有变量。
这选择角色变量面板允许您指定:
- Y:响应变量。
- 权重:分析的权重变量。
- 偏移量:偏移量变量。 默认为无偏移。
- By:by 变量允许您同时为子组拟合模型。
这构建模型效果面板包括:
这选项面板包括:
- 分配:响应变量分布。 默认为二项式。
- 关联:在使用混合模型之前用于将响应变量转换为伪分数的链接函数。 提供了规范链接功能。
- 最大迭代:算法收敛的最大迭代次数。 默认值为 30。
- 收敛准则:如果RMSE小于收敛准则的值,则迭代停止。 默认值为 1E-8。
- 修正系数:在初始转换步骤添加到响应变量的常数,以避免奇异点。 默认值为 0.5。
- 按组报告限制:指定By变量时,如果子组数大于此限制数,将抑制报表输出。 相反,将提供一个汇总表和一个 Graph Builder 界面。
我们将使用在线提供的示例(%GLIMMIX 宏结果网站: https://support.sas.com/techsup/notes/v8/25/030.html或 PROC GLIMMIX 网站: https://go.documentation.sas.com/?docsetId=statug&docsetVersion=15.1&docsetTarget=statug_glimmix_examples.htm&locale=en )。 要使用 SAS 宏导出比较结果,请在 MODEL 语句中设置 'DDFM=KR' 选项,并在 PROC MIXED 语句中设置 'NOBOUND' 选项。
演示视频也可在线获取:
示例 6 -- Salamander 数据长格式: https://youtu.be/6gCqufudFV4
示例 7——RNA-seq 数据: https://youtu.be/o4LeTmVzzVE
示例 1 – 泊松分布 (ship_demo.jmp):
以下是船舶数据的一瞥(最初来自 McCullagh 和 Nelder (1989),第 6.3 节)。
响应变量是“N”,服从泊松分布。 广义线性混合模型中的固定效应是“类型”;随机效应是“年,期,年*期”。 偏移变量是“服务”。
Poisson 分布的默认链接函数是“log”链接。 请注意,如果我们想对选定的分布使用规范(默认)链接,我们可以将链接框留空。
可以通过选择两个或多个变量并单击“固定效应”或“随机效应”面板中的“交叉”按钮来添加交互项。
指定所有模型参数后,单击“运行”按钮。 经过 28 次迭代,算法收敛。 结果输出是 JMP 中的混合模型格式。 请注意,在与 %GLIMMIX SAS 宏结果进行比较时,由于设计矩阵编码的差异,我们建议比较 F 检验结果、LS 均值或方差分量估计值,而不是固定效应参数估计值。
示例 2 – 二进制分布 (sal1.jmp):
以下是蝾螈数据的一瞥(最初来自 McCullagh 和 Nelder (1989),第 14.5 节)。 请注意,在运行分析之前,请为感兴趣的变量定义适当的建模类型。 在下面的例子中,变量“fnum, mnum”是连续的数字。 但是如果我们想将它们作为分类变量,我们可以右键点击变量名>列信息,然后将建模类型更改为nominal。
型号规格:响应变量:ybin。 分布:二项式。 链接功能:logit。
固定效果:fpop、mpop、fpop*mpop。 随机效果:fpop*fnum、mpop*mnum。
算法在 10 次迭代后收敛。
示例 3 – 二项分布 (blotch.jmp)
数据源: https://go.documentation.sas.com/?docsetId=statug&docsetTarget=statug_code_gmxex04.htm&docsetVersion=15.1&locale=en
响应变量“prop”表示发病率. “站点”和“品种”是两个固定效应。 我们选择“二项式”分布,默认链接函数是“Logit”。 (我们在这个例子中没有指定随机效应。)
“variety”和“site”的LSmeans与%GLIMMIX宏和PROC GLIMMIX的LSmeans一致。 但是,F 检验结果显示出差异。
示例 4 – 二项分布 (rcb_binomial.jmp)
经过 6 次迭代,我们得出以下结果。 此结果与 %GLIMMIX 宏生成的结果一致,但与 PROC GLIMMIX 的结果略有不同。
示例 5 – 二项分布 (hessianfly.jmp)
数据源: https://go.documentation.sas.com/?docsetId=statug&docsetTarget=statug_code_gmxex01.htm&docsetVersion=15.1&locale=en
响应是“y/n”,格式为“事件/试验“ 或者 ”成功/总试验”。 在指定响应变量 Y 时,我们需要先选择“events”变量,在本例中为“y”,然后选择“trials”变量。 因此,在“y”之后选择“n”。 设置“进入”为固定效果,“阻挡”为随机效果。 选择“二项式”分布并使用默认的“Logit”链接函数。
经过6次迭代,我们得出的结果如下:
上面例子的结果可以通过SAS PROC GLIMMIX和%GLIMMIX宏进行验证,参见SAS代码: SAS_Example_macro_proc_verification.sas .
示例 6 – 二进制分布 (sal1_long.jmp):
当数据由子集组成并且您希望对每个组/子集独立建模时,您可以在“By”字段中指定组/子集指示变量。
在本例中,sal1_long.jmp 是 Salamander 数据的堆叠版本(最初来自 McCullagh 和 Nelder (1989),第 14.5 节)。 这里,响应变量“y1、y2、y3”被堆叠到变量“ystack”中。 变量“ycat”表示原始响应类别。
这里,指定“ystack”作为响应变量,“ycat”作为By变量。 与示例 2 中的设置类似,我们可以指定分布、固定效应、随机效应。
GLMM 程序将为 By 字段中指定的每个组/子集执行。 最终报告如下。 列出了每个组/子集的结果 - 响应 y1_pseudo、响应 y2_pseudo 和响应 y3_pseudo。
示例 7 – RNA-seq 数据
由于基因组数据通常是高维度的,其中基因/SNP 的数量通常大于 10k,因此执行集成分析在计算上可能具有挑战性。 为了将来使用此插件分析 RNA-seq 数据的兴趣,我们测试了增加 BY 字段中指定的基因数量时的性能。 本节将作为压力测试的一部分,因为 BY 函数不是用多线程编写的。
这里使用的示例数据是在线公开的,来自包: https://bioconductor.org/packages/release/bioc/vignettes/variancePartition/inst/doc/dream.html
- varPartDEdata_count.jmp是原始计数矩阵
- varPartDEdata_metadata.jmp是 24 个样本的元数据
- varPartDEdata_stack10.jmp是处理后的数据,其中前 10 个基因的基因表达与其他元数据变量一起堆叠。
- varPartDEdata_stack100.jmp是处理后的数据,其中前 100 个基因的基因表达与其他元数据变量一起堆叠。
从在线示例中,对于每个基因,我们可以将模型拟合为:
Y ~ 疾病亚型 + 性别 + (1|个人)
,其中“DiseaseSubtype”和“Sex”是固定效应,“Individual”是随机效应。 这里的响应变量 Y
将取决于分配的选择。 分布的一种选择是“泊松”分布,在这种情况下,我们使用原始计数“表达式”作为响应变量。 对 RNA-seq 数据建模的另一种方法是首先对计数进行对数变换,并在指定“正态”分布的同时使用“logexprs”作为响应变量。
使用示例数据varPartDEdata_stack10.jmp ,我们可以分别推导出十个基因中的每一个的结果:
使用“logexprs”作为响应变量,Analyze>Fit Model>Mixed Model 和我们的 GLMM 插件的结果是相同的。 当使用原始计数“表达式”作为响应并指定“泊松”分布时,运行时间较长并且可能存在收敛问题的模型。
BY 变量中的子组(基因)数
|
泊松运行时间 (HH:MM:SS)
|
正常运行时间 (HH:MM:SS)
|
使用 log(count) 运行时间的混合模型 (HH:MM:SS)
|
10
|
00:01:15
|
00:00:06
|
|
100
|
00:06:00
|
00:00:43
|
00:00:01
|
1000
|
01:25:19
|
00:09:05
|
00:01:41
|
10000
|
11:11:05
|
01:31:58
|
|
……
|
|
|
|
当 BY 字段中指定的基因/亚组数大于按组报告限制=10 ,例如使用varPartDEdata_stack100.jmp ,我们将不再显示报告。 相反,将提供“GLMM 结果”JMP 表和火山图。 “GLMM结果”表包括部分F-test结果(DFDen_, F Ratio_, Prob > F_),最小二乘均值(LSMeans:),以及部分参数估计(Estimate:, -log10(Prob >|t|):)
通过将“logexprs”指定为Y,并指定“Normal”分布,我们可以得出下面的数据集。 (可作为GLMM 结果.jmp )
默认火山图是为指定的第一个固定效应生成的。 您可以切换列以查看其他感兴趣的变量的火山图。
(100 个基因,logexprs)
(10000 个基因,logexprs)
(10000 个基因,表达,泊松)