Está en la página 1de 19

Chapter 1

Matrices en R
Deybi A. Morales Len

Nota: Este documento es presentado para ser revisado por la comunidad


de Usuarios R Nicaragua. Errores u omisiones, comentarios y sugerencias
escribir al grupo https://www.facebook.com/groups/usuariosrnicaragua/
o a morales.economia@gmail.com.

Se le considera a R como un software con las misma potencialidades


matriciales que matlab. Adems de su fcil programacin las posibilidades con matrices son ilimitadas. Esto pone al alcanze de todo economista aplicado una herramienta menos pesada y programacin menos rgida que la de matlab para el tratamiento de matrices. Veamos pues algunas posibilidadades matriciales de R.

1.1 Construyendo matrices


Las funciones necesarias para construir matrices se encuentran en
el paquete Matrix.
Podemos convertir vectores en matrices.
>X<-matrix(data, nrow, ncol, byrow)
. La sintaxis empieza con el nombre de la matriz, luego la funcin
para generar la matriz, seguido de abrir parntesis, el nombre del
vector creado, sigue el nmero de filas, nmero de columnas y cmo
empezarn las observaciones por filas o por columnas. Para Darle el
orden de cmo agrupar por fila agregamos byrow=TRUE, para que se
agrupen en columnas byrow=FALSE.
Miremos el ejemplo:
>seq1 <- seq(1:6)

Deybi A. Morales Len

>matrix1<-matrix(seq1,3,2, byrow=TRUE)
> matrix1
[,1] [,2]
[1,]
1
2
[2,]
3
4
[3,]
5
6
>
Se notar que se empiezan a grupar las las observaciones de fila
en fila. Pero ecuando aplicamos byrow=FALSE, estas se agruparn
en columnas.
> seq1<-seq(1:6)
> seq1
[1] 1 2 3 4 5 6
> matrix1<-matrix(seq1,3,2,byrow=FALSE)
> matrix1
[,1] [,2]
[1,]
1
4
[2,]
2
5
[3,]
3
6
>
Es simptica la forma en que se presenta un matriz en R. Si queremos identificar la columna dos solo debemos guiarnos por el encabezado, en el anterior caso [,2].
Cada que veamos una matrix debemos recordar que se conforma
de [filas, columnas]. nrow=nmero de filas y ncol=nmero de columnas.
para conocer las dimenciones de una matriz creada utilizamos la
funcin dim:
> dim(matrix1)
[1] 3 2
>
Imaginmosnos en el caso de unir dos matrices con matrices o con
un vector, entonce utilizaremos la funcin cbind:
> v1<-c(1,1,2)
> matrix2<-cbind(matrix1,v1)
> matrix2
v1
[1,] 1 4 1
[2,] 2 5 1
[3,] 3 6 2
La funcin cbind convierte data.frame en matrices.

1 Matrices en R

