京公网安备 11010802034615号
经营许可证编号:京B2-20210330
数据挖掘实战训练
问题:如果研究的变量为连续变量,且多种因素对它有影响,本研究共分为四组,并且组间AGE、BMI、BP等差异均具有统计学意义,应该如何校正AGE、BMI、BP等?
这里:
Y是连续性变量,我们假定基本符合正态分布。
X是四个组别,设X=0、1、2、3,分别表示四组。
目的是要比较四组之间有没有差异,但要考虑到组间AGE、BMI、BP等不同对Y的影响。
做数据分析好比打乒乓球,多数人是自己摸索,没有专业教练指导,接发球等动作是自己摸索出来一套野路子,常常一个球打好了,也不知道是怎么打好的,下一个就打不出来了,不能重复,因为不知道什么是规范的动作要领,打到一定水平后也无法再提高。而那些从小就经过专业训练出来的则完全不一样,因为动作规范,所以技术水平提高快。
象上面这个问题,就有业余选手与专业选手两种打法。先看看业余选手的通常打法:
1)先做方差分析看四组之间差别有没有显著性,如果有显著性,考虑组间比较,看是哪两组间有显著差别。
2)考虑其它因素的影响,用逐步回归的方法建立一个多元模型,初始模型为:Y=X+AGE+BMI+BP+…,最后出来一个最终模型,如Y=X+BMI,最后结论是X的组间差别有意义,另外BMI也是Y的一个危险因素。
3)业余段位高一点的会把X生成4个指示变量,用X0表示X=0,X1表示X=1, X2表示X=2, X1表示X=3,然后以X=0组为参照,把X1、X2、X3放入模型中,这样初始模型变为:Y=X1+X2+X3+AGE+BMI+BP+…,最后出来一个模型可能是Y=X2+X3+BMI。结论是X=2与X=3组与X=0组差别有意义,另外BMI也是Y的一个危险因素。
专业的打法路子是什么样的呢?
首先专业选手使用的球拍就比较讲究。虽然邓亚萍可以用木锅铲当球拍与人打球,但那是打着玩的,正式上场比赛(发论文)必会拿着她最好用的球拍。这里对我来说最好用的球拍是EmpowerStats(易侕统计)软件,下面我就用易侕软件演示一下对这个问题的分析思路与操作规范:
第一步
先把数据整理好,这个就不多说了,变量名要用英文的,数据要数字化,如X编码成0、1、2、3,性别可以是0、1(分别表示男、女),数据最好存成制表符分隔的文本文件。
第二步
打开易侕统计,给出数据文件名,易侕读取数据文件后自动给出变量清单与每个变量的分布,如下图示,这时候你就可以非常方便地查看每个变量的分布了,如Y、AGE、BMI、BP等连续性变量的分布形状、最大值、最小值、百分位数、均数、标准差等,X等分类型变量每组的观察数及其百分比,这些基本信息一下子就尽收眼底了。
可以看出“易侕”自动识别变量类型(分类型或连续性),根据变量类型做相应的统计描述,并将其分布用非常简明的方式呈现出来。也就是说“易侕”这个球拍可以自动发出各种旋球,一个回合下来,对方吃不吃旋球,吃什么样的旋球,你一下就摸清了。
第三步
用“数据分析”菜单下的“扫描关联关系”模块,把Y拖入(或双击)结果变量框内,如图所示:
易侕自动扫描数据中哪些变量与Y有关,给出如下图的图表结果。
这个时候做的是单因素分析,看每个变量与Y的关系,没有考虑其它因素的影响,如果你确定哪个(或几个)变量,如AGE,对Y有影响,你可以把AGE放到调整变量里,这样看的就是看在调整了AGE的情况下,其余每个变量对Y有没有影响。
易侕在分析连续性变量如BMI与Y有没有关系时,会自动考虑到BMI与Y的关系可能不是线性的变化关系,因此在做了直线回归分析的同时,还会自动做平滑曲线拟合,以展现Y随BMI的变化曲线,帮助我们判断两者之间是什么样的关系。
在分析分类变量如X与Y的关系时,自动生成指示变量放入模型,把X=1、2、3组与0组比较,呈现三个回归系数(分别表示每组与X=0组相比Y的差值)及其95%可信区间与P值。这个回归系数的大小很重要,可以帮助我们判断是否可以进行组间合并,X=0组是参照组,相当于其回归系数是0,如果X=1的回归系数与0接近且不显著,也就是说X=1组与X=0组没有差别,后面的分析就可以考虑把这两组合并为一组,同理如果X2与X3组回归系数接近,也可以考虑把它们合并,这样一来原来四组之间的比较,就可能合并成两组(或三组)之间的比较,合并的目的是使比较组的样本量增加,提高检验效率,原来只是接近显著的差别就可能变得显著了。如果不能合并,看X1、X2、X3的回归系数的相对大小,如果有等级关系,就可以考虑把X当成等级变量,直接把X放入模型。必要时要对X进行重新编码,如回归系数是X1<X3<X2,相邻的差值基本相等,就可以把原来的X=3与X=2互换一下,用易侕的“变量操作”菜单下的“分类变量取值重编码”功能很容易实现。把X直接放入模型得出的回归系数就表示X每增加一个等级Y变化多少,这样模型用到的参数少了2个,检验效率也就提高了。
这下我们可以看到“易侕”这个球拍还会自动拉出弧圈来。这个回合下来,你对数据内部的关联关系就有了一个轮廓性的了解。至少你知道了X与Y表面上看有没有关系? 是什么样的关系? 还有哪些因素与Y有什么样的关系了?
也许你会问,这个过程只是单因素的分析,没有考虑组间诸如AGE、BMI、BP的影响,得出来的X1、X2、X3的回归系数不一定可靠,这时候根据它们的大小决定合并分组(或按等级变量来处理)是否过早,因为以后在调整了AGE、BMI、BP这些因素的影响后,它们可能就不是现在这样的相对大小了,可能要重新合并。这个考虑完全正确,这相当于你拉出了一个弧圈,对方又拉回来了,你就多拉几个回合(调整其它可能的影响因素)看看,再不行就改着削回去,保持用原来的三个指示变量。
顺便提一句:如果X是个连续性的变量,Y是否随X直线变化呢?有没有阈值效应或饱和效应呢?阈值效应即当X达到某点后,X增加Y开始发生变化;饱和效应指当X达到某点后,X增加Y不再发生变化。这种现象在生物医学领域里是很常见的,找到这种关系,就是发现了一个亮点,能提高论文的档次。怎么找呢?用“数据分析”菜单下的“平滑曲线拟合模块”,结合“阈值效应与饱和效应分析”模块很容易发现。
第一步是准备,第二步、第三步是摸底,下面该进入主题了,也就是要确定攻击的主要目标与次要目标是什么?当然最主要的目标是X,次要目标是可能的混杂因素,在次要目标里又有相对重要的目标。如何确定呢?根据第二步得出了还有哪些因素与Y有什么样的关系,再结合文献上已经报道的与Y有关的因素,不难列出这篇分析里需要考虑哪些可能的混杂因素(用Zs表示)及如何控制这些混杂因素。
如何有效控制混杂因素呢?
(1)假设AGE与Y有关系,如果是线性的关系,调整时就可以把AGE直接放入模型;如果是曲线性的关系,可以根据曲线形状考虑:(a)调整时放入AGE与AGE的平方;(b)把AGE分成四等分或三等分,按分类变量处理;(c)根据曲线上的节点把AGE分组,按分类变量处理。
(2)假设文化程度(EDU)与Y有关,EDU本来也分成4组,有3个指示变量,根据这3个指示变量的回归系数,考虑是否可以合并成三组或两组,或按等级变量来处理,以减少模型的自由度。
(3)假设职业(OCCU)与Y有关系,OCCU本来分成四组,有三个指示变量,根据这三个指示变量的回归系数,考虑是否可以合并成三组或两组,以减少模型的自由度。注意职业不是等级变量,如果有三个或以上的分类,就不宜把OCCU直接放入模型。
易侕“变量操作”菜单下有相应的“连续性变量分组”、“分类变量取值重编码”与“按连续性变量处理”分类变量,等等,很容易实现上述变量操作。
确定了Y、X、Zs(进行了必要的处理,如合并,分组)后,现在开始实施系统性的“攻城计划”了。
第四步
调用“数据分析”菜单下的“研究人群描述”模块,把X作用列分组变量,把Y及Zs拖入要描述的变量,如图示,点击查看结果。首先得出一个如下图的研究人群描述表,让我们看看四个(或合并后的两个或三个)比较组人群有什么差异,这个表通常就是文章的表一。

