You are on page 1of 19

Chapter 1

Matrices en R

Deybi A. Morales León

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. Además de su fácil programación las posi- bilidades con matrices son ilimitadas. Esto pone al alcanze de to- do economista aplicado una herramienta menos pesada y progra- mación menos rígida que la de matlab para el tratamiento de matri- ces. 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 función para generar la matriz, seguido de abrir paréntesis, el nombre del vector creado, sigue el número de filas, número de columnas y cómo empezarán las observaciones por filas o por columnas. Para Darle el orden de cómo agrupar por fila agregamos byrow=TRUE, para que se agrupen en columnas byrow=FALSE. Miremos el ejemplo:

>seq1 <- seq(1:6)

1

2

Deybi A. Morales León

>matrix1<-matrix(seq1,3,2,

>

matrix1

 
 

[,1]

[,2]

[1,]

1

2

[2,]

3

4

[3,]

5

6

>

byrow=TRUE)

Se notará que se empiezan a grupar las las observaciones de fila en fila. Pero ecuando aplicamos byrow=FALSE, estas se agruparán 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 simpática la forma en que se presenta un matriz en R. Si quer- emos identificar la columna dos solo debemos guiarnos por el en- cabezado, en el anterior caso [,2]. Cada que veamos una matrix debemos recordar que se conforma de [filas, columnas]. nrow=número de filas y ncol=número de colum- nas. para conocer las dimenciones de una matriz creada utilizamos la función dim:

> dim(matrix1)

[1]

>

3

2

Imaginémosnos en el caso de unir dos matrices con matrices o con un vector, entonce utilizaremos la función 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 función cbind convierte data.frame en matrices.

1 Matrices en R

3

> 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 inflación por países centromericanos. A través de la función cbind la hemos convertido a la matriz A. Si tuvieramos la tasa de inflación para el año 2002 en Belice, solo aplicamos según la ubicación del elemento para cambiar la obser- vación. 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]

[,10]

[,11]

[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

>

Si queremos extraer un elemento de la matriz solo damos la ubi- cación del elemento. Supongamos que queremos la tasa de inflación

4

Deybi A. Morales León

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),

> B

 

[,1]

[,2]

[,3]

[,4]

[1,]

3

4

2

5

[2,]

2

1

3

4

[3,]

5

4

2

5

>

3,4,

byrow=T)

Agreguemos nombres o encabezados. Arbitrariamente diremos que son tasas de inflación del 2001 al 2004 para Nicaragua, Belice y Honduras:

>

"Belice",

> B

dimnames(B)

<-

list(c("Nicaragua",

"Honduras"),c("2001","2002","2003","2004"))

 

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

5

> B[,3]

[1]

>

2

3

2

Conociendo la manera de crear matrices vamos a utilizar la po- tencia de R cuya programación matricial permite realizar facilmente operaciones matriciales.

1.2 Operaciones con matrices.

Vamos a generar tres matrices para que sean ejemplos a las sigu- ientes 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]

[,4]

[1,]

3

4

2

1

[2,]

2

1

1

4

[3,]

5

4

5

5

6

Deybi A. Morales León

> B

 

[,1]

[,2]

[,3]

[,4]

 

[1,]

3

4

2

4

[2,]

4

4

1

4

[3,]

5

4

3

5

>

A+B

 

[,1]

[,2]

[,3]

[,4]

 

[1,]

6

8

4

5

[2,]

6

5

2

8

[3,]

10

8

8

10

>

Restar matrices A y B

 

>

A

 

[,1]

[,2]

[,3]

[,4]

 

[1,]

3

4

2

1

[2,]

2

1

1

4

[3,]

5

4

5

5

>

B

 

[,1]

[,2]

[,3]

[,4]

 

[1,]

3

4

2

4

[2,]

4

4

1

4

[3,]

5

4

3

5

>

A-B

 

[,1]

[,2]

[,3]

[,4]

 

[1,]

0

0

0

-3

[2,]

-2

-3

0

0

[3,]

0

0

2

0

>

Multiplicar elemento por elemento matrices A y B

>

A

 

[,1]

[,2]

[,3]

[,4]