> A<-as.matrix(tasasinflacion[,2:12])
> A
X2000 X2001 X2002 X2003 X2004 X2005 X2006 X2007 X2008 X2009 X2010
[1,]
NA
NA
NA 2.60 3.10 3.70 4.20 2.30 6.40 -1.10 0.90
[2,] 10.25 10.96 9.68 9.87 13.13 14.07 9.43 10.81 13.90 4.05 5.82
[3,] 4.30 1.40 2.80 2.50 5.40 4.30 4.90 4.90 5.50 -0.20
NA
[4,] 5.08 8.91 6.33 5.85 9.23 8.57 5.79 8.75 9.40 -0.28 4.51
[5,] 0.10 0.09 0.08 0.08 0.07 0.08 0.07 0.09 0.10 3.00
NA
[6,] 9.87 4.84 3.87 6.48 9.26 9.58 9.45 16.88 13.77 0.93
NA
[7,] 14.00 14.30 15.50 0.10 0.50 3.40 6.00 10.40 20.00 22.90 25.60
>
En la tabla anterior tenemos la tasa anual de inflacin por pases
centromericanos. A travs de la funcin cbind la hemos convertido a
la matriz A.
Si tuvieramos la tasa de inflacin para el ao 2002 en Belice, solo
aplicamos segn la ubicacin del elemento para cambiar la observacin. Por ejemplo supongamos que fue de dos puntos:
> A[1,3]=2
> A
X2000 X2001 X2002 X2003 X2004 X2005 X2006 X2007 X2008 X2009 X2010
[1,]
NA
NA 2.00 2.60 3.10 3.70 4.20 2.30 6.40 -1.10 0.90
[2,] 10.25 10.96 9.68 9.87 13.13 14.07 9.43 10.81 13.90 4.05 5.82
[3,] 4.30 1.40 2.80 2.50 5.40 4.30 4.90 4.90 5.50 -0.20
NA
[4,] 5.08 8.91 6.33 5.85 9.23 8.57 5.79 8.75 9.40 -0.28 4.51
[5,] 0.10 0.09 0.08 0.08 0.07 0.08 0.07 0.09 0.10 3.00
NA
[6,] 9.87 4.84 3.87 6.48 9.26 9.58 9.45 16.88 13.77 0.93
NA
[7,] 14.00 14.30 15.50 0.10 0.50 3.40 6.00 10.40 20.00 22.90 25.60
>
Para eliminar el los encabezados o nombres de columnas
> dimnames(A)<-list(NULL,NULL)
> A
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
[1,]
NA
NA 2.00 2.60 3.10 3.70 4.20 2.30 6.40
[2,] 10.25 10.96 9.68 9.87 13.13 14.07 9.43 10.81 13.90
[3,] 4.30 1.40 2.80 2.50 5.40 4.30 4.90 4.90 5.50
[4,] 5.08 8.91 6.33 5.85 9.23 8.57 5.79 8.75 9.40
[5,] 0.10 0.09 0.08 0.08 0.07 0.08 0.07 0.09 0.10
[6,] 9.87 4.84 3.87 6.48 9.26 9.58 9.45 16.88 13.77
[7,] 14.00 14.30 15.50 0.10 0.50 3.40 6.00 10.40 20.00
>
Si queremos extraer un elemento de la matriz solo damos la ubicacin del elemento. Supongamos que queremos la tasa de inflacin

[,10] [,11]
-1.10 0.90
4.05 5.82
-0.20
NA
-0.28 4.51
3.00
NA
0.93
NA
22.90 25.60

Deybi A. Morales Len

de Nicaragua en el 2006. Esta se ubica en la fila en la fila 6, columna


8.
> A[6,7]
[1] 9.45
>
Podemos ponerle nombres a las filas o columnas de una matriz,
supongamos que creamos la matriz 3x4:
> B<-matrix(c(3,4,2,5,2,1,3,4,5,4,2,5), 3,4, byrow=T)
> B
[,1] [,2] [,3] [,4]
[1,]
3
4
2
5
[2,]
2
1
3
4
[3,]
5
4
2
5
>
Agreguemos nombres o encabezados. Arbitrariamente diremos
que son tasas de inflacin del 2001 al 2004 para Nicaragua, Belice y
Honduras:
> dimnames(B) <- list(c("Nicaragua",
"Belice", "Honduras"),c("2001","2002","2003","2004"))
> B
2001 2002 2003 2004
Nicaragua
3
4
2
5
Belice
2
1
3
4
Honduras
5
4
2
5
>
Si queremos eliminar los encabezados solo aplicamos:
> dimnames(B) <- list(NULL, NULL)
>
> B
[,1] [,2] [,3] [,4]
[1,]
3
4
2
5
[2,]
2
1
3
4
[3,]
5
4
2
5
>
Llamemos la fila 2 de la matriz B:
> B[2,]
[1] 2 1 3 4
>
Si queremos llamar a la columna 3 de la matriz B:

1 Matrices en R

