回归分析的R平方调整分析
关键词:回归分析中r平方,回归分析中的r平方,回归分析调整r方,线性回归方程r平方值
运用SAS进行Monte Carlo蒙特卡罗模拟(第九弹):
回归分析的R平方调整分析
R平方:决定系数,反应因变量的全部变异能通过回归关系被自变量解释的比例。如R平方为0.8,则表示回归关系可以解释因变量80%的变异。换句话说,如果我们能控制自变量不变,则因变量的变异程度会减少80%
但是,R平方也有其局限性:R平方随着自变量的增加会变大,R平方和样本量是有关系的。因此,我们要到R平方进行修正。修正的方法很多,本例主要介绍四种常见的修正R平方的方法。
调整公式如下:
RSQ_ADJ1=1-(N/(N-P))*(1-RSQ);
RSQ_ADJ2=1-((N-1)/(N-P-1))*(1-RSQ);
RSQ_ADJ3=1-((N-1)/(N-P))*(1-RSQ);
RSQ_ADJ4=RSQ-((P-2)/(N-P-1))*(1-RSQ)-(2*(N-3))/((N-P-1)*(N-P+1))*(1-RSQ)**2;
其中,N为观测值个数,P为预测变量个数,RSQ为原R平方值。
本例只考察了好坏样本比例的R平方的调整。首先生成指定相关系数的变量样本,然后再对样本进行回归分析,并记录下其R平方值,并计算修正的R平方值,将这些结果进行统计分析。
LIBNAME REG ‘C:\REG’;
PROC PRINTTO LOG=’C:\REG\LOGFILE.TMP’;**输出日志到文件中;
RUN;
DATA A (TYPE=CORR);**得到要生成样本的各变量间的相关系数;
_TYPE_=’CORR’;
INPUT X1 X2 X3 X4 X5 X6 X7 X8 Y;
CARDS;
1.00 . . . . . . . .
0.30 1.00 . . . . . . .
0.30 0.30 1.00 . . . . . .
0.30 0.30 0.30 1.00 . . . . .
0.30 0.30 0.30 0.30 1.00 . . . .
0.30 0.30 0.30 0.30 0.30 1.00 . . .
0.30 0.30 0.30 0.30 0.30 0.30 1.00 . .
0.30 0.30 0.30 0.30 0.30 0.30 0.30 1.00 .
.44019 .44019 .44019 .44019 .44019 .44019 .44019 .44019 1.00
;
RUN;
PROC FACTOR N=9 OUTSTAT=FACOUT;
DATA PATTERN; SET FACOUT;
IF _TYPE_=’PATTERN’;
DROP _TYPE_ _NAME_;
RUN;
%MACRO REG;
%DO A=1 %TO 3;**样本数量:20 40 80;
%IF &A=1 %THEN %DO; %LET N=20; %END;
%IF &A=2 %THEN %DO; %LET N=40; %END;
%IF &A=3 %THEN %DO; %LET N=80; %END;
%DO REP=1 %TO 2000; *每一类样本数量模拟次数:2000;
PROC IML; **生成样本,详见第七弹;
USE PATTERN;
READ ALL VAR _NUM_ INTO F;
F=F`;
DAT=RANNOR(J(&N,9,0));
DAT=DAT`;
DAT=F*DAT;
DAT=DAT`;
CREATE REGDATA FROM DAT[COLNAME={X1 X2 X3 X4 X5 X6 X7 X8 Y}];
APPEND FROM DAT;
PROC REG DATA=REGDATA NOPRINT OUTEST=REGOUT;**回归分析,结果输出到REGOUT数据集中;
MODEL Y =X1 X2 X3 X4 X5 X6 X7 X8 / SELECTION=RSQUARE;*变量选择方式:R平方;
RUN;
DATA A; SET REGOUT;
IF _IN_=8; * 取有R平方值的样本数据;
P=8; N=&N; NP_RATIO=N/P; * 得到数据相关信息:好坏样本比,样本数量;
RSQ=_RSQ_; * 得到R平方;
RSQ_ADJ1=1-(N/(N-P))*(1-RSQ); * 四个R平方调整公式;
RSQ_ADJ2=1-((N-1)/(N-P-1))*(1-RSQ);
RSQ_ADJ3=1-((N-1)/(N-P))*(1-RSQ);
RSQ_ADJ4=RSQ-((P-2)/(N-P-1))*(1-RSQ)-(2*(N-3))/((N-P-1)*(N-P+1))*(1-RSQ)**2;
BIAS_RSQ=RSQ-0.50; * 调整R平方值;
BIAS1=RSQ_ADJ1-0.50;
BIAS2=RSQ_ADJ2-0.50;
BIAS3=RSQ_ADJ3-0.50;
BIAS4=RSQ_ADJ4-0.50;
KEEP N P NP_RATIO RSQ RSQ_ADJ1 RSQ_ADJ2 RSQ_ADJ3 RSQ_ADJ4 BIAS_RSQ BIAS1 BIAS2 BIAS3 BIAS4;
PROC APPEND BASE=REG.REG8_RSQ; **R平方数据导出;
%END;
%END;
%MEND REG;
%REG;
RUN;
DATA A; SET REG.REG8_RSQ;
PROC SORT; BY NP_RATIO;
PROC MEANS; BY NP_RATIO; **得到平均R平方偏离度;
VAR BIAS_RSQ BIAS1 BIAS2 BIAS3 BIAS4;
RUN;
结果:
——————————— NP_RATIO=2.5 ———————————-
MEANS 过程
变量 N 均值 标准偏差 最小值 最大值
——————————————————————————–
BIAS_RSQ 2000 0.1990950 0.1243102 -0.2901099 0.4511155
BIAS1 2000 -0.0015084 0.2071836 -0.8168498 0.4185259
BIAS2 2000 -0.0197451 0.2147175 -0.8647353 0.4155632
BIAS3 2000 0.0235670 0.1968244 -0.7510073 0.4225996
BIAS4 2000 0.0097647 0.2123501 -0.8695076 0.4238831
——————————————————————————–
———————————— NP_RATIO=5 ———————————
变量 N 均值 标准偏差 最小值 最大值
——————————————————————————–
BIAS_RSQ 2000 0.0948840 0.0992950 -0.2823648 0.3421692
BIAS1 2000 -0.0063949 0.1241187 -0.4779560 0.3027116
BIAS2 2000 -0.0096620 0.1249195 -0.4842654 0.3014387
BIAS3 2000 0.0062649 0.1210158 -0.4535071 0.3076438
BIAS4 2000 0.0038899 0.1246142 -0.4780669 0.3098194
——————————————————————————–
———————————– NP_RATIO=10 ———————————-
变量 N 均值 标准偏差 最小值 最大值
——————————————————————————–
BIAS_RSQ 2000 0.0445254 0.0746831 -0.2745696 0.2722497
BIAS1 2000 -0.0060829 0.0829813 -0.3606329 0.2469441
BIAS2 2000 -0.0067957 0.0830981 -0.3618451 0.2465877
BIAS3 2000 0.000243167 0.0819440 -0.3498750 0.2501073
BIAS4 2000 -0.000295106 0.0830707 -0.3578525 0.2514620
——————————————————————————–
我们可以看到,好坏样本比例差不多时,R平方的偏差最大。随着好坏样本比的增大,R平方的偏差在逐渐减小(0.1990950->0.0948840->0.0445254),减小的比例也与好坏样本比大体一致,即4:2:1。
参考资料
Xitao Fan, etc..Monte Carlo Studies: A Guide for Quantitative Researchers. SAS Institute Inc.,2002
本文章只用于学习,请不要用于商业目的,否则后果自负。
转载请注明:数据分析 » 回归分析的R平方调整分析_回归分析中r平方