* REVUE.PRG : illustrations de la régression linéaire * ALL 5 * * Données exemple 5-1, page 211, Johnston * DATA(UNIT=INPUT,ORG=OBS) 1 5 Y X1 X2 X3 3 1 3 5 1 1 1 4 8 1 5 6 3 1 2 4 5 1 4 6 PRINT 1 5 * * Création des matrices * MAKE YMAT 1 5 # Y MAKE XMAT 1 5 # X1 X2 X3 WRITE YMAT WRITE XMAT * * Matrice X'X ET X'Y * COMPUTE XMAT_XMAT = TR(XMAT)*XMAT WRITE XMAT_XMAT COMPUTE XX_INV = INV(XMAT_XMAT) COMPUTE XMAT_YMAT = TR(XMAT)*YMAT WRITE XMAT_YMAT * * Vecteur de coefficients b=(X'X)**(-1)*X'Y * COMPUTE COEFF = INV(TR(XMAT)*XMAT)*TR(XMAT)*YMAT WRITE COEFF * * Calcul de e * COMPUTE ERREUR = YMAT-XMAT*COEFF WRITE ERREUR * * somme des erreurs au carré * COMPUTE SSR = TR(ERREUR)*ERREUR WRITE SSR COMPUTE S2 = SSR(1,1)/2.0 WRITE S2 * * Somme des erreurs * COMPUTE SOMME_ERREUR = TR(X1)*ERREUR WRITE SOMME_ERREUR * * Orthogonalité * COMPUTE X2_ERREUR = TR(X2)*ERREUR WRITE X2_ERREUR COMPUTE X3_ERREUR = TR(X3)*ERREUR WRITE X3_ERREUR * * Test-t * H0 B2=0 * COMPUTE TEST_T = (COEFF(2,1)-0.0)/(SQRT(S2)*XX_INV(2,2)) CDF TTEST TEST_T 2 * * Test-F HO B2=B3=0 * * Méthode 1 * selon [(b-B0)'X'X(b-B0)/q]/[e'e/(n-k)] * * Note : Rats ne permet pas la division d'une matrice par un scalaire. Il faut * multiplier par l'inverse. Note S2=e'e/(n-k). Attention aux particularités * des multiplications matricielles. Entre autres, pour accéder à TEST_F, * il faut utiliser TEST_F(1,1) et on TEST_F tout cours. * DECLARE VECTOR B_B(3) COMPUTE B_B(1) = 0.0, B_B(2)=COEFF(2,1), B_B(3)=COEFF(3,1) WRITE B_B COMPUTE TEST_F = (TR(B_B)*XMAT_XMAT*B_B)*(1/2.0)*(1/S2) CDF FTEST TEST_F(1,1) 2 2 * * * Régression avec RATS * LINREG Y 1 5 E # X1 X2 X3 COMPUTE RSSNC =%RSS PRJ YFIT PRINT 1 5 Y YFIT E * * Méthode 2 selon la régression * RESTRICT 2 # 2 # 1 0 # 3 # 1 0 * * Méthode 3 * EXCLUDE # X2 X3 * * Méthode 4 * LINREG Y 1 5 # X1 COMPUTE RSSC =%RSS COMPUTE F = ((RSSC-RSSNC)/2.0)/(RSSNC/(5.0-3.0)) CDF FTEST F 2 2