R-square是什么?怎么计算

Python028

R-square是什么?怎么计算,第1张

要理解R Square需要引入残差的概念,以一元回归分析为例,下面用图解释吧,文字多太累。

上图红色点是incoming自变量与Consuming因变量对应的散点图,蓝色线是回归方程线(最小二乘法得到);

这里红色点yi表示一个响应观测值点(共4个),蓝色点fi是响应观测值对应的回归曲线上的点,两个的差值就是残差,残差值共有4个;y bar是响应变量的平均值。

根据平方和分解公式

即:SS 总体=SS 回归 + SS 残差

用文字描述就是:观测值与平均值的差值平方和被残差平方和以及回归差值平方和之和解释。

那么R Square的公式是: R Square = 1 - SS残差/SS总体 或者 = SS回归/SS总体

观测值都在回归线上,回归差值平方和100%地解释了总平方和,R Square=1

回归线为平行于x轴(均值线与回归线重合),残差平方和100%地解释了总平方和,R Square=0

备注:

1. R square: Coefficient of Determination决定系数,只能为正值或0

2. R: Correlation 

Coefficient相关系数,可为正值负值与0

3. 最小二乘法(least square)得到的回归方程代表着最小的残差平方和

一切一切都是数字的游戏,但蛮有意思的。

一种方法是先化到Jordan型,Jordan块 3 1 0 3 的一个平方根是 3^{1/2} 12^{-1/2} 0 3^{1/2} 另一种方法是假定B=uA+vI,B^2=A,然后利用Cayley-Hamilton定理A^2-6A+9解出待定系数u和v

举个例子,1156是四位数,所以它的算术平方根的整数部分是两位数,且易观察出其中的十位数是3。于是问题的关键在于:如何求出它的个位数a?为此,我们从a所满足的关系式来入手。

根据两数和的平方公式,可以得到

1156=(30+a)^2=30^2+2×30a+a^2,

所以 1156-30^2=2×30a+a^2,

即 256=(30×2+a)a,

也就是说, a是这样一个正整数,它与30×2的和,再乘以它本身,等于256。

为便于求得a,可用下面的竖式来进行计算:

根号上面的数3是平方根的十位数。将 256试除以30×2,得4(如果未除尽则取整数位).由于4与30×2的和64,与4的积等于256,4就是所求的个位数a。竖式中的余数是0,表示开方正好开尽。于是得到 1156=34^2, 或√1156=34. 上述求平方根的方法,称为笔算开平方法,用这个方法可以求出任何正数的算术平方根,它的计算步骤如下:

开方的计算步骤

1.将被开方数的整数部分从个位起向左每隔两位划为一段,用“ ' ”这个符号分开(竖式中的11’56),分成几段,表示所求平方根是几位数;

2.根据左边第一段里的数,求得平方根的最高位上的数(竖式中的3);

3.从第一段的数减去最高位上数的平方,在它们的差的右边写上第二段数组成第一个余数(竖式中的256);

4.把求得的最高位数乘以20去试除第一个余数,所得的最大整数作为试商(20×3除256,所得的最大整数是 4,所以试商是4);

5.用商的最高位数的20倍加上这个试商再乘以试商,如果所得的积小于或等于余数,试商就是平方根的第二位数;如果所得的积大于余数,就把试商减小之后再试(竖式中(20×3+4)×4=256,说明试商4就是平方根的第二位数);

6.用相同的方法,继续求平方根的其余各位上的数。

如碰到开不尽的情况,可根据所要求的精确度求出它的近似值。例如求其近似值(精确到0.01),可列出上面右边的竖式,并根据这个竖式得到。

笔算开平方运算较复杂,在实际中直接应用较少,但用这个方法可求出一个数的平方根的具有任意精确度的近似值。

参考资料:百度百科-开平方运算