摘要:Prompt 示例:以'Blood.test'为因变量,'Age','Sex','Treatment'作为固定效应,'Hospital'作为随机效应,用lme4::lmer做线性混合效应模型DeepSeek统计学插件自动运行结果:理论上Deepseek 能够完
Prompt 示例:
以'Blood.test'为因变量,'Age','Sex','Treatment'作为固定效应,'Hospital'作为随机效应,用lme4::lmer做线性混合效应模型
DeepSeek统计学插件自动运行结果:
理论上Deepseek 能够完成任何一种统计分析。但现阶段,和Deepseek对话还是需要一些统计学常识。如果统计学较薄弱的同学,可以在www.mstata.com上使用Deepseek的统计学插件来完成分析:
Mstata Deepseek 统计学插件可以在聊天的同时同步运行 Deepseek生成的 R 代码;
直接出统计表、统计图;
下载 word 版的统计表、PDF版的统计图;
提供大量已经验证过的统计分析 prompt 示例模版
尽管DeepSeek 可以做所有的统计学分析。但是很多人不会用,因为撰写提示词 prompt需要一定的统计学知识,因此需要一些模板来指导,通过本公众号,您能学习到一些提问的技巧。
增加了 DeepSeek 统计学插件,导入自己的数据集,让大家和 DeepSeek 对话完成统计分析时,同时调用后台的 R 软件进行实时分析,并将分析结果整理输出为 word 文档。
本公众号现在分期介绍一些实用的 DeepSeek 的 prompt 模板。第4期介绍如何一句话完成各种混合效应模型(多水平模型):
, 左上角选择进入Mstata 医学统计机器人,菜单选择“数据准备”,导入数据后,选择“定义字段”, 正确定义好连续性变量和分类变量后,点击 “deepseek 自动统计分析工具” 菜单,进入页面并选择一个线性回归的prompt 模板后进行 对话分析。
模版示例,从易到难:
线性混合效应模型:
# 基础模型(单随机截距)
"以'Blood.test'为因变量,'Age','Sex','Treatment'作为固定效应,'Hospital'作为随机效应,用lme4::lmer做线性混合效应模型",
"以'Blood.test'为因变量,'Age','Sex','Treatment'作为固定效应,'1|Hospital'作为随机效应,用lme4::lmer做线性混合效应模型",
# 多随机截距
"以'Cholesterol_level'为因变量,'BMI','Smoking_status','Exercise'作为固定效应,'Hospital'和'Patient_ID'作为随机效应,用lme4::lmer做线性混合效应模型",
# 嵌套随机效应
"以'Bone_density'为因变量,'Calcium_intake','Vitamin_D','Menopause_status'作为固定效应,'Hospital/Department'作为嵌套随机效应,用lme4::lmer做线性混合效应模型",
# 随机截距+斜率
"以'Cognitive_score'为因变量,'Education_years','APOE_genotype'作为固定效应,'Education_years'在'Family_ID'内的随机斜率,用lme4::lmer做线性混合效应模型",
# 复杂随机结构
"以'Tumor_size'为因变量,'Drug_dose','Biomarker_level'作为固定效应,'(1|Research_center) + (Drug_dose|Lab)'作为跨层次随机效应,用lme4::lmer做线性混合效应模型"
Logistic混合效应模型(lme4::glmer)
# 基础模型(随机截距)
"以'Disease_status'为因变量(二分类),'Age','Genetic_risk','Pollution_exposure'作为固定效应,'Region'作为随机效应,用lme4::glmer做Logistic混合效应模型",
# 随机斜率
"以'Surgical_complication'为因变量,'Anesthesia_type','Surgery_duration'作为固定效应,'Anesthesia_type'在'Surgical_team'内的随机斜率,用lme4::glmer做Logistic混合效应模型",
# 多水平嵌套
"以'Microbiome_abnormality'为因变量,'Antibiotic_use','Diet_type'作为固定效应,'Country/City/Hospital'作为三级嵌套随机效应,用lme4::glmer做Logistic混合效应模型"
Cox混合效应模型
# 基础生存模型
"以'OS_time'作为时间,'OS_status'作为生存状态,'Chemo_regimen','Tumor_marker'作为固定效应,'Clinical_site'作为随机效应,用coxme::coxme做Cox混合效应模型"
# 多水平随机风险
"以'DFS_time'作为时间,'Recurrence_status'作为生存状态,'Immunotherapy','Staging'作为固定效应,'(1|Country) + (1|Hospital) + (Immunotherapy|Oncologist)'作为多层次随机效应,用coxme::coxme做Cox混合效应模型"
提问技巧
一般用如下格式:
以XXX作用因变量,XXX,XXX 作为固定效应,XXX,XXX作为随机效应,做线性/Logsitic/Poisson/Cox 混合效应模型
其中XXX为变量名称。
下面用通俗的话解释固定效应和随机效应,不使用任何专业的统计学语言,仅为了让临床医生容易理解:
我们通常做普通回归模型的自变量,也就是影响因素,可以认为就是固定效应;
那为什么还要做随机效应呢?
人群在某个维度聚集(cluster), 比如来自多家医院。同一家医院的患者可能有其相似性,例如接受同种医疗水平的治疗等。而普通回归要求每个个体独立,同一家医院的患者因为在医院水平有聚集性,所以可能不独立,因此采用混合效应模型,将医院设为随机效应;
影响因素为分类变量时,普通回归通常将分类变量拆分成哑变量,其中一个作为参照组,其他亚组分别和参照组比较,得到回归系数,OR值、HR值、P值等;但如果分类的亚组太多,例如临床试验中几十上百家医院,那么如果设置为哑变量,其中一家医院作为参照组,其他医院分别和它比较的话,没有太多意义,反而不能正确的对回归系数进行无偏估计。因为我们对医院之间的比较并没有兴趣,不是这个临床试验研究的重点,因此通常将医院设置为随机效应,做混合效应模型。
同一个患者多次测量结局指标,也就是数据库结构中,同一个患者有多行数据,每次检测指标在患者这个维度不独立,有聚集性,此时可以将患者ID号设置为随机效应,做混合效应模型,也就是重复测量分析;
聚集呈现层级结构,例如一个患者有多次检测,而患者来自不同医院,而医院来自不同省份,那么 患者-医院-省份 就呈现嵌套的层级结构,此时可以将 患者-医院-省份 设置为嵌套的随机效应。也就是多水平模型
数据集的转换
如果您的数据集结构是这样的:
ID Age test(time1) test(time2) test(time3)
1 45 34 44 35
2 35 45 89 33
患者在三个时间点分别测量某指标,作为研究结局,如果想研究年龄对
某次测量的影响,普通回归就用上面这样的数据结构,一个患者一行。
但是如果视为重复测量的话,一个患者多次测量,则需要将数据结构转换成下面这样:
ID Age time test
1 45 1 34
1 45 2 44
1 45 3 35
2 35 1 45
2 35 2 89
2 35 3 33
之前的表格,数据叫做宽表,而现在的表格,术语叫做长表,二者的转换,术语叫做长宽转换。
如果要做重复测量,将患者ID号作为随机效应,则必须转换成长表。这样就可以用混合效应模型,探索Age 和 time 对 test 的影响。
如果导入这个数据集,就可以给DeepSeek 下命令:
用'test' 作为因变量,Age和time作为固定效应,ID作为随机效应,做线性混合效应模型。
下面来看例子:
我们来看一下输出的表格,表格上半部分显示的是固定效应 Age Sex 和 Treatment,和线性回归没什么两样,下班部分显示了随机效应的结局和残差的标准差。
更复杂的模型(省份和医院二级嵌套):
以'Effectiveness'为因变量,'Age','Sex', 'Treatment'作为固定效应,'Province/Hospital'作为二级嵌套随机效应,用lme4::glmer做Logistic混合效应模型
示例:
可以看到,使用 DeepSeek 统计学插件进行嵌套层级结构的混合效应模型,非常简单和方便,比自己编程写代码,要便利太多,这就是科技的力量。
总结:
Deepseek 能够完成任何一种统计分析。但现阶段,和Deepseek对话还是需要一些统计学常识。如果统计学较薄弱的同学,需要访问www.mstata.com,套用一些prompt模板,并在mstata软件中的DeepSeek统计学插件上直接运行 DeepSeek 生成的 R 代码。
来源:真实世界研究