第五步
调用“数据分析”菜单下的“单因素分析”模块,把Y作为结果变量,把X及Zs拖入危险因素变量框内,如图例,点击查看结果。得出一个如下图的单因素分析结果,让我们看看这些因素与Y有没有关系,这个表通常就是文章的表二。这里需要注意的是要根据上述第三步的结果决定如何放入X或和Z到模型中,如AGE与Y不是直线性的关系,就需要把AGE先分组,然后按分类变量进行单因素分析。

第六步
调用“数据分析”菜单下的“快速扫描交互作用”模块,把Y作为结果变量,把X作为危险因素,把Zs拖入筛查交互作用变量框内,如图例,点击查看结果。得出一个如下图的交互作用筛查结果,让我们看看哪些因素影响(增强或减弱)X对Y的作用。

何为交互作用呢?如Zi与X有交互作用,指的是Zi不同的情况下X的回归系数不同(有显著差异),这个时候最好X分组不能太多,最好是两组或是连续性变量。如果Zi是连续性变量,如AGE,易侕会自动对AGE进行等分组,看AGE低、中、高不同的情况下X的回归系数有没有显著差异。
这个模块只是快速筛查交互作用,如果发现某个Zi如EDU与X交互作用显著或接近显著,就需要用“数据分析”菜单下“交互作用检验模块”分析,这个模块中同时输出未调整的与调整其它因素的模型,输出论文中常用的表格模式。下一步详述。
如果Zi是连续性变量,如AGE,上面这个“筛查交互作用模块”是自动把AGE分组,然后分析AGE分组与X的交互作用。对这种连续性变量,如果它对Y的作用是线性的,而X是分组变量,交互作用还可以反过来作,即把AGE当成危险因素,分析X不同AGE对Y的作用(回归系数)是否有显著性差异。这个时候,你可以先用“数据分析”菜单下的“变量图示与统计检验”模块,把Y放入分析变量(Y)框内,把连续性的Zs放入变量(X)框内,选X(分组变量)为“分层变量”,点击查看结果。结果如下图所示。自动得出X与每个Z的交互作用。如果这个模块出来的交互作用显著或接近显著,再用“交互作用检验”模块分不调整与调整其它因素模型,作交互作用检验。如果X与AGE有显著的交互作用,说明Y随AGE的变化受X影响,如X=1时Y随AGE变化显著大于X=0时,这就很有意义。
如果不调整其它因素,交互作用显著,而调整了其它因素后,交互作用就不显著了,怎么解释呢?首先要比较按Zi分层的X的回归系数,并与未调整的模型比较,如果调整后按Zi分层的回归系数差别仍然存在,与未调整的模型相比变化也不大(说明其它因素的混杂作用小),只是交互作用的P值不显著了,这可能就是因为模型增加了调整因素,自由度增加了,检验效率低了,增加样本量就可能显著, 不等于没有交互作用。这是为什么要同时呈现未调整与调整的模型。
寻找交互作用就象寻找最佳组合。“易侕”这个球拍可以让你轻松变招,你很容易就能发现哪两招组合(如发什么样的球,结合发球后如何抢攻)就能一下击垮对方。交互作用是论文的亮点,它能让你的论文价值一下子上升两个档次。这也是为什么这第六步花了这么大的篇幅。
第七步
这就要根据第六步的结果决定下一步如何走了。如果发现某因素(如SEX)与X有交互作用,那接下来就是:
(1)决定哪些因素要调整,调用“数据分析”菜单下的“协变量检查与筛选”模块,Y作为结果变量,X作为危险因素,把固定要调整的(可无)与要检查与筛选的协变量(不包括SEX)放入相应的框内,把SEX作为分层变量,点击查看结果。得出要调整的协变量有哪些,当然这个结果只是从现有数据中得来的,可能有些变量根据文献需要调整但这里却被筛出去了,可以把它们召回来,也可以在调用模块时把这些变量作为固定要调整的变量。
(2)确定了要调整的协变量后,就用交互作用检验模块,运行不调整的模型与调整的模型,呈现按SEX分层分析的结果与交互作用检验的P值。如果有几个Zi与X都有交互作用,那就运行几次这个模块,最后把结果合并到一起即可。如果X(分组变量)与几个连续性的Z都有交互作用,你在调用交互作用检验模块时,还可以把这些Z作为危险因素,把X作用效应修饰因子,运行模型,结果直接呈现在一个表中。
这里的要点是当发现有交互作用时,就应该用分层的分析结果,来呈现X对Y有没有独立作用?独立作用大小是多少?因为这时候独立作用的大小因交互作用因素不同而不同,就不能用一个值来表达,否则你的论文就可能前后矛盾。

