投稿问答最小化  关闭

万维书刊APP下载

单因素分析没有统计学意义,但多因素分析有统计学意义?

2024/1/29 17:19:03  阅读:60 发布者:

来源:“小白学统计”微信公众号

很多人在做多因素分析的时候,往往都按这种方式:首先把所有因素挨个做个单因素分析,然后单因素分析有意义的变量,再放到多因素分析中,最后得到一个多因素分析模型。然后完事,发表文章。

当然,在单因素分析的那一步,有的人用0.05作为水准,P小于0.05的变量纳入多因素;有的则以0.10.150.2等为水准,P小于0.10.150.2的变量才纳入多因素分析。

无数人都曾问过我这个问题:我先做单因素分析,再做多因素分析,这种做法对吗?或者说:别人发表的文章,全都是这么做的,所以我也这么做。

那么,这种方式到底对不对?我们今天就来讨论一下。

首先,公布答案:没有所谓对不对。也可以说对,也可以说不对。注意这里我不是打禅机,也不是卖关子,而是确实如此。其实,严谨的说法就是:具体问题具体分析,有时这么做没问题,有时会有问题。但有一点是很明确的:决不能死板地完全按这一规则来分析。

可能你现在还不是很明白,我们通过一个例子来说明。

1个因变量y4个自变量abclx,假定我们更关注lx这个变量,但其他变量也关心(我想临床医生应该明白我在说什么。很多情况下,临床医生虽然说是筛选危险因素,其实心里还是有倾向性的,更希望自己心目中的变量有意义)。先看单因素分析结果如下:

看到这里,估计有的人心里就得咯噔一下,心里最希望的变量lx,偏偏没有统计学意义。如果按常规的思路,单因素分析的P值这么大,无论如何也入选不了多因素分析。通常我们会在单因素分析中把检验水准稍微设的宽松一些,但除非这里设到0.3,否则即使在0.25的检验水准上,依然无统计学意义。

那是不是说,我们后面就把abc三个变量纳入多因素分析,不管lx这个变量了呢?

先别着急,我们先不管单因素分析结果,直接把4个变量都放入多因素分析,看看结果什么样子:

是不是有点震惊和意外之喜?本来都不抱希望的变量lx,在多因素分析中竟然有统计学意义了!世界观都要塌了是不是?老师教我们的“先做单因素,有意义的再做多因素”这条规则到底靠不靠谱了?

本例中,如果按我们传统的思维,“先做单因素,有意义的再做多因素”,变量lx根本连进入多因素分析的资格都没有,更谈不上有没有什么统计学意义了。然而,如果抛开这个规则,全部都纳入,结果lx变得有统计学意义了。

那问题来了,到底要不要遵循这一默认的规则(是不是有效,那是另一回事,但确实非常多的人都在遵循这一规则)?关键是,这是不是意味着:以往我们发表的文章,里面也可能有这种情况存在呢?那到底有多少数据因为完全遵循这一规则而没有发现本来应该有意义(却没有发现有意义)的变量呢?多少的变量因为在单因素分析中没有统计学意义(有可能在多因素分析中有意义)而被无情地抛弃了?

所以,统计分析是没有什么太多规则的,决不可墨守成规,如果真要说一个规则,那只有一个,就是:具体问题具体分析。每一份数据都有自己的独特性,都有自己的结构和特点,即使研究目的、研究变量完全一样,也不见得采用的方法应该都一样。如果你实在搞不懂,而这份数据的分析又很重要,那一定要去找统计学家合作。

往往很多人觉得,回归分析嘛,很简单,软件里面一放,就出来结果了。然而,这也是软件带来的最大弊端,能给你结果,但不保证给你真实的结果。那怎么办呢?如果一项研究前期花了你很多精力、金钱、时间,那千万不要吝啬最后的一点时间、金钱,一定要去找统计学家合作,让他来帮你仔细分析。否则,往往你觉得结果已经出来了,实际上只是一个错误的结果。

