回归分析的R平方调整分析

原文地址:回归分析的R平方调整分析作者:supersasmacro

运用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:REGLOGFILE.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 过程

变量                   均值        标准偏差          最小值          最大值

——————————————————————————–

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 ———————————

变量                   均值        标准偏差          最小值          最大值

——————————————————————————–

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 ———————————-

变量                   均值        标准偏差          最小值          最大值

——————————————————————————–

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平方调整分析

本文共4556个字 创建时间:2015年8月8日19:25   

分享到:更多 ()