如果没有发现交互作用,那接下来呢:
(1)第六步交互作用检验里做了很多分层的分析,比较一下(按Zi)分层的X的回归系数与单因素分析时得出来的X的回归系数,如果差别比较大,说明这个分层因素(Zi)就是个混杂因素。混杂的结果是双向的,如果单因素分析X的回归系数大,P值显著,按Zi分层,每层内X的回归系数小,都不显著,这样你单因素分析发现的X与Y有关可能就是个表象,是由Zi的混杂造成的。如果单因素分析X的回归系数小,P值不显著,按Zi分层,每层内X的回归系数都大,都显著或接近显著,这样你很幸运,单因素分析发现的X与Y无关也可能是个表象,是由Zi的混杂造成的,实际上它们之间是有关系的。
有时候你需要呈现分层分析的结果,以说明你发现的X与Y的关系不是由这些分层因素的混杂造成的,增加说服力,如下图所示,作者按不同因素分层以说明吃豆腐量与血铅有关。调用“数据分析”菜单下的“分层分析”模块,把Y放入结果变量,X作为危险因素,把分层变量放入相应的框中,模块自动按每个分层变量分层,分析X与Y的关系,直接输出论文常见的表格格式。这个时候看分层分析结果时,P值是否显著不是那么重要,当然显著会更好,分层后因为每层内的样本量减少了,P值不一定显著,关键是看每层内X与Y的关系的趋势是否仍然存在,回归系数有多大改变。
(2)接下来是要评价X对Y独立作用的大小。同上面所述,先调用“数据分析”菜单下的“协变量检查与筛选”模块,Y作为结果变量,X作为危险因素,把固定要调整的与要检查与筛选的协变量放入相应的框内,点击查看结果。
确定了要调整的变量后,就调用“数据分析”菜单下的“多个回归方程”模块,Y作为结果变量,X作为危险因素,运行两个模型(模型I不调整任何因素,模型II调整上面得出的要调整的因素)或三个模型(模型I不调整任何因素,模型II调整固定要调整的因素,模型III调整上面得出的要调整的因素;或模型II调整上面得出的要调整的因素,模型III调整所有可能的混杂因素),对输出表格可以进行相应的行列设计(或用默认的格式),点击查看结果即得出论文常见的多个模型输出的结果,如下图例所示。