可能很多人想了解的是:为什么会这样?我到底应该怎么注意?实际中什么时候可以按”先做单因素,有意义的再做多因素“这种思路来分析,什么时候不应该按这种思路来分析?这个问题,我希望大家先思考一下,而不是简单地看答案。

当然,为了让感兴趣的读者能够仔细考虑这一问题,我把数据放在后面,下面这5个变量,依次是abclxy。有兴趣的朋友可以copy下来自己分析一下试试。

43 110 50 1.8229350867 33.67

63 105 60 1.7967470107 26.67

59 100 60 1.6639260977 23.00

78 100 60 1.8748743759 26.00

67 100 60 1.9892432738 28.00

65 119 61 1.7351891177 30.33

66 120 64 1.6311994042 27.00

73 130 88 1.8562979904 47.00

53 113 68 1.4838746895 27.67

76 120 70 1.4350845253 37.33

76 136 70 1.6826883742 35.67

76 130 70 1.5973653312 31.33

68 126 70 1.5173226235 32.33

61 136 70 1.6900958155 30.67

78 124 70 1.7491998548 37.67

80 110 70 1.5432981099 36.00

74 140 70 2.1598687908 41.00

75 130 70 1.8900953699 41.67

66 130 70 1.9257074417 22.00

55 114 70 2.0175661380 23.33

71 120 70 1.5973653312 25.67

62 130 70 1.5238800241 25.00

69 130 70 1.4492691603 27.00

45 110 70 2.3233676322 29.00

79 120 70 1.8656293178 30.33

58 110 70 1.5475625087 27.00

65 100 70 1.8017098001 28.00

44 119 70 1.7137979278 22.33

53 110 70 2.6390573296 29.33

62 130 72 1.9865035460 43.00

62 118 72 1.3787660947 27.33

53 122 74 1.3787660947 18.33

71 130 75 1.3297240096 31.00

54 116 75 1.4701758451 22.33

64 120 76 1.8855533485 30.00

71 140 78 1.7404661748 35.67

50 121 78 1.6620303626 40.33

51 138 80 1.7316555452 34.67

上述例子说明,不少人经常用到“先做单因素分析,然后把单因素分析中有统计学意义的变量纳入多因素分析”,这种思路在有些情况下未必可靠。

其实这里关键的问题就是:到底有没有必要做单因素分析?如果做单因素分析,是不是只把单因素分析中有意义的变量纳入多因素分析,而没有统计学意义的变量就不用纳入多因素分析了?

这个问题其实没有完全统一的答案,不同的统计学家也有自己的想法和观点,所以本文所提到的观点,仅是个人见解,有不同意本文观点的,纯属正常。

我们先把上面提出的疑问解释一下,其实这个问题也有不少人问过我,说:有没有可能单因素分析没有统计学意义,而多因素分析变得有统计学意义了。我的回答是:有可能。上面的例子就是这种情况。

那么,为什么会出现这种情况?我们来仔细分析一下。

正常情况下,lx变量在单因素和多因素分析中结果差别这么大,通常都是跟其它变量的影响有关系。所以,我们从4个自变量的相关性入手来看。

如果看一下4个自变量的相关性,你会发现,其实abc3个变量对lx的影响都不大,相关系数都为-0.1左右(这算不上很大的相关)。然而如果仔细观察,你会发现另一个有意思的现象:abc3个变量与lx变量的相关都是负的,相关系数都为负数。

这就能说明一定问题了。尽管abc三个变量每一个对lx变量的影响都不大,然而3个都一起影响,那就有可能产生一定的作用了。

说的通俗一点,由于abc3个变量对lx变量的影响都是负的,而abcy的关系又都是正的,这就是说,单因素分析中,当分析lxy的关系的时候,其实abc3个变量都扯了二者关系的后腿。

用大家熟悉的一部经典美剧来说明这个意思。我想大家可能都看过《friends》(最经典的美剧,没有之一),其中第三季第9集中,6个人组队玩球,最后3个男生一组,三个女生一组。Joey抢到球往前跑的时候,Rachel先跑过去抱住Joey的脖子,以阻止Joey往前跑,这就是扯后腿。

