Datos

Los datos de las mujeres fueron tomados de Libro: Epidemiologia y estadística para principiantes pagina 216 y los de los hombre fueron creados - pseudo reales.

Supongamos que tenemos una nueva prueba para detectar alfa-fetoproteína como predictor de un defecto del cierre del tubo neural que posee una sensibilidad del 90% y una especificidad del 95%.

Sexo: Mujer - hombre -> 2 niveles, riesgo: alto y bajo -> 2 niveles

alfa-fetoproteína: Anormal, normal Defecto del tubo neural Sano

EVENTOS AL NACER
Poblacion Sexo Riesgo alfa-fetoproteína Defecto del tubo neuronal Sano Total
1 Mujer Alto Anormal 87 18
Normal 13 9882 10 000
2 Mujer Bajo Anormal 128 179
Normal 19 99 674 100 000
3 Hombre Alto Anormal 75 116
Normal 86 9723 10 000
4 Hombre Bajo Anormal 108 267
Normal 61 99 564 100 000

Reescribimos la tabla anterior

pob1 <- c(9882,18,13,87)
pob2 <- c(99674,179,19,128)
pob3 <- c(9723,116,86,75)
pob4 <- c(99564,267,61,108)
Total <- c(sum(pob1), sum(pob2), sum(pob3), sum(pob4))

pob <- data.frame(t(data.frame(pob1, pob2, pob3, pob4)),  Total,
                  row.names = c("Poblacion 1", "Poblacion 2","Poblacion 3","Poblacion 4"))

library(knitr)
knitr::kable(pob, col.names = c("C+P+", "C+P-", "C-P+", "C-P-", "Total"),
             row.names = T)
pob1 <- c(87,13,18,9882)
pob2 <- c(128,19,179,99674)
pob3 <- c(75,86,116,9723)
pob4 <- c(108,61,267,99564)
Total <- c(sum(pob1), sum(pob2), sum(pob3), sum(pob4))

pob <- data.frame(t(data.frame(pob1, pob2, pob3, pob4)),  Total,
                  row.names = c("Poblacion 1", "Poblacion 2","Poblacion 3","Poblacion 4"))

library(knitr)
knitr::kable(pob, col.names = c("C+P+", "C+P-", "C-P+", "C-P-", "Total"),
             row.names = T)
C+P+ C+P- C-P+ C-P- Total
Poblacion 1 87 13 18 9882 1e+04
Poblacion 2 128 19 179 99674 1e+05
Poblacion 3 75 86 116 9723 1e+04
Poblacion 4 108 61 267 99564 1e+05

La distribución de la tabla anterior viene dada por:

pi_pob1 <- pob1/sum(pob1)
pi_pob2 <- pob2/sum(pob2)
pi_pob3 <- pob3/sum(pob3)
pi_pob4 <- pob1/sum(pob4)
Total_prob <- c(1,1,1,1)
prob_pob <- data.frame(t(data.frame(pi_pob1, pi_pob2, pi_pob3, pi_pob4)),  Total_prob,
                  row.names = c("Poblacion 1", "Poblacion 2","Poblacion 3","Poblacion 4"))



library(knitr)
knitr::kable(prob_pob, col.names = c("C+P+", "C+P-", "C-P+", "C-P-", "Total"),
             row.names = T)
C+P+ C+P- C-P+ C-P- Total
Poblacion 1 0.00870 0.00130 0.00180 0.98820 1
Poblacion 2 0.00128 0.00019 0.00179 0.99674 1
Poblacion 3 0.00750 0.00860 0.01160 0.97230 1
Poblacion 4 0.00087 0.00013 0.00018 0.09882 1

Creación de las funciones

1. Vector \(\pi\)

pob <- c(pob1,pob2,pob3,pob4)
N <- pob

pi_pob1 <- pob1/sum(pob1)
pi_pob2 <- pob2/sum(pob2)
pi_pob3 <- pob3/sum(pob3)
pi_pob4 <- pob1/sum(pob4)


pi <- c(pi_pob1, pi_pob2, pi_pob3, pi_pob4)

2. Vector \(A\pi\)

A <- matrix(c(1, 0, 0, 0,
              1, 1, 0, 0,
              0, 0, 0, 1,
              0, 0, 1, 1),4, byrow = T)