> B[,3]
[1] 2 3 2
>
Conociendo la manera de crear matrices vamos a utilizar la potencia de R cuya programacin matricial permite realizar facilmente
operaciones matriciales.

1.2 Operaciones con matrices.


Vamos a generar tres matrices para que sean ejemplos a las siguientes opeaciones.
> A<-matrix(c(3,4,2,1,2,1,1,4,5,4,5,5), 3,4, byrow=T)
> A
[,1] [,2] [,3] [,4]
[1,]
3
4
2
1
[2,]
2
1
1
4
[3,]
5
4
5
5
>
> B<-matrix(c(3,4,2,4,4,4,1,4,5,4,3,5), 3,4, byrow=T)
> B
[,1] [,2] [,3] [,4]
[1,]
3
4
2
4
[2,]
4
4
1
4
[3,]
5
4
3
5
>
> C<-matrix(c(2,4,2,4,5,4,1,4,5,4,3,5), 4,3, byrow=T)
> C
[,1] [,2] [,3]
[1,]
2
4
2
[2,]
4
5
4
[3,]
1
4
5
[4,]
4
3
5
>
Sumar matrices A y B
> A
[1,]
[2,]
[3,]

[,1] [,2] [,3] [,4]


3
4
2
1
2
1
1
4
5
4
5
5

Deybi A. Morales Len

> B
[1,]
[2,]
[3,]
> A+B
[1,]
[2,]
[3,]
>

[,1] [,2] [,3] [,4]


3
4
2
4
4
4
1
4
5
4
3
5
[,1] [,2] [,3] [,4]
6
8
4
5
6
5
2
8
10
8
8
10

Restar matrices A y B
> A
[1,]
[2,]
[3,]
> B
[1,]
[2,]
[3,]
> A-B
[1,]
[2,]
[3,]
>

[,1] [,2] [,3] [,4]


3
4
2
1
2
1
1
4
5
4
5
5
[,1] [,2] [,3] [,4]
3
4
2
4
4
4
1
4
5
4
3
5
[,1] [,2] [,3] [,4]
0
0
0
-3
-2
-3
0
0
0
0
2
0

Multiplicar elemento por elemento matrices A y B


> A
[1,]
[2,]
[3,]
> B
[1,]
[2,]
[3,]
> A*B
[1,]
[2,]

[,1] [,2] [,3] [,4]


3
4
2
1
2
1
1
4
5
4
5
5
[,1] [,2] [,3] [,4]
3
4
2
4
4
4
1
4
5
4
3
5
[,1] [,2] [,3] [,4]
9
16
4
4
8
4
1
16

1 Matrices en R

[3,]
>

25

16

15

25

Multiplicacin para obtener el producto matricial de A y B


> A
[1,]
[2,]
[3,]
> C

[,1] [,2] [,3] [,4]


3
4
2
1
2
1
1
4
5
4
5
5

[,1] [,2] [,3]


[1,]
2
4
2
[2,]
4
5
4
[3,]
1
4
5
[4,]
4
3
5
> A%*%C
[,1] [,2] [,3]
[1,]
28
43
37
[2,]
25
29
33
[3,]
51
75
76
>
Obtener el producto cruzado de la matrices A y B
> A
[1,]
[2,]
[3,]
> B

[,1] [,2] [,3] [,4]


3
4
2
1
2
1
1
4
5
4
5
5

[,1] [,2] [,3] [,4]


[1,]
3
4
2
4
[2,]
4
4
1
4
[3,]
5
4
3
5
> crossprod(A,B)
[,1] [,2] [,3] [,4]
[1,]
42
40
23
45
[2,]
36
36
21
40
[3,]
35
32
20
37
[4,]
44
40
21
45
>
Productor cruzado de la matriz A
> A
[1,]

[,1] [,2] [,3] [,4]


3
4
2
1

Deybi A. Morales Len

[2,]
2
1
1
4
[3,]
5
4
5
5
> crossprod(A)
[,1] [,2] [,3] [,4]
[1,]
38
34
33
36
[2,]
34
33
29
28
[3,]
33
29
30
31
[4,]
36
28
31
42
>