然而三个女生很快发现,仅靠一名女生扯后腿的力量有限,Joey仍在继续跑,所以MonicaPhoebe继续各自拽住Rachel的腿往后拉,这时候Joey的速度就明显慢了。也就是说,三个女生,每个人往后拉Joey的力量都不大,然而三个一起就大多了。

本例的解释其实跟这个是一个意思。在本例中,abc3个变量每个对lx变量的扯后腿的作用都不是很大(相关系数都不大),然而三个同时对lx变量有负相关,合起来就有影响了。

所以,当我们看一下偏相关系数(也就是校正了abc3个变量后,lx变量与y的纯相关),就会发现lxy的相关性(相关系数为0.3511)明显高于一开始二者的关系(相关系数为0.1912)。

同样,如果做回归分析,单因素分析中,lx变量与y的关系如下图所示。

而校正了abc3个变量的多因素分析中,lx变量与y的关系则变成了下面的样子。可以看出,斜率更大了。

当然,这只是本例的特例,实际中未必所有数据都是这样。所以我一般喜欢说“具体问题具体分析”,不是故弄玄虚,而是真的如此。每个数据都不一样,没有办法说一个统一的、完全标准的分析过程。

也许在有的数据中,“先做单因素分析,然后把单因素分析中有统计学意义的变量纳入多因素分析”,这种思路并没有问题;但在有的数据中,可能就有问题。

那么什么情况下有可能会出现:“单因素分析没有统计学意义,而多因素分析中有统计学意义”这种现象?

其实本例已经给了一个很好的答案,如果其它变量(如abc)与研究变量(如lx)之间是负向关系,而研究变量(如lx)与因变量(如y)之间是正向关系,且其它变量(如abc)与因变量(如y)之间也是正向关系。这时候就很容易出现“单因素分析没有统计学意义,而多因素分析中有统计学意义”。

实际中到底要不要“先做单因素分析,然后把单因素分析中有统计学意义的变量纳入多因素分析”这种思路?我个人的观点是比较明确的:决不能照搬这种思路。有时会让你错失发现数据真相的机会。

其实数据分析本来就不是很容易的,有时我给别人说完一些分析思路,他们会很疑惑:这么麻烦啊?也许,在很多非统计学专业的人的眼中,统计分析无非就是跑跑软件,出个结果。现实中确实也有很多人就是这么做的。然而,真正的统计学家不会这么做,有些复杂数据有时都得花费十天半月(甚至几个月都有可能)来考虑。

单因素分析到底有没有必要做?

看了前面的例子,有的人的世界观已经彻底崩塌了:原来说好的“先做单因素,单因素分析中有统计学意义的变量再纳入多因素分析”这种思路,怎么就不灵了。我还能相信什么?到底要不要做单因素分析了?

首先声明:本文仅代表作者个人观点,有不同意见纯属正常。

我个人的建议是:单因素分析要做,但是,不能死板地根据单因素分析中P值小于0.1(或0.20.3等)而决定把变量纳入多因素分析。是否把一个变量纳入多因素分析,单因素分析的P值只是一个提示,还需要考虑其它因素。

下面逐一解释这句话什么意思。

首先,要做单因素分析。但目的绝不是简单地为了初筛变量,我认为目的至少有二:

第一,初步探索自变量与因变量的关系,因为不管是线性回归还是logistic回归、Poisson回归等,其本质都是线性模型。不管你的自变量与因变量(或因变量的变换)是不是线性,分析结果只会给出有没有线性关系。所以必须保证自变量与因变量(或因变量的变换)之间是线性的,而这一点就可以通过单因素分析来实现。单因素分析中可以很方便地显示每个自变量与因变量(或因变量的变换)之间的大致关系。

虽然很多人都认为图形过于主观,但我个人还是非常喜欢图示的。图形可以告诉我们很多信息,不管是散点图还是其它图形,既直观又方便,比单纯的P值要好。