identidad <- function(k)diag(rep(1,k))
Nro.Estratos <- 4

A <- kronecker(identidad(Nro.Estratos),A) 
A
##       [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13]
##  [1,]    1    0    0    0    0    0    0    0    0     0     0     0     0
##  [2,]    1    1    0    0    0    0    0    0    0     0     0     0     0
##  [3,]    0    0    0    1    0    0    0    0    0     0     0     0     0
##  [4,]    0    0    1    1    0    0    0    0    0     0     0     0     0
##  [5,]    0    0    0    0    1    0    0    0    0     0     0     0     0
##  [6,]    0    0    0    0    1    1    0    0    0     0     0     0     0
##  [7,]    0    0    0    0    0    0    0    1    0     0     0     0     0
##  [8,]    0    0    0    0    0    0    1    1    0     0     0     0     0
##  [9,]    0    0    0    0    0    0    0    0    1     0     0     0     0
## [10,]    0    0    0    0    0    0    0    0    1     1     0     0     0
## [11,]    0    0    0    0    0    0    0    0    0     0     0     1     0
## [12,]    0    0    0    0    0    0    0    0    0     0     1     1     0
## [13,]    0    0    0    0    0    0    0    0    0     0     0     0     1
## [14,]    0    0    0    0    0    0    0    0    0     0     0     0     1
## [15,]    0    0    0    0    0    0    0    0    0     0     0     0     0
## [16,]    0    0    0    0    0    0    0    0    0     0     0     0     0
##       [,14] [,15] [,16]
##  [1,]     0     0     0
##  [2,]     0     0     0
##  [3,]     0     0     0
##  [4,]     0     0     0
##  [5,]     0     0     0
##  [6,]     0     0     0
##  [7,]     0     0     0
##  [8,]     0     0     0
##  [9,]     0     0     0
## [10,]     0     0     0
## [11,]     0     0     0
## [12,]     0     0     0
## [13,]     0     0     0
## [14,]     1     0     0
## [15,]     0     0     1
## [16,]     0     1     1
A_Pi <- A%*%pi
A_Pi
##          [,1]
##  [1,] 0.00870
##  [2,] 0.01000
##  [3,] 0.98820
##  [4,] 0.99000
##  [5,] 0.00128
##  [6,] 0.00147
##  [7,] 0.99674
##  [8,] 0.99853
##  [9,] 0.00750
## [10,] 0.01610
## [11,] 0.97230
## [12,] 0.98390
## [13,] 0.00087
## [14,] 0.00100
## [15,] 0.09882
## [16,] 0.09900

3. Vector \(\ln(A\pi)\)

LogNatu <- log(A_Pi)
LogNatu
##               [,1]
##  [1,] -4.744432253
##  [2,] -4.605170186
##  [3,] -0.011870173
##  [4,] -0.010050336
##  [5,] -6.660895201
##  [6,] -6.522492878
##  [7,] -0.003265325
##  [8,] -0.001471082
##  [9,] -4.892852258
## [10,] -4.128936007
## [11,] -0.028090880
## [12,] -0.016231013
## [13,] -7.047017346
## [14,] -6.907755279
## [15,] -2.314455266
## [16,] -2.312635429

4. Vector \(k\ln(A\pi)\)

k <- matrix(c(1, -1, 0, 0,
              0, 0, 1, -1),2,4, byrow = T)

k <- kronecker(identidad(Nro.Estratos),k) 
k
##      [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] [,14]
## [1,]    1   -1    0    0    0    0    0    0    0     0     0     0     0     0
## [2,]    0    0    1   -1    0    0    0    0    0     0     0     0     0     0
## [3,]    0    0    0    0    1   -1    0    0    0     0     0     0     0     0
## [4,]    0    0    0    0    0    0    1   -1    0     0     0     0     0     0
## [5,]    0    0    0    0    0    0    0    0    1    -1     0     0     0     0
## [6,]    0    0    0    0    0    0    0    0    0     0     1    -1     0     0
## [7,]    0    0    0    0    0    0    0    0    0     0     0     0     1    -1
## [8,]    0    0    0    0    0    0    0    0    0     0     0     0     0     0
##      [,15] [,16]
## [1,]     0     0
## [2,]     0     0
## [3,]     0     0
## [4,]     0     0
## [5,]     0     0
## [6,]     0     0
## [7,]     0     0
## [8,]     1    -1
kln <- k%*%LogNatu
kln
##              [,1]
## [1,] -0.139262067
## [2,] -0.001819837
## [3,] -0.138402323
## [4,] -0.001794244
## [5,] -0.763916251
## [6,] -0.011859867
## [7,] -0.139262067
## [8,] -0.001819837