[1,]

3

4

2

1

[2,]

2

1

1

4

[3,]

5

4

5

5

>

B

 

[,1]

[,2]

[,3]

[,4]

[1,]

3

4

2

4

[2,]

4

4

1

4

[3,]

5

4

3

5

>

A * B

 

[,1]

[,2]

[,3]

[,4]

[1,]

9

16

4

4

[2,]

8

4

1

16

1 Matrices en R

7

[3,]

>

25

16

15

25

Multiplicación para obtener el producto matricial de A y B

>

A

[,1]

[,2]

[,3]

[,4]

[1,]

3

4

2

1

[2,]

2

1

1

4

[3,]

5

4

5

5

>

C

[,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]

[,4]

[1,]

3

4

2

1

[2,]

2

1

1

4

[3,]

5

4

5

5

>

B

 

[,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]

[,2]

[,3]

[,4]

[1,]

3

4

2

1

8

Deybi A. Morales León

[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

9

>

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),

> D

 

[,1]

[,2]

[1,]

1

2

[2,]

3

3

> det(D)

[1]

>

-3

2)

Devuelve la inversa de la matrix C

>

D

 

[,1]

[,2]

[1,]

1

2

[2,]

3

3

> solve(D)

[1,]

[2,]

[,1]

[,2]

-1

0.6666667

1 -0.3333333

>

Obtener los autovalores y los autovectores de la matriz

> D

[,1]

[,2]

10

Deybi A. Morales León