第二,如果自变量太多(相对例数而言),单因素分析确实也可以做一些初筛,否则因素太多时,一股脑把所有变量都纳入模型执行多因素分析未必现实。比如你有30个变量,但例数只有60例,无论如何不可能直接把30个变量一起纳入,否则每个变量的标准误都会太大,每个变量都不会有统计学意义。

有的人咨询我的时候会说:我这些变量都很重要,都不能删,都想保留在模型中。但是,如果你的例数不足够,你的变量再重要,也无法纳入模型。我见过太多的理想与现实矛盾的情况,你想的很好,但是例数不够,必须让你做出让步。所以有时单因素分析可以做一些初筛。

但是,有一点一定要注意:单因素分析的初筛决不能只看P值。不是说P值大于0.1(或0.20.3等)就直接舍弃了,而应该结合其参数估计值、标准误以及专业的重要性,综合来考虑。另外,还需要观察研究变量与其他变量之间的关系,就像上文例子,如果其它变量与研究变量的关系很不幸的都在一个方向上,那就得仔细看了。这种情况下,什么事情都有可能发生,一定要谨慎。

总之,因素分析是一件细活,有的人说,我有40多个因素,难道我每个因素都得看一下是否跟因变量(或因变量的变换)是否线性关系吗?这多麻烦啊!我的回答是:是不是要看,是不是要做的这么细,取决于你自己。我把如何分析的思路告诉你,但是你是不是按这种思路来做,只能你自己决定。

你当然可以不这么做,可以把所有变量一股脑儿放到软件中跑出结果,也可以按“单因素分析P<0.1的变量再纳入多因素分析,在软件中跑出结果”,这都可以出结果。然而结果是否可靠,也许只有天知道。统计软件是一个双刃剑,你无论把什么数据扔进去,它都会给出你一个结果,但它不会告诉你的结果是否准确可靠。

很多人来咨询我问题的时候,往往都希望得到一个很直接的答案,比如:你就告诉我这个变量有没有意义就行了。可惜的是,往往数据没有这么听话,不一定是像你想象的那么简单。就像患者咨询医生一样,患者想听到一个最直接的答案:你就告诉我这是个什么病(或者,你就告诉我这个病能不能治好)。同样可惜的是,往往医生也无法做出这个直接的回答。其实这是一回事。

所以,如果你觉得患者问你“你直接告诉我这是什么病”这样的问题让你无法回答,那你也应该体会到,如果你问一名统计学家“你就告诉我这个变量有没有意义”这样的问题,同样也让统计学家难以回答。你觉得确诊一种疾病很难,同样,统计学家分析你的数据也不是这么容易。

对于一份数据的分析,如果你实在拿不准,我的建议是,直接请教统计学家。毕竟他们经验更为丰富一些,就像一般人也喜欢挂老专家的号一个道理,因为他们经验多。

我也曾帮助不少人解决过一些问题,比如,他们自己确实分析不出来,但是可能我从其它角度重新分析,或者换种思路重新分析,结果会跟他们原来做的不同。这让他们很欢欣鼓舞,也觉得好像统计学很神奇,本来没有意义的,做出有意义结果了。

但其实并非如此,统计学不能无中生有,如果一个变量真的没有意义,那统计学无论怎么折腾,它最终也还是没有意义。为什么你做的没有意义,而我做的就有意义。这只是因为原来你的思路有问题,我重新换了思路而已,所以发现了本来你没有发现的结果。仅此而已。

所以,也不要对统计学期望太高,也不要觉得统计学无用。统计学只是帮你更加客观地看待数据,更加理智地发现规律,更加有效地利用数据,让你离真实结果更接近。

转自:“量化研究方法”微信公众号

如有侵权,请联系本站删除!


  • 万维QQ投稿交流群    招募志愿者

    版权所有 Copyright@2009-2015豫ICP证合字09037080号

     纯自助论文投稿平台    E-mail:eshukan@163.com