上述的这些动作要领虽然很多,但经过几次练习后,不难掌握,而且一旦掌握了,把规范变成习惯,以后用起来就自然了。到那时,你上场(打乒乓球)就可以随意发挥了,而且失误少,命中率高,就鲜有对手了。
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
一、问题:为什么 ID 会"断号" 很多刚接触 MySQL 的同学都会有一个困惑:表里的主键 ID 是自增的,删了中间几行数据之后,ID 变 ...
2026-10-22一、问题场景:为什么会重复 JOIN 同一个子查询 在写复杂 SQL 时,经常遇到这种需求:同一张表或同一个聚合子查询,要和主表关联 ...
2026-10-22人力资源专员是HR体系的执行入口。招聘信息发布、简历初筛、面试安排、考勤汇总、入离职手续、劳动合同与档案管理,大多由这个岗 ...
2026-10-22人力资源经理问“必学技巧”,真正要解决的不是知识清单不够长,而是时间有限、业务催得紧,学完却用不上。更有效的路径是:先用 ...
2026-10-22内容营销岗位的核心任务,不是“把文案写得更漂亮”,而是围绕目标受众,用持续的内容供给影响认知、推动转化并沉淀复购。它至少 ...
2026-10-22理财经理培训课程很多,难的是判断“先学什么、后学什么、学完能做什么”。与其按课程名称罗列,不如先看岗位任务:客户分层与维 ...
2026-10-22理财经理的知识结构,可以先用一句话概括:合规与产品知识决定“不出错”,客户经营与资产配置决定“够不够专业”,市场研判与数 ...
2026-10-22经济学背景做数据分析,优势不在工具,而在问题意识:供需如何相互作用、成本与收益如何权衡、变量之间是相关还是因果。真正的缺 ...
2026-10-22需要,但要把“需要”理解准确。经济学本身就在处理数据:GDP、物价、就业、企业营收、问卷调研,都是经济分析的原料。真正的区 ...
2026-10-22经济学分析能力不是单一技能,它至少由三层构成:把现实问题转成可检验假设的理论框架能力、用数据与统计方法验证假设的工具能力 ...
2026-10-22金融分析师的知识提升,先补的不是更多模型,而是让结论可复核的底层能力。按任务顺序,大致是四层:财务与业务理解、指标口径管 ...
2026-10-22金融分析师的“通用技能”,指换到不同机构、不同行业组仍用得上的底层能力,而非某家公司内部系统的操作经验。按任务拆,日常要 ...
2026-10-22先给结论:数据分析证书不是金融分析师的准入条件,招聘方也不会因为一张证书就直接判断你能做分析。要不要考,取决于你当前任务 ...
2026-10-22金融分析师的核心技能,不是“会看K线”或“会讲宏观”,而是能把一家公司、一个行业或一类资产,转化为可核查的数据判断与书面 ...
2026-10-22产品经理的知识提升,不是把需求文档、原型、SQL、数据分析、项目管理都学一遍,而是先对准目标岗位的真实任务,找出自己最缺的 ...
2026-10-22产品专员提升工作知识,最有效的方式不是先囤课程,而是围绕日常交付的四件事来补:需求调研与优先级判断、原型与PRD表达、竞品 ...
2026-10-22产品运营专员提升个人能力,常见误区是先把Excel、SQL、Python列成一张学习清单,然后从第一个工具开始学。更有效的做法是先回答 ...
2026-10-22产品运营的能力提升,最怕从“课程目录”出发:今天学增长模型,明天背SQL语法,学完却说不清自己负责的功能为什么激活率低。更 ...
2026-10-22产品经理的技能和影响力不是两条分开的赛道。技能决定你能不能把问题分析清楚、把方案设计对;影响力决定你的判断能否被团队接受 ...
2026-10-22产品经理要学的数据分析能力,不是“会写SQL”或“会用BI工具”这么简单。更准确地说,是围绕需求评估、功能迭代、指标监控、实 ...
2026-10-22