[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 número

> 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

11

[1,]

5

6

4

3

[2,]

4

3

3

6

[3,]

7

6

7

7

>

A * k

 

[,1]

[,2]

[,3]

[,4]

[1,]

6

8

4

2

[2,]

4

2

2

8

[3,]

10

8

10

10

>

A/k

 

[,1]

[,2]

[,3]

[,4]

[1,]

1.5

2.0

1.0

0.5

[2,]

1.0

0.5

0.5

2.0

[3,]

2.5

2.0

2.5

2.5

>

A+3

 

[,1]

[,2]

[,3]

[,4]

[1,]

6

7

5

4

[2,]

5

4

4

7

[3,]

8

7

8

8

>

A-3

 

[,1]

[,2]

[,3]

[,4]

[1,]

0

1

-1

-2

[2,]

-1

-2

-2

1

[3,]

2

1

2

2

>

A * 3

 

[,1]

[,2]

[,3]

[,4]

[1,]

9

12

6

3

[2,]

6

3

3

12

[3,]

15

12

15

15

>

A/3

 

[,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 León

>

Otra función ú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. Regresión Matricial Una utilidad de las matrices en Economía es en los temas econométri- cos. Cuando aún no teníamos al alcance una computadora con pro- gramas espacializados para realizar regresiones teníamos que hac- er la estimaciones con lápiz y papel, para ello utilizábamos fórmu- las que se complicaban conforme agregábamos más variables inde- pendientes a la regresión. Entonces teníamos que aplicar matrices cuando las fórmulas se complicaban. Aún se enseña con matrices en las clases de econometría avanzada, se considera necesario pues los avance econométricos surgen del juego con matrices. Las nuevas pruebas econométricas y métodos son elaboradas con matrices, una vez testeados y pulidos pasan a formar parte de la rutina automática de algún programa estadístico y econométrico como R. El Método de Mínimo Cuadrado Ordinario (MCO) es por excelencia el más difundido y sin muchas complicaciones para su aplicación. Una ecuación de regresion. Relaciona variables independientes que consideran que afectar a una variable dependiente. En forma matemática puede escribirse:

f(y) =f(x 1 , x 2 , x 3 , x i )

(1.1)

14

Deybi A. Morales León

Expresa que y está en función de todas las variables x consider- adas explicativas. Según el MCO esta relación tiene que lineal en los parámetros aunque no necesariamente en las variables. Pero una forma de representarlo es como una ecuación lineal.

y i = β 0 +β 1 x 1 + β 2 x + β 3 x + β i x i

(1.2)

Ya que no conoceremos con exactitud todas las variables que ex- plican a y, trabajamos con muestras y porque tampoco es práctico agragarlas todas si sus influencias son muy pequeñas, tendremos que considerar un término de error u i .

y N = β 0 +β 1 x 1N + β 2 x 2N + β 3 x 3N + β k x kN + ε N

(1.3)

Esto es representación de la ordenación de observaciones ubican- dolas según la ecuación 2.3.

y 1 =

β 0 +β 1 x 11

y 2 = β 0 +β 1 x 12

+

+

β 2 x 21

β 2 x 22

+ β 3 x 31 +

+ β 3 x 32 +

+

+

β k x k1

β k x k2

+ ε 1

+ ε 2

(1.4)

(1.5)

− − − − − − − − − − − − − − − − − − − − − − − − − − − − −−−

y N = β 0 +β 1 x 1N + β 2 x 2N + β 3 x 3N +

+ β k x kN + ε N

(1.6)

La ecuación 2.3 se compondrá de forma matricial como

Se desgloza en:

y =

y

1

1

N

y

y

X =

1

1

1

y = + ε

x

x

11

12

x 2N

x

x

k1

k2

x

kN

β =

β

β

β

1

2

k

ε =

ε

ε

1

2

ε

N

(1.7)

(1.8)

Esto nos dice que y es una matrix columna con los valores ob- servador 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 acompaña a cada variable independiente. La matriz que queda es la de los errores. Una vez se tienen contruídas las matrices con los valores obser- vados, nos resta encontrar las matriz de coeficientes.

ˆ

β

= (X X) 1 X y

(1.9)

Como el lector sabrá y puede profundizar en libros especializa- dos en econometría. Encontrar los coeficientes es el primer paso del MCO. Vayamos a la aplicación. Tenemos la base de datos tomada del Métodos econométricos del libro de J. Johnston, encuentra en el llamado a la base “in- dice.importaciones”, en el que Y es el índice de importaciones de bienes y servicios del Reino Unido a precios constantes (1948), X 2 es el índice del producto bruto de Reino Unido a precios de 1948 y X 3 es el cociente de índices de precio de las importaciones y de la producción 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 = + ε

Formamos la matriz Y.

> y<-matrix(Y)

> y

 

[,1]

[1,]

100

[2,]

106

[3,]

107

[4,]

120

(1.10)

16

Deybi A. Morales León

[5,]

110

[6,]

116

[7,]

123

[8,]

133

[9,]

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 X) 1 X y

> b.hat<-solve(t(X)% * %X)% * %t(X)%

> b.hat

[1,]

[2,]

[3,]

>

[,1]

-49.3413390

1.3642379

0.1138806

* %y

(1.11)

Encontrando las varianzas y los errores estándares los parámetros

ε εˆ = y y β X y

ˆ

ˆ

(1.12)

> ee<-t(y)% * %y-t(b.hat)% * %t(X)% * %y

>

ee

 

[,1]

[1,]

77.54154

>

1 Matrices en R

17

s 2 =

ˆ

ε εˆ

N k

ˆ

V ar( β) =s 2 (X X) 1

ee( β) = V ar( β)

ˆ

ˆ

> s.cuadrado<-ee/(9-3)

> s.cuadrado<-s.cuadrado[1,]

> s.cuadrado

12.92359

[1]

> 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 coefi- cientes. El resto son las Covarianzas. Para el error estandar sacamos la raíz cuadrada a la diagonal principal. Calculando los t-students para hipótesis 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| Nk )

> 2 * (1-pt(abs(b.hat/sqrt(diag(Var.b.hat))),

[,1]

9-3))

18

Deybi A. Morales León

[1,]

[2,]

[3,]

8.616009e-02

7.616812e-05

4.572819e-01

>

Otro valor a estimar que nos interesa es el R 2

R 2 =1

ˆ

ε εˆ

y y

R 2 =

ˆ

β X X β

ˆ

y 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)%

 

[,1]

[1,]

0.9375813

* %y)) * 10^2)-99

> (((t(b.hat)% * %t(X)% * %X% * %b.hat)/t(y)% * %y) * 10^2)-99

 

[,1]

[1,]

0.9375813

>

 

ˆ

 

¯

R

2 =1