1.3 Funciones para matrices


La transpuesta de A
> A
[,1] [,2] [,3] [,4]
[1,]
3
4
2
1
[2,]
2
1
1
4
[3,]
5
4
5
5
> t(A)
[,1] [,2] [,3]
[1,]
3
2
5
[2,]
4
1
4
[3,]
2
1
5
[4,]
1
4
5
>
Crear la matriz con los valores de un vector como diagonales
> x<-c(2,4,6)
> diag(x)
[,1] [,2] [,3]
[1,]
2
0
0
[2,]
0
4
0
[3,]
0
0
6
>
Extraer los elementos de la diagonal principal de de la matriz A
> A
[,1] [,2] [,3] [,4]
[1,]
3
4
2
1
[2,]
2
1
1
4
[3,]
5
4
5
5
> diag(A)
[1] 3 1 5

1 Matrices en R

>
Crear una matriz identidad de un escalar
> k<-2
> diag(k)
[,1] [,2]
[1,]
1
0
[2,]
0
1
> k<-6
> diag(k)
[,1] [,2] [,3] [,4] [,5] [,6]
[1,]
1
0
0
0
0
0
[2,]
0
1
0
0
0
0
[3,]
0
0
1
0
0
0
[4,]
0
0
0
1
0
0
[5,]
0
0
0
0
1
0
[6,]
0
0
0
0
0
1
>
El determinante de una matriz A
> D<-matrix(c(1,3,2,3), 2)
> D
[,1] [,2]
[1,]
1
2
[2,]
3
3
> det(D)
[1] -3
>
Devuelve la inversa de la matrix C
> D
[,1] [,2]
[1,]
1
2
[2,]
3
3
> solve(D)
[,1]
[,2]
[1,]
-1 0.6666667
[2,]
1 -0.3333333
>
Obtener los autovalores y los autovectores de la matriz
> D
[,1] [,2]

10

Deybi A. Morales Len

[1,]
1
2
[2,]
3
3
> eigen(D)
$values
[1] 4.6457513 -0.6457513
$vectors
[,1]
[,2]
[1,] -0.4809652 -0.7721779
[2,] -0.8767397 0.6354064
>
Obtener las sumas de las columnas de la matriz A
> A
[,1] [,2] [,3] [,4]
[1,]
3
4
2
1
[2,]
2
1
1
4
[3,]
5
4
5
5
> colSums(A)
[1] 10 9 8 10
>
Obtener las sumas de las filas de la matriz B
> B
[,1] [,2] [,3] [,4]
[1,]
3
4
2
4
[2,]
4
4
1
4
[3,]
5
4
3
5
> rowSums(B)
[1] 13 13 17
>
Multiplicar, sumar, restar o dividir la matriz A por un escalar o
nmero
> A
[,1] [,2] [,3] [,4]
[1,]
3
4
2
1
[2,]
2
1
1
4
[3,]
5
4
5
5
> k<-2
> A+k
[,1] [,2] [,3] [,4]

1 Matrices en R

[1,]
[2,]
[3,]
> A*k
[1,]
[2,]
[3,]
> A/k

11

5
4
7

6
3
6

4
3
7

3
6
7

[,1] [,2] [,3] [,4]


6
8
4
2
4
2
2
8
10
8
10
10

[,1]
[1,] 1.5
[2,] 1.0
[3,] 2.5
> A+3
[,1]
[1,]
6
[2,]
5
[3,]
8
> A-3
[,1]
[1,]
0
[2,]
-1
[3,]
2
> A*3
[,1]
[1,]
9
[2,]
6
[3,]
15
> A/3

[,2] [,3] [,4]


2.0 1.0 0.5
0.5 0.5 2.0
2.0 2.5 2.5
[,2] [,3] [,4]
7
5
4
4
4
7
7
8
8
[,2] [,3] [,4]
1
-1
-2
-2
-2
1
1
2
2
[,2] [,3] [,4]
12
6
3
3
3
12
12
15
15

