多元线性回归的中心化和标准化实验结果比较
Comparison of Centralized and Standardized Experimental Results of Multiple Linear Regression
DOI: 10.12677/AAM.2021.108286, PDF, HTML, XML, 下载: 449  浏览: 1,382 
作者: 张艳玲:华北电力大学,北京
关键词: 多元线性回归中心化标准化数据处理Multiple Linear Regression Centralization Standardization Data Processing
摘要: 在讨论一元线性回归模型的时候,我们可以看出,对数据进行中心化处理后,推导计算过程会简化许多。由此想到,对于多元线性回归模型,能否也对数据进行中心化处理,或者进一步的标准化处理,以期简化计算?实际上,经过中心化和标准化处理,可得到均值为0,标准差为1的数据,从而在进行多元线性回归拟合时消除了因量纲不同或数值差异较大而引起的误差。
Abstract: When discussing the unary linear regression model, we can see that the derivation and calculation process will be much simplified after centralized data processing. Therefore, for the multiple linear regression model, can the data also be processed centrally or further standardized to simplify the calculation? In fact, data with a mean value of 0 and a standard deviation of 1 can be obtained after centralized and standardized processing, so that errors caused by different dimensions or large numerical differences can be eliminated when performing multiple linear regression fitting.
文章引用:张艳玲. 多元线性回归的中心化和标准化实验结果比较[J]. 应用数学进展, 2021, 10(8): 2748-2758. https://doi.org/10.12677/AAM.2021.108286

1. 实验方法与步骤

首先在一元线性模型的基础上,推导多元线性模型相关系数的求解公式;之后利用产生的随机数分别按不做处理、做中心化处理、做标准化处理计算相应的未知参数;最后通过比较计算得到的未知参数,分析中心化和标准化处理的好处。

2. 实验过程

2.1. 公式推导

2.1.1. 一元线性回归未中心 [1]

y = β 0 + β 1 x 1 + ε