5. Vector \(\exp(k\ln(A\pi))\)

ekln <- exp(kln)
ekln
##           [,1]
## [1,] 0.8700000
## [2,] 0.9981818
## [3,] 0.8707483
## [4,] 0.9982074
## [5,] 0.4658385
## [6,] 0.9882102
## [7,] 0.8700000
## [8,] 0.9981818

6. Vector \(Q\exp(k\ln(A\pi))\)

Q <- diag(1,2*Nro.Estratos)
Q
##      [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
## [1,]    1    0    0    0    0    0    0    0
## [2,]    0    1    0    0    0    0    0    0
## [3,]    0    0    1    0    0    0    0    0
## [4,]    0    0    0    1    0    0    0    0
## [5,]    0    0    0    0    1    0    0    0
## [6,]    0    0    0    0    0    1    0    0
## [7,]    0    0    0    0    0    0    1    0
## [8,]    0    0    0    0    0    0    0    1
#Calcular f_exp-estimado
f <- Q%*%ekln
f
##           [,1]
## [1,] 0.8700000
## [2,] 0.9981818
## [3,] 0.8707483
## [4,] 0.9982074
## [5,] 0.4658385
## [6,] 0.9882102
## [7,] 0.8700000
## [8,] 0.9981818

Estimación de los parámetros

Para el modelo \(\hat { f } =X\beta+\epsilon\), donde \(Var\left( \epsilon\right)={\Sigma}_{\hat{\epsilon}}\) y \(\epsilon\sim AN \left( 0,{\Sigma}_{\hat{\epsilon}} \right)\) {AN asintóticamente normal} el estimador via mínimos cuadrados ponderados de \(\beta\) el cual es un estimador BAN (best asymptotic normal) es:

\[\begin{equation} \hat { \beta }={ \left( X'{ \hat { \Sigma } }_{ \hat { f } }^{ -1 }X \right) }^{ -1 }X'{ \hat { \Sigma } }_{ \hat { f } }^{ -1 }\hat { f } \end{equation}\]

Para estimar \(\beta\), comenzamos a hallar o definir:

1. \(X\) matriz de diseño \(X=O\circ X\)

########################## Matriz diseño

repita<-function(X,X2,k){
  temp<-NULL
  for(i in 1:nrow(X))temp<-rbind(temp,cbind
                                 (matrix(rep(X[i,],k),ncol=ncol(X),byrow=T),X2))
  return(temp)
}

nro.vars<-2
niveles<-c(2,2)

bloque <- function(k){rbind(0,identidad(k))}

matriz.diseno <- function(nro.vars,niveles){
  niveles <- niveles-1
  temp1 <- bloque(niveles[nro.vars])
  for(i in (nro.vars-1):1){
    temp2<-bloque(niveles[i])
    temp1<-repita(temp2,temp1,nrow(temp1))
  }
  temp <- cbind(1,temp1)
  temp <- temp[rep(1:nrow(temp),each=2),]
  indi <- matrix(rep(c(0,1),nrow(temp)/2),ncol=1)
  temp2 <- NULL
  for(ii in 1:ncol(temp)) temp2<-cbind(temp2,indi)
  return(cbind(temp,temp*temp2))
}

X <- matriz.diseno(nro.vars, niveles)
X
##      [,1] [,2] [,3] [,4] [,5] [,6]
## [1,]    1    0    0    0    0    0
## [2,]    1    0    0    1    0    0
## [3,]    1    0    1    0    0    0
## [4,]    1    0    1    1    0    1
## [5,]    1    1    0    0    0    0
## [6,]    1    1    0    1    1    0
## [7,]    1    1    1    0    0    0
## [8,]    1    1    1    1    1    1

2. Matriz de varianzas y covarianzas \({ \hat { \Sigma } }_{ \hat { f } }\)

N <- pob

crea.bloque <- function(mat1,mat2){
  nf1<-nrow(mat1);nc1<-ncol(mat1)
  nf2<-nrow(mat2);nc2<-ncol(mat2)
  mat1<-cbind(mat1,matrix(0,nrow=nf1,ncol=nc2))
  mat2<-cbind(matrix(0,nrow=nf2,ncol=nc1),mat2)
  matdef<-rbind(mat1,mat2)
  return(matdef) 
}

donde.voy<-0
for(i in 1:Nro.Estratos){
  print("====================")
  identifica<-c("Estrato ",i)
  print(identifica)
  temp<-N[(donde.voy+1):(donde.voy+4)]
  print("Frecuencias de la subpoblacion")
  print(temp)
  donde.voy<-donde.voy+4
  n.temp<-sum(temp)
  probab<-matrix(temp/n.temp,ncol=1)
  temp1<- probab%*%t(probab)
  temp2<-diag(as.vector(probab))
  varcov.p<-(temp2-temp1)/n.temp
  print("p estimado del estrato")
  print(t(probab))
  print("Matriz de varianzas y covarianzas estimada del estrato")
  print(varcov.p)
  if(i==1){
    varcov.grande<-varcov.p
    prob.grande<-probab
  }
  else{
    varcov.grande <- crea.bloque(varcov.grande,varcov.p)
    prob.grande <- rbind(prob.grande,probab)  # Todas las probabilidades organizadas en columna
  }
}
## [1] "===================="
## [1] "Estrato " "1"       
## [1] "Frecuencias de la subpoblacion"
## [1]   87   13   18 9882
## [1] "p estimado del estrato"
##        [,1]   [,2]   [,3]   [,4]
## [1,] 0.0087 0.0013 0.0018 0.9882
## [1] "Matriz de varianzas y covarianzas estimada del estrato"
##              [,1]         [,2]         [,3]          [,4]
## [1,]  8.62431e-07 -1.13100e-09 -1.56600e-09 -8.597340e-07
## [2,] -1.13100e-09  1.29831e-07 -2.34000e-10 -1.284660e-07
## [3,] -1.56600e-09 -2.34000e-10  1.79676e-07 -1.778760e-07
## [4,] -8.59734e-07 -1.28466e-07 -1.77876e-07  1.166076e-06
## [1] "===================="
## [1] "Estrato " "2"       
## [1] "Frecuencias de la subpoblacion"
## [1]   128    19   179 99674
## [1] "p estimado del estrato"
##         [,1]    [,2]    [,3]    [,4]
## [1,] 0.00128 0.00019 0.00179 0.99674
## [1] "Matriz de varianzas y covarianzas estimada del estrato"
##               [,1]          [,2]          [,3]          [,4]
## [1,]  1.278362e-08 -2.432000e-12 -2.291200e-11 -1.275827e-08
## [2,] -2.432000e-12  1.899639e-09 -3.401000e-12 -1.893806e-09
## [3,] -2.291200e-11 -3.401000e-12  1.786796e-08 -1.784165e-08
## [4,] -1.275827e-08 -1.893806e-09 -1.784165e-08  3.249372e-08
## [1] "===================="
## [1] "Estrato " "3"       
## [1] "Frecuencias de la subpoblacion"
## [1]   75   86  116 9723
## [1] "p estimado del estrato"
##        [,1]   [,2]   [,3]   [,4]
## [1,] 0.0075 0.0086 0.0116 0.9723
## [1] "Matriz de varianzas y covarianzas estimada del estrato"
##              [,1]         [,2]          [,3]          [,4]
## [1,]  7.44375e-07 -6.45000e-09 -8.700000e-09 -7.292250e-07
## [2,] -6.45000e-09  8.52604e-07 -9.976000e-09 -8.361780e-07
## [3,] -8.70000e-09 -9.97600e-09  1.146544e-06 -1.127868e-06
## [4,] -7.29225e-07 -8.36178e-07 -1.127868e-06  2.693271e-06
## [1] "===================="
## [1] "Estrato " "4"       
## [1] "Frecuencias de la subpoblacion"
## [1]   108    61   267 99564
## [1] "p estimado del estrato"
##         [,1]    [,2]    [,3]    [,4]
## [1,] 0.00108 0.00061 0.00267 0.99564
## [1] "Matriz de varianzas y covarianzas estimada del estrato"
##               [,1]          [,2]          [,3]          [,4]
## [1,]  1.078834e-08 -6.588000e-12 -2.883600e-11 -1.075291e-08
## [2,] -6.588000e-12  6.096279e-09 -1.628700e-11 -6.073404e-09
## [3,] -2.883600e-11 -1.628700e-11  2.662871e-08 -2.658359e-08
## [4,] -1.075291e-08 -6.073404e-09 -2.658359e-08  4.340990e-08
# Calcular (A*sigma pi-gorro*A")
var.cov.lineal <- A%*%varcov.grande%*%t(A)
var.cov.lineal
##               [,1]       [,2]          [,3]       [,4]          [,5]
##  [1,]  8.62431e-07  8.613e-07 -8.597340e-07 -8.613e-07  0.000000e+00
##  [2,]  8.61300e-07  9.900e-07 -9.882000e-07 -9.900e-07  0.000000e+00
##  [3,] -8.59734e-07 -9.882e-07  1.166076e-06  9.882e-07  0.000000e+00
##  [4,] -8.61300e-07 -9.900e-07  9.882000e-07  9.900e-07  0.000000e+00
##  [5,]  0.00000e+00  0.000e+00  0.000000e+00  0.000e+00  1.278362e-08
##  [6,]  0.00000e+00  0.000e+00  0.000000e+00  0.000e+00  1.278118e-08
##  [7,]  0.00000e+00  0.000e+00  0.000000e+00  0.000e+00 -1.275827e-08
##  [8,]  0.00000e+00  0.000e+00  0.000000e+00  0.000e+00 -1.278118e-08
##  [9,]  0.00000e+00  0.000e+00  0.000000e+00  0.000e+00  0.000000e+00
## [10,]  0.00000e+00  0.000e+00  0.000000e+00  0.000e+00  0.000000e+00
## [11,]  0.00000e+00  0.000e+00  0.000000e+00  0.000e+00  0.000000e+00
## [12,]  0.00000e+00  0.000e+00  0.000000e+00  0.000e+00  0.000000e+00
## [13,]  0.00000e+00  0.000e+00  0.000000e+00  0.000e+00  0.000000e+00
## [14,]  0.00000e+00  0.000e+00  0.000000e+00  0.000e+00  0.000000e+00
## [15,]  0.00000e+00  0.000e+00  0.000000e+00  0.000e+00  0.000000e+00
## [16,]  0.00000e+00  0.000e+00  0.000000e+00  0.000e+00  0.000000e+00
##                [,6]          [,7]          [,8]         [,9]         [,10]
##  [1,]  0.000000e+00  0.000000e+00  0.000000e+00  0.00000e+00  0.000000e+00
##  [2,]  0.000000e+00  0.000000e+00  0.000000e+00  0.00000e+00  0.000000e+00
##  [3,]  0.000000e+00  0.000000e+00  0.000000e+00  0.00000e+00  0.000000e+00
##  [4,]  0.000000e+00  0.000000e+00  0.000000e+00  0.00000e+00  0.000000e+00
##  [5,]  1.278118e-08 -1.275827e-08 -1.278118e-08  0.00000e+00  0.000000e+00
##  [6,]  1.467839e-08 -1.465208e-08 -1.467839e-08  0.00000e+00  0.000000e+00
##  [7,] -1.465208e-08  3.249372e-08  1.465208e-08  0.00000e+00  0.000000e+00
##  [8,] -1.467839e-08  1.465208e-08  1.467839e-08  0.00000e+00  0.000000e+00
##  [9,]  0.000000e+00  0.000000e+00  0.000000e+00  7.44375e-07  7.379250e-07
## [10,]  0.000000e+00  0.000000e+00  0.000000e+00  7.37925e-07  1.584079e-06
## [11,]  0.000000e+00  0.000000e+00  0.000000e+00 -7.29225e-07 -1.565403e-06
## [12,]  0.000000e+00  0.000000e+00  0.000000e+00 -7.37925e-07 -1.584079e-06
## [13,]  0.000000e+00  0.000000e+00  0.000000e+00  0.00000e+00  0.000000e+00
## [14,]  0.000000e+00  0.000000e+00  0.000000e+00  0.00000e+00  0.000000e+00
## [15,]  0.000000e+00  0.000000e+00  0.000000e+00  0.00000e+00  0.000000e+00
## [16,]  0.000000e+00  0.000000e+00  0.000000e+00  0.00000e+00  0.000000e+00
##               [,11]         [,12]         [,13]         [,14]         [,15]
##  [1,]  0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00
##  [2,]  0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00
##  [3,]  0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00
##  [4,]  0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00
##  [5,]  0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00
##  [6,]  0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00
##  [7,]  0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00
##  [8,]  0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00
##  [9,] -7.292250e-07 -7.379250e-07  0.000000e+00  0.000000e+00  0.000000e+00
## [10,] -1.565403e-06 -1.584079e-06  0.000000e+00  0.000000e+00  0.000000e+00
## [11,]  2.693271e-06  1.565403e-06  0.000000e+00  0.000000e+00  0.000000e+00
## [12,]  1.565403e-06  1.584079e-06  0.000000e+00  0.000000e+00  0.000000e+00
## [13,]  0.000000e+00  0.000000e+00  1.078834e-08  1.078175e-08 -1.075291e-08
## [14,]  0.000000e+00  0.000000e+00  1.078175e-08  1.687144e-08 -1.682632e-08
## [15,]  0.000000e+00  0.000000e+00 -1.075291e-08 -1.682632e-08  4.340990e-08
## [16,]  0.000000e+00  0.000000e+00 -1.078175e-08 -1.687144e-08  1.682632e-08
##               [,16]
##  [1,]  0.000000e+00
##  [2,]  0.000000e+00
##  [3,]  0.000000e+00
##  [4,]  0.000000e+00
##  [5,]  0.000000e+00
##  [6,]  0.000000e+00
##  [7,]  0.000000e+00
##  [8,]  0.000000e+00
##  [9,]  0.000000e+00
## [10,]  0.000000e+00
## [11,]  0.000000e+00
## [12,]  0.000000e+00
## [13,] -1.078175e-08
## [14,] -1.687144e-08
## [15,]  1.682632e-08
## [16,]  1.687144e-08
#Calcular de matriz D-lineal
Di <- diag(1/as.vector(pi))           # Contrastar con formula pg 30, Di se plantea de está forma                                            porque para la matriz de varianzas y covarianzas (var.cov.f)                                         se necesita es la inversa.
Di
##           [,1]     [,2]     [,3]     [,4]   [,5]     [,6]     [,7]     [,8]
##  [1,] 114.9425   0.0000   0.0000 0.000000   0.00    0.000   0.0000 0.000000
##  [2,]   0.0000 769.2308   0.0000 0.000000   0.00    0.000   0.0000 0.000000
##  [3,]   0.0000   0.0000 555.5556 0.000000   0.00    0.000   0.0000 0.000000
##  [4,]   0.0000   0.0000   0.0000 1.011941   0.00    0.000   0.0000 0.000000
##  [5,]   0.0000   0.0000   0.0000 0.000000 781.25    0.000   0.0000 0.000000
##  [6,]   0.0000   0.0000   0.0000 0.000000   0.00 5263.158   0.0000 0.000000
##  [7,]   0.0000   0.0000   0.0000 0.000000   0.00    0.000 558.6592 0.000000
##  [8,]   0.0000   0.0000   0.0000 0.000000   0.00    0.000   0.0000 1.003271
##  [9,]   0.0000   0.0000   0.0000 0.000000   0.00    0.000   0.0000 0.000000
## [10,]   0.0000   0.0000   0.0000 0.000000   0.00    0.000   0.0000 0.000000
## [11,]   0.0000   0.0000   0.0000 0.000000   0.00    0.000   0.0000 0.000000
## [12,]   0.0000   0.0000   0.0000 0.000000   0.00    0.000   0.0000 0.000000
## [13,]   0.0000   0.0000   0.0000 0.000000   0.00    0.000   0.0000 0.000000
## [14,]   0.0000   0.0000   0.0000 0.000000   0.00    0.000   0.0000 0.000000
## [15,]   0.0000   0.0000   0.0000 0.000000   0.00    0.000   0.0000 0.000000
## [16,]   0.0000   0.0000   0.0000 0.000000   0.00    0.000   0.0000 0.000000
##           [,9]    [,10]   [,11]    [,12]    [,13]    [,14]    [,15]    [,16]
##  [1,]   0.0000   0.0000  0.0000 0.000000    0.000    0.000    0.000  0.00000
##  [2,]   0.0000   0.0000  0.0000 0.000000    0.000    0.000    0.000  0.00000
##  [3,]   0.0000   0.0000  0.0000 0.000000    0.000    0.000    0.000  0.00000
##  [4,]   0.0000   0.0000  0.0000 0.000000    0.000    0.000    0.000  0.00000
##  [5,]   0.0000   0.0000  0.0000 0.000000    0.000    0.000    0.000  0.00000
##  [6,]   0.0000   0.0000  0.0000 0.000000    0.000    0.000    0.000  0.00000
##  [7,]   0.0000   0.0000  0.0000 0.000000    0.000    0.000    0.000  0.00000
##  [8,]   0.0000   0.0000  0.0000 0.000000    0.000    0.000    0.000  0.00000
##  [9,] 133.3333   0.0000  0.0000 0.000000    0.000    0.000    0.000  0.00000
## [10,]   0.0000 116.2791  0.0000 0.000000    0.000    0.000    0.000  0.00000
## [11,]   0.0000   0.0000 86.2069 0.000000    0.000    0.000    0.000  0.00000
## [12,]   0.0000   0.0000  0.0000 1.028489    0.000    0.000    0.000  0.00000
## [13,]   0.0000   0.0000  0.0000 0.000000 1149.425    0.000    0.000  0.00000
## [14,]   0.0000   0.0000  0.0000 0.000000    0.000 7692.308    0.000  0.00000
## [15,]   0.0000   0.0000  0.0000 0.000000    0.000    0.000 5555.556  0.00000
## [16,]   0.0000   0.0000  0.0000 0.000000    0.000    0.000    0.000 10.11941
# Calculo de la matriz de varianzas y covarianzas Sigma f gorro
var.cov.ln <- k%*%Di%*%var.cov.lineal%*%Di%*%t(k)
var.cov.ln
##           [,1]      [,2]       [,3]       [,4]        [,5]        [,6]
## [1,] 0.4448854 0.3667372 0.00000000 0.00000000 0.000000000 0.000000000
## [2,] 0.3667372 0.3587899 0.00000000 0.00000000 0.000000000 0.000000000
## [3,] 0.0000000 0.0000000 0.30929771 0.03744581 0.000000000 0.000000000
## [4,] 0.0000000 0.0000000 0.03744581 0.01012489 0.000000000 0.000000000
## [5,] 0.0000000 0.0000000 0.00000000 0.00000000 0.011769988 0.007221544
## [6,] 0.0000000 0.0000000 0.00000000 0.00000000 0.007221544 0.019739480
## [7,] 0.0000000 0.0000000 0.00000000 0.00000000 0.000000000 0.000000000
## [8,] 0.0000000 0.0000000 0.00000000 0.00000000 0.000000000 0.000000000
##           [,7]      [,8]
## [1,] 0.0000000 0.0000000
## [2,] 0.0000000 0.0000000
## [3,] 0.0000000 0.0000000
## [4,] 0.0000000 0.0000000
## [5,] 0.0000000 0.0000000
## [6,] 0.0000000 0.0000000
## [7,] 0.8219046 0.6492206
## [8,] 0.6492206 1.3379217
# Calculo de la matriz de varianzas y covarianzas Sigma exp f gorro

diagonal <- function(xx){
  k<-length(xx)
  temp<-matrix(0,ncol=k,nrow=k)
  for(i in 1:k)temp[i,i]<-xx[i]
  return(temp)
}

Dln <- diagonal(exp(kln))
Dln
##      [,1]      [,2]      [,3]      [,4]      [,5]      [,6] [,7]      [,8]
## [1,] 0.87 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.00 0.0000000
## [2,] 0.00 0.9981818 0.0000000 0.0000000 0.0000000 0.0000000 0.00 0.0000000
## [3,] 0.00 0.0000000 0.8707483 0.0000000 0.0000000 0.0000000 0.00 0.0000000
## [4,] 0.00 0.0000000 0.0000000 0.9982074 0.0000000 0.0000000 0.00 0.0000000
## [5,] 0.00 0.0000000 0.0000000 0.0000000 0.4658385 0.0000000 0.00 0.0000000
## [6,] 0.00 0.0000000 0.0000000 0.0000000 0.0000000 0.9882102 0.00 0.0000000
## [7,] 0.00 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.87 0.0000000
## [8,] 0.00 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.00 0.9981818
var.cov.f.exp <- Q%*%Dln%*%var.cov.ln%*%Dln%*%t(Q)
var.cov.f.exp
##           [,1]      [,2]       [,3]       [,4]        [,5]        [,6]
## [1,] 0.3367337 0.3184813 0.00000000 0.00000000 0.000000000 0.000000000
## [2,] 0.3184813 0.3574864 0.00000000 0.00000000 0.000000000 0.000000000
## [3,] 0.0000000 0.0000000 0.23451033 0.03254742 0.000000000 0.000000000
## [4,] 0.0000000 0.0000000 0.03254742 0.01008862 0.000000000 0.000000000
## [5,] 0.0000000 0.0000000 0.00000000 0.00000000 0.002554152 0.003324411
## [6,] 0.0000000 0.0000000 0.00000000 0.00000000 0.003324411 0.019276774
## [7,] 0.0000000 0.0000000 0.00000000 0.00000000 0.000000000 0.000000000
## [8,] 0.0000000 0.0000000 0.00000000 0.00000000 0.000000000 0.000000000
##           [,7]     [,8]
## [1,] 0.0000000 0.000000
## [2,] 0.0000000 0.000000
## [3,] 0.0000000 0.000000
## [4,] 0.0000000 0.000000
## [5,] 0.0000000 0.000000
## [6,] 0.0000000 0.000000
## [7,] 0.6220996 0.563795
## [8,] 0.5637950 1.333061
# Matriz de correlaciones
cov2cor(var.cov.f.exp )
##           [,1]      [,2]      [,3]      [,4]      [,5]      [,6]      [,7]
## [1,] 1.0000000 0.9179327 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
## [2,] 0.9179327 1.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
## [3,] 0.0000000 0.0000000 1.0000000 0.6691443 0.0000000 0.0000000 0.0000000
## [4,] 0.0000000 0.0000000 0.6691443 1.0000000 0.0000000 0.0000000 0.0000000
## [5,] 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.4737772 0.0000000
## [6,] 0.0000000 0.0000000 0.0000000 0.0000000 0.4737772 1.0000000 0.0000000
## [7,] 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000
## [8,] 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.6191078
##           [,8]
## [1,] 0.0000000
## [2,] 0.0000000
## [3,] 0.0000000
## [4,] 0.0000000
## [5,] 0.0000000
## [6,] 0.0000000
## [7,] 0.6191078
## [8,] 1.0000000

3. \({ \hat { f } }\) se halló en la sección anterior

Estimación de los \(\beta\)

library(MASS)

temp <- solve(t(X)%*%ginv(var.cov.f.exp)%*%X)
beta <- temp%*%t(X)%*%ginv(var.cov.f.exp)%*%f
beta
##            [,1]
## [1,]  0.7741164
## [2,] -0.3078190
## [3,]  0.2193015
## [4,]  0.1499975
## [5,]  0.3680973
## [6,] -0.1298284

\(f^{*}\) estimado

\(\hat { f^* } =X\hat{\beta}+\epsilon\)

f.gor <- X%*%beta
f.gor 
##           [,1]
## [1,] 0.7741164
## [2,] 0.9241139
## [3,] 0.9934180
## [4,] 1.0135871
## [5,] 0.4662974
## [6,] 0.9843922
## [7,] 0.6855990
## [8,] 1.0738654