[,1]
[,2]
[,3]
[,4]
[1,] 1.0000000 1.3333333 0.6666667 0.3333333
[2,] 0.6666667 0.3333333 0.3333333 1.3333333
[3,] 1.6666667 1.3333333 1.6666667 1.6666667
>
Obtener la medias de las filas o de las columnas de la matriz A
> A
[,1] [,2] [,3] [,4]
[1,]
3
4
2
1
[2,]
2
1
1
4
[3,]
5
4
5
5
> rowMeans(A)
[1] 2.50 2.00 4.75
> colMeans(A)
[1] 3.333333 3.000000 2.666667 3.333333

12

Deybi A. Morales Len

>
Otra funcin til es cbind rbind. Estas la utilizamos para unir
matrices, observe el ejemplo:
> matrix1<-matrix(c(1,2,3,4),2)
> matrix1
[,1] [,2]
[1,]
1
3
[2,]
2
4
> matrix2<-matrix(c(3,5,2,7),2)
> matrix2
[,1] [,2]
[1,]
3
2
[2,]
5
7
> cbind(matrix1,matrix2)
[,1] [,2] [,3] [,4]
[1,]
1
3
3
2
[2,]
2
4
5
7
> matrix(cbind(matrix1,matrix2))
[,1]
[1,]
1
[2,]
2
[3,]
3
[4,]
4
[5,]
3
[6,]
5
[7,]
2
[8,]
7
> matrix(cbind(matrix1,matrix2),2)
[,1] [,2] [,3] [,4]
[1,]
1
3
3
2
[2,]
2
4
5
7
> matrix(rbind(matrix1,matrix2),2)
[,1] [,2] [,3] [,4]
[1,]
1
3
3
2
[2,]
2
5
4
7
>
Otros usuarios en vez de utilizar matriz, utiliza el comando array.
> array(rbind(matrix1,matrix2),2)
[1] 1 2
> array(rbind(matrix1,matrix2)
+ )
[1] 1 2 3 5 3 4 2 7

1 Matrices en R

13

> array(rbind(matrix1,matrix2))
[1] 1 2 3 5 3 4 2 7
> array(rbind(matrix1,matrix2), c(2,4))
[,1] [,2] [,3] [,4]
[1,]
1
3
3
2
[2,]
2
5
4
7
> array(c(1,2,3,4,5,6,7,4), c(2,4))
[,1] [,2] [,3] [,4]
[1,]
1
3
5
7
[2,]
2
4
6
4
> array(c(1:3), c(2,4))
[,1] [,2] [,3] [,4]
[1,]
1
3
2
1
[2,]
2
1
3
2
> B<-array(c(2,3,4,5,6), c(2,2))
> B
[,1] [,2]
[1,]
2
4
[2,]
3
5
> C<-array(c(2,3,4,5,6), c(2,2))
> C
[,1] [,2]
[1,]
2
4
[2,]
3
5
Ejemplo 1. Regresin Matricial
Una utilidad de las matrices en Economa es en los temas economtricos. Cuando an no tenamos al alcance una computadora con programas espacializados para realizar regresiones tenamos que hacer la estimaciones con lpiz y papel, para ello utilizbamos frmulas que se complicaban conforme agregbamos ms variables independientes a la regresin. Entonces tenamos que aplicar matrices
cuando las frmulas se complicaban. An se ensea con matrices
en las clases de econometra avanzada, se considera necesario pues
los avance economtricos surgen del juego con matrices. Las nuevas
pruebas economtricas y mtodos son elaboradas con matrices, una
vez testeados y pulidos pasan a formar parte de la rutina automtica
de algn programa estadstico y economtrico como R.
El Mtodo de Mnimo Cuadrado Ordinario (MCO) es por excelencia
el ms difundido y sin muchas complicaciones para su aplicacin.
Una ecuacin de regresion. Relaciona variables independientes
que consideran que afectar a una variable dependiente. En forma
matemtica puede escribirse:
f (y) =f (x1 , x2 , x3 , xi )