{ y 1 = β 0 + β 1 x 1 + ε 1 y n = β 0 + β 1 x n + ε n

y = ( y 1 y n ) , X = ( 1 x 1 1 x n ) , ε = ( ε 1 ε n )

则有 L = X X = ( n n x ¯ n x ¯ t = 1 n x t 2 )

L 1 = 1 n t = 1 n ( x t x ¯ ) 2 ( t = 1 n x t 2 n x ¯ n x ¯ n )

其中, x ¯ = 1 n t = 1 n x t y ¯ = 1 n t = 1 n y t

β ^ = L 1 X y = 1 n t = 1 n ( x t x ) 2 ( n y ¯ t = 1 n x t 2 n x ¯ t = 1 n x t y t n t = 1 n x t y t n 2 x ¯ y ¯ )

σ 2 = 1 n ( y X β ^ ) ( y X β ^ ) = s 2 2 β ^ 1 2 s 1 2

其中 s 1 2 = 1 n t = 1 n ( x t x ¯ ) 2 , s 2 2 = 1 n t = 1 n ( y t y ¯ ) 2

y ^ = β ^ 0 + β ^ 1 x

2.1.2. 一元线性回归的中心化

y = β 0 + β 1 ( x x ¯ ) + ε

{ y 1 = β 0 + β 1 ( x x ¯ ) + ε 1 y n = β 0 + β 1 ( x n x ¯ ) + ε n

其中 x ¯ = 1 n t = 1 n x t

对数据 x 1 , x 2 , , x n 作中心化处理,利用新的n组数据 ( y t , x t x ) t = 1 , 2 , , n

建立线性回归方程 y ^ = β ^ 0 + β ^ 1 ( x x ¯ )

y = ( y 1 y n ) , X = ( 1 x 1 x ¯ 1 x n x ¯ )

L = X X = ( n 0 0 t = 1 n ( x t x ¯ ) 2 )

L 1 = 1 n t = 1 n ( x t x ¯ ) 2 ( t = 1 n ( x t x ¯ ) 2 0 0 n )

s 1 2 = 1 n t = 1 n ( x t x ¯ ) 2 , s 2 2 = 1 n t = 1 n ( y t y ¯ ) 2

β ^ = L 1 X y = 1 n t = 1 n ( x t x ) 2 ( n y ¯ t = 1 n ( x t x ¯ ) 2 n t = 1 n ( x t x ¯ ) y t ) = 1 n s 1 2 ( n s 1 2 y n s 12 )

σ 2 = 1 n ( y X β ^ ) ( y X β ^ ) = s 2 2 β ^ 1 2 s 1 2

R = s 12 s 1 s 2

则有 β ^ 1 = s 12 s 1 2 = R s 2 s 1

σ ^ 2 = s 2 2 ( R s 2 s 1 ) 2 s 1 2 = ( 1 R 2 ) s 2 2

2.1.3. 多元线性回归的中心化

样本数据的中心化公式:

x ˙ i t = x i t x ¯ i ( i = 1 , 2 , , k ; t = 1 , 2 , , n ) , y ˙ t = y t y ¯ ( t = 1 , 2 , , n )

其中: x ¯ i = 1 n t = 1 n x i t , y ¯ = 1 n t = 1 n y t

Y ˙ = X ˙ B + e

其中

Y ˙ = ( y ˙ 1 y ˙ 2 y ˙ n ) , X ˙ = ( x ˙ 11 x ˙ 21 x ˙ 12 x ˙ 22 x ˙ k 1 x ˙ k 2 x ˙ 1 n x ˙ 2 n x ˙ k n ) , B = ( b 1 b 2 b k ) , e = ( e 1 e 2 e n )

用最小二乘原理求出参数B的估计量 B ^

根据最小二乘原理,需寻找一组参数估计值 B ^ ,使残差平方和 e e = ( Y ˙ X ˙ B ^ ) ( Y ˙ X ˙ B ^ ) = Y ˙ Y ˙ 2 Y ˙ X ˙ B ^ + B ^ X ˙ X ˙ B ^ 最小。

于是参数的最小二乘估计值为

B ^ = ( X ˙ ' X ˙ ) 1 X ˙ Y ˙

中心化回归模型只包含k个参数估计值 b ^ 1 , b ^ 2 , , b ^ k

对于(10):

X ˙ X ˙ = ( x ˙ 11 x ˙ 12 x ˙ 21 x ˙ 22 x ˙ 1 n x ˙ 2 n x ˙ k 1 x ˙ k 2 x ˙ k n ) ( x ˙ 11 x ˙ 21 x ˙ 12 x ˙ 22 x ˙ k 1 x ˙ k 2 x ˙ 1 n x ˙ 2 n x ˙ k n ) = ( t = 1 n x ˙ 1 t t = 1 n x ˙ 1 t x ˙ 2 t t = 1 n x ˙ 1 t x ˙ k t t = 1 n x ˙ 2 t x ˙ 1 t t = 1 n x ˙ 2 t t = 1 n x ˙ 2 t x ˙ k t t = 1 n x ˙ k t x ˙ 1 t t = 1 n x ˙ k t x ˙ 2 t t = 1 n x ˙ k t )

X ˙ Y ˙ = ( x ˙ 11 x ˙ 12 x ˙ 21 x ˙ 22 x ˙ 1 n x ˙ 2 n x ˙ k 1 x ˙ k 2 x ˙ k n ) ( y ˙ 1 y ˙ 2 y ˙ n ) = ( t = 1 n x ˙ 1 t y ˙ t t = 1 n x ˙ 2 t y ˙ t t = 1 n x ˙ k t y ˙ t )

2.1.4. 多元线性回归的标准化

样本数据的标准化公式:

x i t = x i t x ¯ i ( x i t x ¯ i ) 2 / ( n 1 ) = x ˙ i t x ˙ i t 2 / ( n 1 ) = x ˙ i t σ x i ( i = 1 , 2 , , k )

y t = y t y ¯ ( y t y ¯ ) 2 / ( n 1 ) = y ˙ t ( y t y ¯ ) 2 / ( n 1 ) = y ˙ t σ y ( t = 1 , 2 , , n )

同中心化类似,用最小二乘方法,求出标准化的样本数据 ( y ˜ t , x ˜ 1 t , x ˜ 2 t , , x ˜ k t ) 的经验回归方程,记为 y ^ t = b ^ 1 x 1 t + b ^ 2 x 2 t + + b ^ k x k t

其中: b ^ 1 , b ^ 2 , , b ^ k 为y对自变量 x 1 , x 2 , , x k 的标准化回归系数,标准化包括了中心化。

标准化回归系数与最小二乘回归系数之间存在关系式 b ^ i = σ x i σ y b ^ i ( i = 1 , 2 , , k )

其中: σ x i , σ y x i , y 的样本标准差,普通最小二乘估计 b ^ i (或中心化回归系数)表示在其他变量不变的情况下,自变量 x i 的每单位的绝对变化引起的因变量均值的绝对变化量。

标准化回归系数 b ^ t 表示自变量 x i 的1%相对变化(相对于标准差)引起的因变量均值的相对变化百分数(相对于标准差)。

由样本观测值 x i 1 , x i 2 , , x i k ( i = 1 , 2 , , n ) ,分别计算 x i x j 的简单相关系数 r i j ,得自变量样本相关系

数矩阵 R = ( 1 r 12 r 1 k r 21 1 r 2 k r k 1 r k 2 1 )

若记: X = ( x i j ) n × k ,表示标准化的设计阵,则相关系数矩阵可以表示为

R = ( X ) X = ( 1 r 12 r 1 k r 21 1 r 2 k r k 1 r k 2 1 )

相关系数矩阵R是对称矩阵,若 X 满秩,则R为对称正定矩阵。

2.2. 实验数据运行

2.2.1. 一元线性模型 不做处理

matlab程序:

x_1=[143 144 145 147 148 150 153 154 155 156 157 158 159 160 161 162]';

X=[ones(16,1),x_1];

Y=[87 85 88 91 92 90 93 95 98 98 97 95 97 99 100 102]';

[b,bint,r,rint,stats]=regress(Y,X)

t=1:16;

figure(1);

y_fitting=X(t,:)*b;

plot(t,y_fitting,'r-',t,Y(t,:),'b-',t,abs(y_fitting-Y(t,:)),'k-');

legend('红--拟合值','蓝--实际值','黑--误差值');

text(8,50,strcat('相关系数R=',num2str(stats(1,1))));

text(8,40,strcat('F=',num2str(stats(1,2))));

text(8,30,strcat('P=',num2str(stats(1,3),'%f')));

nhfcsl=strcat('拟合方程式Y1=',num2str(b(1,1)),'+',num2str(b(2,1)),'*x1');

text(8,20,nhfcsl);

title('线性回归方程拟合结果');

xlabel('样本点');ylabel('y');

figure(2);

u1=rint(:,1);

I1=rint(:,2);

plot(t,I1,'b-',t,r,'R*',t,u1,'g-');

legend('蓝--残差95%置信区间的上限','红--残差值','绿--残差95%置信区间下限');

xlabel('样本点');ylabel('残差值');

运行结果如图1图2

stats = 0.9047132.8768 0.0000 2.5357

Figure 1. Fitting results of linear regression equation with one variable

图1. 一元线性回归方程拟合结果

Figure 2. Diagramof the sample residual

图2. 样本残差图

由以上运行结果可得到:

参数的估计: b ^ 0 = 20.7500 , b ^ 1 = 0.7500

回归方程为: y ^ = 20.7500 + 0.7500 x 1 (1)

b 0 的区间估计: ( 42.1526 , 0.6526 )

b 1 的区间估计: ( 0.6105 , 0.8895 )

拟合优度(回归平方和和总离差平方和的比值) R 2 = 0.9047 ,表示回归值对观测值的拟合程度,值越接近1,说明回归直线对观测值的拟合程度越好。

F值(方差检验量) F = 132.8768 ,是整个模型的整体检验,值越大,说明回归方程越显著。

p值 p = 0.000000 ,其值小于0.05或0.01时说明系数通过检验。

结论:将残差的置信上下限和实际残差值绘制出来后可看到,残差值都在区间内,回归模型正常;将实际数据值和拟合值分别绘制成折线图之后可看到,两条曲线非常接近,可从直观上说明拟合程度较好。从数值上,拟合优度接近1,方差检验量也较大,p值也说明系数通过了检验。故上述回归方程拟合较好。

2.2.2. 一元线性模型 做中心化处理(减均值)

x_1=[143 144 145 147 148 150 153 154 155 156 157 158 159 160 161 162]';

a_1=mean(x_1')

X=[ones(16,1),x_1-a_1];

Y=[87 85 88 91 92 90 93 95 98 98 97 95 97 99 100 102]';

b_1=mean(Y')

Y=Y-b_1;

[b,bint,r,rint,stats]=regress(Y,X)

t=1:16;

类似地,可得到:

参数的估计: b ^ 0 = 0.0000 , b ^ 1 = 0.7500

回归方程为: y ˙ ^ = 0.7500 x ˙ 1

x ¯ 1 = 153.2500 , y ¯ = 94.1875

代回原始数据得: y ^ y ¯ = 0.7500 ( x 1 x ¯ )

y ^ = 20.7500 + 0.7500 x 1 (2)

b 0 的区间估计: ( 0.8538 , 0.8538 )

b 1 的区间估计: ( 0.6105 , 0.8895 )

拟合优度 R 2 = 0.9047 方差检验量 F = 132.8768 p值 p = 0.0000

2.2.3. 一元线性模型 做标准化处理(减均值再除以标准差)

x_1=[143 144 145 147 148 150 153 154 155 156 157 158 159 160 161 162]';

a_1=mean(x_1')

s_x=std(x_1)

X=[ones(16,1),(x_1-a_1)/s_x];

Y=[87 85 88 91 92 90 93 95 98 98 97 95 97 99 100 102]';

b_1=mean(Y')

s_y=std(Y')

Y=(Y-b_1)/s_y;

[b,bint,r,rint,stats]=regress(Y,X)

t=1:16;

参数的估计: b ^ 0 = 0.0000 , b ^ 1 = 0.9511

回归方程为: y ˙ ^ = 0.9511 x 1 *

x ¯ 1 = 153.2500 , y ¯ = 94.1875 , s x = 6.3193 , s y = 4.9829

代回原始数据得: y ^ y ¯ s y = 0.9511 ( x 1 x ¯ ) s x

y ^ = 20.7500 + 0.7500 x 1 (3)

b 0 的区间估计: ( 0.1714 , 0.1714 )

b 1 的区间估计: ( 0.7742 , 1.1281 )

拟合优度 R 2 = 0.9047 方差检验量 F = 132.8768 p值 p = 0.0000

2.2.4. 多元线性模型 不做处理

matlab程序:

x_1=[143 144 145 147 148 150 153 154 155 156 157 158 159 160 161 162]';

x_2=unifrnd(2,4,16,1);

x_3=rand(16,1);

X=[ones(16,1),x_1,x_2,x_3*10];

Y=[87 85 88 91 92 90 93 95 98 98 97 95 97 99 100 102]';

[b,bint,r,rint,stats]=regress(Y,X)

t=1:16;

figure(1);

y_fitting=X(t,:)*b;

plot(t,y_fitting,'r-',t,Y(t,:),'b-',t,abs(y_fitting-Y(t,:)),'k-');

legend('红--拟合值','蓝--实际值','黑--误差值');

text(2,50,strcat('相关系数R=',num2str(stats(1,1))));

text(2,50,strcat('F=',num2str(stats(1,2))));

text(2,50,strcat('P=',num2str(stats(1,3),'%f')));

nhfcsl=strcat('拟合方程式Y1=',num2str(b(1,1)),'+',num2str(b(2,1)),'*x1','+',num2str(b(3,1)),'*x2','+', num2str(b(4,1)),'*x3');

text(2,50,nhfcsl);

title('线性回归方程拟合结果');

xlabel('样本点');ylabel('y');

figure(2);

u1=rint(:,1);

I1=rint(:,2);

plot(t,I1,'b-',t,r,'R*',t,u1,'g-');

legend('蓝--残差95%置信区间的上限','红--残差值','绿--残差95%置信区间下限');

xlabel('样本点');ylabel('残差值');

运行结果如图3

stats = 0.9069 38.9804 0.0000 2.8884

Figure 3. Fitting results of multiple linear regression equations

图3. 多元线性回归方程拟合结果

由以上运行结果可得到:

参数的估计: b ^ 0 = 23.2385 , b ^ 1 = 0.7629 , b ^ 2 = 0.0390 , b ^ 3 = 0.0781

y ^ = 23.3285 + 0.7629 x 1 + 0.0390 x 2 + 0.0781 x 3 (4)

b 0 的区间估计: ( 48.7709 , 2.1139 )

b 1 的区间估计: ( 0.6014 , 0.9244 )

b 2 的区间估计: ( 1.4414 , 1.5195 )

b 3 的区间估计: ( 0.2778 , 0.4340 )

拟合优度(回归平方和和总离差平方和的比值) R 2 = 0.9069 ,表示回归值对观测值的拟合程度,值越接近1,说明回归直线对观测值的拟合程度越好。

F值(方差检验量) F = 38.9804 ,是整个模型的整体检验,值越大,说明回归方程越显著。

p值 p = 0.000002 ,其值小于0.05或0.01时说明系数通过检验。

结论:将残差的置信上下限和实际残差值绘制出来后可看到,残差值都在区间内,回归模型正常;将实际数据值和拟合值分别绘制成折线图之后可看到,两条曲线非常接近,可从直观上说明拟合程度较好。从数值上,拟合优度接近1,方差检验量也较大,p值也说明系数通过了检验。故上述回归方程拟合较好。

2.2.5. 多元线性模型 做中心化处理(减均值)

x_1=[143 144 145 147 148 150 153 154 155 156 157 158 159 160 161 162]';

x_2=unifrnd(2,4,16,1);

x_3=rand(16,1)*10;

a_1=mean(x_1')

a_2=mean(x_2')

a_3=mean(x_3')

X=[ones(16,1),x_1-a_1,x_2-a_2,x_3-a_3];

Y=[87 85 88 91 92 90 93 95 98 98 97 95 97 99 100 102]';

b_1=mean(Y')

Y=Y-b_1;

[b,bint,r,rint,stats]=regress(Y,X)

t=1:16;

类似地,可得到:

参数的估计: b ^ 0 = 0.0000 , b ^ 1 = 0.7629 , b ^ 2 = 0.0390 , b ^ 3 = 0.0781

y ^ = 0.7629 x ˙ 1 + 0.0390 x ˙ 2 + 0.0781 x ˙ 3

x ¯ 1 = 153.2500 , x ¯ 2 = 3.2189 , x ¯ 3 = 6.0626 , y ¯ = 94.1875

代回原数据: y ^ y ¯ = 0.7629 ( x 1 x ¯ 1 ) + 0.0390 ( x 2 x ¯ 2 ) + 0.0781 ( x 3 x ¯ 3 )

y ^ = 23.3260 + 0.7629 x 1 + 0.0390 x 2 + 0.0781 x 3 (5)

b 0 的区间估计: ( 0.9257 , 0.9257 )

b 1 的区间估计: ( 0.6014 , 0.9244 )

b 2 的区间估计: ( 1.4414 , 1.5195 )

b 3 的区间估计: ( 0.2778 , 0.4340 )

拟合优度 R 2 = 0.9069 ,方差检验量 F = 38.9804 ,p值 p = 0.0000

2.2.6. 多元线性模型 做标准化处理(减均值再除以标准差)

x_1=[143 144 145 147 148 150 153 154 155 156 157 158 159 160 161 162]';

x_2=unifrnd(2,4,16,1);

x_3=rand(16,1)*10;

a_1=mean(x_1')

a_2=mean(x_2')

a_3=mean(x_3')

s_1=std(x_1)

s_2=std(x_2)

s_3=std(x_3)

X=[ones(16,1),(x_1-a_1)/s_1,(x_2-a_2)/s_2,(x_3-a_3)/s_3];

Y=[87 85 88 91 92 90 93 95 98 98 97 95 97 99 100 102]';

b_1=mean(Y')

s_y=std(Y)

Y=(Y-b_1)/s_y;

[b,bint,r,rint,stats]=regress(Y,X)

t=1:16;

参数的估计: b ^ 0 = 0.0000 , b ^ 1 = 0.9827 , b ^ 2 = 0.1857 , b ^ 3 = 0.0260

y ^ = 4.7335 x 1 * 0.1463 x 2 * + 0.1246 x 3 *

x ¯ 1 = 153.2500 , x ¯ 2 = 2.8550 , x ¯ 3 = 5.1213 , y ¯ = 94.1875

s 1 = 6.3193 , s 2 = 0.4895 , s 3 = 3.6571 , s y = 4.9829

代回原数据: y ^ y ¯ s y = 0.7629 ( x 1 x ¯ 1 ) s 1 + 0.0390 ( x 2 x ¯ 2 ) s 2 + 0.0781 ( x 3 x ¯ 3 ) s 3

y ^ = 0.3140 + 0.6016 x 1 + 0.3970 x 2 + 0.1064 x 3 (6)

b 0 的区间估计: ( 0.1580 , 0.1580 )

b 1 的区间估计: ( 0.8137 , 1.1517 )

b 2 的区间估计: ( 0.4060 , 0.0345 )

b 3 的区间估计: ( 0.1916 , 0.2435 )

拟合优度 R 2 = 0.9327 方差检验量 F = 55.3995 p值 p = 0.0000

3. 实验结论

对一元线性回归模型,由以上的数据模拟可看出,不做处理,做中心化处理和做标准化处理均没有改变 R 2 , F 的值;未代回原始数据之前,和不做处理相比,中心化处理后的线性回归方程少了常数项,相当于是做了坐标轴的平移,标准化处理后的线性回归方程不仅少了常数项,系数也发生了改变,相当于改变了坐标的分度值;但代回原始数据之后,三个线性方程相同。

对多元线性回归,可以看出,做了中心化处理之后,得到的方程不含常数项,其他系数和 R 2 , F 值均相同,且代回原始数据之后得到和不做处理相同的回归方程;做了标准化处理后,各系数的值均有不同程度的变化,由于有随机数的参与,此时无法准确比较,但观察数据,不做任何处理时计算出来的结果会由于值的大小,比如第一行数据和第二行数据相差近100倍,产生的相应的估计有较大的差距。但透过数据的变化情况,两个因素对响应变量的影响又很接近,这也就告诉我们,在比较影响时不能直接比较,需要做标准化处理。

总之,数据的中心化处理相当于将坐标轴的原点移至样本中心,数据的标准化处理相当于是将不同指标化为同一尺度标准和数量级,方便比较。

特别地,在用多元线性回归方程描述某种经济现象时,由于自变量所用的单位大都不同,数据的大小差异也往往很大,这就不利于放在同一标准上进行比较。将样本数据作标准化处理后就消除了量纲不同和数量级的差异所带来的影响。

参考文献

[1] 邓集贤, 等. 概率论与数理统计(下册) [M]. 北京: 高等教育出版社, 2009.