R平方大于0.8才能做回归吗?(转载竹家庄)
2013-04-06 13:35阅读:
R平方大于0.8才能做回归吗?
教材上讲, 进行多元线性回归分析时,R
Square判定系数达到0.8左右,说明方程线性度较好,方可进行多元线性回归分析。为什么包括在一些权威期刊上发表的论文中,判定系数很低甚至不到
0.3也使用多元线性分析呢了?是不是在不同研究中对判断系数的要求是不同的?如果不使用方程进行预测,只是比较自变量间影响力大小,可以不用过多考虑判
定系数?
庄主 @ 2007-11-10
不知是哪本教材如此说?从没看到过如此说法。从原理上讲,好像没有什么根据。
我们来说说原理(我曾发过一个有关的贴子
回归模型的决定系数至少要多大?今天再进一步展开谈谈)。回归分析的R
2反映的是该模型中所有自变量对因变量的联合解释能力(explanatory
power),因为R
2取值从0到1,可以转换成百分比,非常直观,所以很多非OLS回归(logistic或loglinear)的分析结果,也会被转换成“近似R
2”(Pseudo
R
2)。从社会学到政治学、从心理学到传播学的各种研究人类行为的社会科学研究,其解释能力大部分确实不超过0.3,意即因变量中还有70%的差异(unexplained
variance或residual,残差)不能被模型中的自变量所解释。
这是一个问题吗?不一定。残差有三种来源:没被收入模型的其它自变量;系统误差(即有规律或偏向的);随机误差(即无规律或无偏向的)。这三者因各自大小及其性质不同而对已有模型的结果造成不同的影响。我们分开来谈谈。
一、
其它自变量的影响:取决于它(们)与已有自变量之间的关系。如果无关,那么“其它变量”是否存在、对因变量的影响大小均与本案无关。反之则直接挑战本回归
的发现,因为该模型中自变量的影响也许是被夸大、或压抑(不太常见)、或曲解(如其它自变量是条件变量的话),也就是说该模型犯的错误即可能是Type
I类的(夸大)、也可能是Type
II类的(缩小或扭曲)。这里的难点是如果没有将其它自变量吸收进来加以检验,如何事先知道它们与本案是否有关。一般主要依靠前人研究
成果,如果某些变量
已被证明与本案自变量有关,那就必须作为控制变量引入、哪怕它们与研究假设毫无关系。否则,则不变求全。大千世界,任何研究都无法穷尽自变量的。
二、
系统误差的影响:这种误差主要来自被测量者(如全部讲某种假话,如过高报告读报时间、过低报告看电视时间、过高或过低报告家庭收入等,注意这里的“全
部”,如果部分人过高部分人过低,则成为随机误差)或测量工具(如问卷的误导)造成的。其实这本身也是一种特定含义的其它自变量。它们的存在及其程度大
小,是否与本案有关,也取决与是否与已有自变量之间关系是否密切。同样,事先很难知道这种关系程度。研究者主要依靠采用多种测量方法(问卷中的不同问法、
自我报告加行为记录等等)来互相印证。SEM中的Multi-Traits
Multi-Methods(MTMM)分析,就是用来处理多种测量数据的。
三、随机误差的影响:这种误差来自与我们人类行为中非理性的那一部分,所谓“非理性”行为,指的是与固定规律不同的决策,哪怕再理性的人,恐怕也有很多“反常”的举动(我觉得自己属于这一类)。这也许是社会科学模型的R
2大多不超过30%的主要原因。与上述两种误差相比,随机误差可以通过大样本、多项测量(multiple
items)并辅之CFA和SEM工具等方法控制。
为了便于说明R
2大
小并不一定是个致命问题,我模拟了两个回归方程,各有1000个个案,其中因变量Y相同、模型1的自变量X解释了Y的20%差异(见以下左图)、而模型2
的自变量Z能解释Y的80%差异(右图)。当然右图更好看(可惜现实生活中不容易找到),但左图中则在现实生活中更常见,虽然“混沌”了一点,X对Y的影
响也是明显可见的(哪怕图中红色的回归线拿到,其趋势也是清楚的)。

比较两图,说明R
2的大小,主要影响到模型的精确度(precision)而不是其正确性(correctness)。因此,我难以理解为何R
2大于0.8才能做回归。
最后回答你关于如何比较自变量大小的问题,我去年有过一个贴子(
如何确定自变量的独立贡献?),可以去看一下。
附件:以下是我用来构建上述模拟模型的SPSS指令。这个活没法用菜单操作做;这些指令,对初学者来说可能像天书,但建议大家看看右边的中文注释,以理解其中的逻辑。(如果你想在SPSS复核这些指令的话,当然要将所以注释删掉。)
new file. (清空原有数据)
input program.(开始生成新数据)
loop #i=1 to 1000.(开始从1到1000的循环;#1是个用过即弃的“绿色”变量,不占任何内存)
compute y=normal(1).(生成均值为0、标准差为1的一个随机变量,取名为Y,共1000个个案)
end case.(结束个案)
end loop.(结束循环)
end file.(结束数据文件)
end input program.(结束生成数据)
compute x=normal(1)+y*0.5.(生成X,其值为另一个均值为0、标准差为1的随机数加上Y的50%)
compute
z=(normal(1)+(y*2))/2.(生成Z,其值为第三个均值为0、标准差为1的随机数加上Y的2倍)
desc y x z.(计算三个变量的描述统计量;可以省略)
cor y with x z.(计算Y与X、Z的相关系数;可以省略)
regression var=y x/dep=y/enter x/scat=(y
x).(计算Y为因变量、X为自变量的回归模型,并打印X和Y的散点图)
regression var=y z/dep=y/enter z/scat=(y
z).(计算Y为因变量、Z为自变量的回归模型,并打印X和Z的散点图)
注:
生成X和Z时,如果不加Y*0.5或Y*2的话,X或Z与Y是独立的随机数,相关系数为零;如果在X公式中不对Y打5折,X与Y的相关系数会在0.7左右
(即其平方在0.5);在Z公式中将Y扩大2倍,使得Z与Y的相关系数会在0.9左右(即其平方在0.8);最后将Z除以2是使得其取值范围与X相同(在
-4到+4之间),以致上述的两个图可以直接比较。