(1.1)

14

Deybi A. Morales Len

Expresa que y est en funcin de todas las variables x consideradas explicativas. Segn el MCO esta relacin tiene que lineal en los
parmetros aunque no necesariamente en las variables. Pero una
forma de representarlo es como una ecuacin lineal.
yi = 0 +1 x1 + 2 x + 3 x + i xi

(1.2)

Ya que no conoceremos con exactitud todas las variables que explican a y, trabajamos con muestras y porque tampoco es prctico
agragarlas todas si sus influencias son muy pequeas, tendremos
que considerar un trmino de error ui .
yN = 0 +1 x1N + 2 x2N + 3 x3N + k xkN + N

(1.3)

Esto es representacin de la ordenacin de observaciones ubicandolas segn la ecuacin 2.3.


y1 = 0 +1 x11 + 2 x21 + 3 x31 + ..... + k xk1 + 1

(1.4)

y2 = 0 +1 x12 + 2 x22 + 3 x32 + ..... + k xk2 + 2

(1.5)

yN = 0 +1 x1N + 2 x2N + 3 x3N + ..... + k xkN + N

(1.6)

La ecuacin 2.3 se compondr de forma matricial como


y = X +

(1.7)

Se desgloza en:

1 x11
y1
1 x12
y = y1 X =
.... ....
yN
1 x2N

....
....
....
....

xk1
1
1

xk2
= 2 = 2
...
...
....
xkN
k
N

(1.8)

Esto nos dice que y es una matrix columna con los valores observador de y. En el caso de la matrix X esta contendr todas las

1 Matrices en R

15

observaciones de las variables independientes y la matrix es una


matrix columna con los coeficientes que acompaa a cada variable
independiente. La matriz que queda es la de los errores.
Una vez se tienen contrudas las matrices con los valores observados, nos resta encontrar las matriz de coeficientes.
= (X 0 X)1 X 0 y

(1.9)

Como el lector sabr y puede profundizar en libros especializados en econometra. Encontrar los coeficientes es el primer paso del
MCO. Vayamos a la aplicacin.
Tenemos la base de datos tomada del Mtodos economtricos
del libro de J. Johnston, encuentra en el llamado a la base indice.importaciones, en el que Y es el ndice de importaciones de
bienes y servicios del Reino Unido a precios constantes (1948), X2
es el ndice del producto bruto de Reino Unido a precios de 1948 y
X3 es el cociente de ndices de precio de las importaciones y de la
produccin general del Reino Unido:
> indice.importaciones
year
Y X2 X3
1 1948 100 100 100
2 1949 106 104 99
3 1950 107 106 110
4 1951 120 111 126
5 1952 110 111 113
6 1953 116 115 103
7 1954 123 120 102
8 1955 133 124 103
9 1956 137 126 98
> attach(indice.importaciones)
>
Conformamos las matrices.
y = X +
Formamos la matriz Y.
> y<-matrix(Y)
> y
[,1]
[1,] 100
[2,] 106
[3,] 107
[4,] 120

(1.10)

16

Deybi A. Morales Len

[5,]
[6,]
[7,]
[8,]
[9,]

110
116
123
133
137

>
Formamos la matriz X
> X<-matrix(cbind(1,X2,X3), ncol=3)
> X
[,1] [,2] [,3]
[1,]
1 100 100
[2,]
1 104
99
[3,]
1 106 110
[4,]
1 111 126
[5,]
1 111 113
[6,]
1 115 103
[7,]
1 120 102
[8,]
1 124 103
[9,]
1 126
98
>

Encontremos la matriz de coeficientes :


= (X 0 X)1 X 0 y

(1.11)

