Saltar al contenido principal
LibreTexts Español

11.3: Regresión de OLS en forma de matriz

  • Page ID
    150248
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \) \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)\(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\) \(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\)\(\newcommand{\AA}{\unicode[.8,0]{x212B}}\)

    Como fue el caso de la regresión simple, queremos minimizar la suma de los errores al cuadrado, ee. En notación matricial, el modelo OLS es Y=xB+EY=Xb+E, donde E=Y−xBe=Y−xB. La suma del ee cuadrado es:

    e2i= [e1e2es] e1e2en=e′e (11.1) (11.1) ei2= [e1e2en] [e1e2es] =e′e

    Por lo tanto, queremos encontrar el bb que minimiza esta función:

    e′e= (Y−xB) ′ (Y−xB) =Y′y−x′y−Y′xb+B′xxb=Y′y−2B′x'y+B′xB′xB+B′xb′ (Y−xB) '(Y−xB) =Y′y−xXb+B′x′xB+B′x′xb+B′x′xb+B′x′xb+B′x′xb+B′x′xb+= Y′y−2B′x′y+B′x′xB

    Para ello tomamos la derivada de e′ee′e w.r.t bb y la establecemos igual a 00.

    e′eb=−2x′y+2x′xb=0e′eb=−2x′y+2x′xb=0Para resolver esto restamos 2X′Xb2x′Xb de ambos lados: −2x′xb=−2x′y−2x′xb=−2x′y

    Luego para eliminar los −2−2's, multiplicamos cada lado por −1/2−1/2. Esto nos deja con:

    (X′X) B = X′y (X′X) B = X′y

    Para resolver para bb multiplicamos ambos lados por la inversa de X′X, (X′X) −1X′X, (X′X) −1. Tenga en cuenta que para las matrices esto equivale a dividir cada lado por X′XX′X. Por lo tanto:

    b= (X′X) −1x′Y (11.2) (11.2) b= (X′X) −1x′Y

    La matriz X′XX′X es cuadrada, y por lo tanto invertible (es decir, existe la inversa). Sin embargo, la matriz X′XX′X puede ser no invertible (es decir, singular) si n<kn<k —el número de variables independientes kk excede el nn-tamaño— o si una o más de las variables independientes están perfectamente correlacionadas con otra variable independiente. Esto se califica de multicolinealidad perfecta y se discutirá con más detalle en el Capítulo 14. También tenga en cuenta que la matriz X′XX′X contiene la base de todas las medias, varianzas y covarianzas necesarias entre los XX.

    X′X=nx1x2x3x3x1x21x1x2x1x3x2x2x2X1x22x2x3x3x3x3x1λx2x23X′X= [nx1X2x3x1X12x1x3x2x2x1x22x2x3x3x3x3x1x3x2x32]

    Regresión en forma de matriz

    Suponga un modelo usando observaciones nn, parámetros kk y variables k−1k−1, XiXi (independientes).
    y=xb+e^y=xBB =( X′X) −1x′yy=xb+ey^=xBB =( X′X) −1x′y

    • y=n*1y=n*1 vector de columna de observaciones del DV, YY
    • ^y=n*1y^=n*1 vector de columna de valores YY predichos
    • x=N*kx=N*K matriz de observaciones de los IVs; primera columna 11s
    • b=k*1b=k*1 vector de columna de coeficientes de regresión; la primera fila es AA
    • e=n*1e=n*1 vector de columna de nn valores residuales

    Usando los siguientes pasos, usaremos R para calcular bb, un vector de coeficientes de regresión; ^yy^, un vector de valores yy pronosticados; y ee, un vector de residuales.

    Queremos ajustar el modelo y=xb+EY=xb+e a las siguientes matrices:

    y=6114359104517341825]

    Crea dos objetos, la matriz yy y la matriz XX.

    y <- matrix(c(6,11,4,3,5,9,10),7,1)
    y
    ##      [,1]
    ## [1,]    6
    ## [2,]   11
    ## [3,]    4
    ## [4,]    3
    ## [5,]    5
    ## [6,]    9
    ## [7,]   10
    X <- matrix(c(1,1,1,1,1,1,1,4,7,2,1,3,7,8,5,2,6,9,4,3,2,4,3,4,6,5,4,5),7,4)
    X
    ##      [,1] [,2] [,3] [,4]
    ## [1,]    1    4    5    4
    ## [2,]    1    7    2    3
    ## [3,]    1    2    6    4
    ## [4,]    1    1    9    6
    ## [5,]    1    3    4    5
    ## [6,]    1    7    3    4
    ## [7,]    1    8    2    5

    Calcular bb: b= (X′X) −1x′yb= (X′X) −1x′y.

    Podemos calcular esto en R en tan solo unos pasos. Primero, transponemos XX para obtener X′X′.

    X.prime <- t(X)
    X.prime
    ##      [,1] [,2] [,3] [,4] [,5] [,6] [,7]
    ## [1,]    1    1    1    1    1    1    1
    ## [2,]    4    7    2    1    3    7    8
    ## [3,]    5    2    6    9    4    3    2
    ## [4,]    4    3    4    6    5    4    5

    Después multiplicamos XX por X′X′; (X′XX′X).

    X.prime.X <- X.prime %*% X
    X.prime.X
    ##      [,1] [,2] [,3] [,4]
    ## [1,]    7   32   31   31
    ## [2,]   32  192  104  134
    ## [3,]   31  104  175  146
    ## [4,]   31  134  146  143

    A continuación, encontramos la inversa de X′XX′X; X′X−1X′X−1

    X.prime.X.inv<-solve(X.prime.X)
    X.prime.X.inv
    ##            [,1]        [,2]        [,3]        [,4]
    ## [1,] 12.2420551 -1.04528602 -1.01536017 -0.63771186
    ## [2,] -1.0452860  0.12936970  0.13744703 -0.03495763
    ## [3,] -1.0153602  0.13744703  0.18697034 -0.09957627
    ## [4,] -0.6377119 -0.03495763 -0.09957627  0.27966102

    Luego, multiplicamos X′X−1X′X−1 por X′X′.

    X.prime.X.inv.X.prime<-X.prime.X.inv %*% X.prime
    X.prime.X.inv.X.prime
    ##             [,1]        [,2]        [,3]       [,4]       [,5]       [,6]
    ## [1,]  0.43326271  0.98119703  1.50847458 -1.7677436  1.8561970 -0.6718750
    ## [2,]  0.01959746  0.03032309 -0.10169492  0.1113612 -0.2821769  0.1328125
    ## [3,]  0.07097458  0.02198093 -0.01694915  0.2073623 -0.3530191  0.1093750
    ## [4,] -0.15677966 -0.24258475 -0.18644068  0.1091102  0.2574153 -0.0625000
    ##             [,7]
    ## [1,] -1.33951271
    ## [2,]  0.08977754
    ## [3,] -0.03972458
    ## [4,]  0.28177966

    Finalmente, para obtener el vector bb multiplicamos X′X−1X′X′X−1X′ por yy.

    b<-X.prime.X.inv.X.prime %*% y
    b
    ##             [,1]
    ## [1,]  3.96239407
    ## [2,]  1.06064619
    ## [3,]  0.04396186
    ## [4,] -0.48516949

    Podemos usar la función lm en R para verificar y ver si nuestro enfoque de matriz “a mano” obtiene el mismo resultado que la rutina de regresión múltiple “enlatada”:

    lm(y~0+X)
    ## 
    ## Call:
    ## lm(formula = y ~ 0 + X)
    ## 
    ## Coefficients:
    ##       X1        X2        X3        X4  
    ##  3.96239   1.06065   0.04396  -0.48517

    Calcular ^yy^: ^y=xBy^=xB.

    Para calcular el vector ^yy^ en R, simplemente multiplique X y b.

    y.hat <- X %*% b 
    y.hat
    ##           [,1]
    ## [1,]  6.484110
    ## [2,] 10.019333
    ## [3,]  4.406780
    ## [4,]  2.507680
    ## [5,]  4.894333
    ## [6,]  9.578125
    ## [7,] 10.109640

    Calcular ee.

    Para calcular ee, el vector de residuos, simplemente restar el vector yy del vector ^yy^.

    e <- y-y.hat
    e
    ##            [,1]
    ## [1,] -0.4841102
    ## [2,]  0.9806674
    ## [3,] -0.4067797
    ## [4,]  0.4923199
    ## [5,]  0.1056674
    ## [6,] -0.5781250
    ## [7,] -0.1096398

    This page titled 11.3: Regresión de OLS en forma de matriz is shared under a CC BY 4.0 license and was authored, remixed, and/or curated by Jenkins-Smith et al. (University of Oklahoma Libraries) via source content that was edited to the style and standards of the LibreTexts platform; a detailed edit history is available upon request.