> b.hat<-solve(t(X)%*%X)%*%t(X)%*%y
> b.hat
[,1]
[1,] -49.3413390
[2,]
1.3642379
[3,]
0.1138806
>
Encontrando las varianzas y los errores estndares los parmetros
0 = y 0 y 0 X 0 y
> ee<-t(y)%*%y-t(b.hat)%*%t(X)%*%y
> ee
[,1]
[1,] 77.54154
>

(1.12)

1 Matrices en R

17

s2 =

0
N k

=s2 (X 0 X)1
V ar()

=
ee()

V ar()

> s.cuadrado<-ee/(9-3)
> s.cuadrado<-s.cuadrado[1,]
> s.cuadrado
[1] 12.92359
> Var.b.hat<-s.cuadrado*solve(t(X)%*%X)
> Var.b.hat
[,1]
[,2]
[,3]
[1,] 578.926281 -2.691128533 -2.579177384
[2,] -2.691129 0.020492753 0.003541957
[3,] -2.579177 0.003541957 0.020556002
> sqrt(diag(Var.b.hat))
[1] 24.0608870 0.1431529 0.1433736
>
Var.b.hat en su diagonal principal posee las Varianzas de los coeficientes. El resto son las Covarianzas. Para el error estandar sacamos
la raz cuadrada a la diagonal principal.
Calculando los t-students para hiptesis individual

t student =

ee()

> b.hat/sqrt(diag(Var.b.hat))
[,1]
[1,] -2.0506866
[2,] 9.5299354
[3,] 0.7942926
Los p-value se calculan de las siguiente manera
p values =2(1 |t student|N k )
> 2*(1-pt(abs(b.hat/sqrt(diag(Var.b.hat))), 9-3))
[,1]

18

Deybi A. Morales Len

[1,] 8.616009e-02
[2,] 7.616812e-05
[3,] 4.572819e-01
>
Otro valor a estimar que nos interesa es el R2

R2 =1

R2 =

0
y0 y

0 X 0 X
y0 y

(1.13)

(1.14)

> ((1-((t(y)%*%y-t(b.hat)%*%t(X)%*%y)/t(y)%*%y))*10^2)-99
[,1]
[1,] 0.9375813
> ((1-(ee/t(y)%*%y))*10^2)-99
[,1]
[1,] 0.9375813
> (((t(b.hat)%*%t(X)%*%X%*%b.hat)/t(y)%*%y)*10^2)-99
[,1]
[1,] 0.9375813
>

0 /(N k)
R2 =1 0
y y/(N 1)

(1.15)

> ((1-((ee/(9-3))/((t(y)%*%y)/(9-1))))*10^2)-99
[,1]
[1,] 0.916775
>
Para probar la hiptesis conjunta utilizamos la F

F =

R2 /(k 1)
(1 R2 )/(N k)

(1.16)

> R.cuadrado<-(((t(b.hat)%*%t(X)%*%X%*%b.hat)/t(y)%*%y)*10^2)-99
> (R.cuadrado/(3-1))/((1-R.cuadrado)/(9-3))
[,1]
[1,] 45.0625
>
Para econtrar las Y estimadas solo resolvemos

1 Matrices en R

19

y = X +

(1.17)

> y.hat<-X%*%b.hat
> y.hat
[,1]
[1,] 98.47051
[2,] 103.81358
[3,] 107.79475
[4,] 116.43803
[5,] 114.95758
[6,] 119.27572
[7,] 125.98303
[8,] 131.55386
[9,] 133.71294
>
Por ltimo pues obtengamos los residuos o errores
=y y

(1.18)

> e<-y-y.hat
> e
[1,]
[2,]
[3,]
[4,]
[5,]
[6,]
[7,]
[8,]
[9,]
>

[,1]
1.5294874
2.1864165
-0.7947461
3.5619744
-4.9575775
-3.2757228
-2.9830316
1.4461362
3.2870635

A como hemos visto R tiene una programacin muy fcil para trabajar con matrices, lo que lo convierte en oponente serio a Matlab.