Funciones

Creación de tablas \(4 \times 4\)

datos_subp <-function( ni, prob){  #  ni= vector num de obs totales por tabla, #prob= vector probabilidades iguales para todas las tablas
  tablas <- data.frame()
  for (i in 1:length(ni)) {
    #set.seed(i+89)
    tabla <-rmultinom(n=1, size=ni[i], prob=c(prob[1],prob[2],prob[3],prob[4]))
    tabla <- data.frame(tabla)
    tablas <- rbind(tablas,tabla) #Pegarlo en filas
  }
  tablas
  tablas2 <- matrix(tablas[,1],length(ni), 4, byrow = T) # tablas[,1]  para que se muestre en forma de vector
  tablas2
}

Corrección para datos iguales a cero

ceros.a.5 <- function(Tabla){
  Nro.col<-ncol(Tabla)
  if(any(Tabla==0))Tabla<-matrix(ifelse
                                 (as.vector(Tabla)==0,0.5,Tabla),ncol=Nro.col)
  return(Tabla)
}

Función GSK

La función da como resultado los betas estimados y la sensibilidad y especificidad por subpoblación.

GSK <- function(Data){
  
  ## Creacion de las funciones
  
  #### 1. Vector $\pi$
  
  pi <- c(t(Data/rowSums(Data)))
  
  #### 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 <- dim(Data)[1]
  
  A <- kronecker(identidad(Nro.Estratos),A) 
  A
  
  A_Pi <- A%*%pi
  A_Pi
  
  #### 3. Vector $\ln(A\pi)$
  LogNatu <- log(A_Pi)
  LogNatu
  #### 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
  
  kln <- k%*%LogNatu
  kln
  
  #### 5. Vector $\exp(k\ln(A\pi))$
  ekln <- exp(kln)
  ekln
  
  #### 6. Vector $Q\exp(k\ln(A\pi))$
  Q <- diag(1,2*Nro.Estratos)
  Q
  
  #Calcular f_exp-estimado
  f <- Q%*%ekln
  f
  
  
  
  
  ## Estimación de los parÔmetros
  #### 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
  
  #### 2. Matriz de varianzas y covarianzas ${ \hat { \Sigma  }   }_{ \hat { f }  }$
  N <- c(t(Data))
  
  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
    }
  }
  
  
  # Calcular (A*sigma pi-gorro*A")
  var.cov.lineal <- A%*%varcov.grande%*%t(A)
  #var.cov.lineal
  
  #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
  
  # 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
  
  # 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
  
  var.cov.f.exp <- Q%*%Dln%*%var.cov.ln%*%Dln%*%t(Q)
  #var.cov.f.exp
  
  
  ## 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
  #print(beta)
  
  ## $f^{*}$ estimado
  f.gor <- X%*%beta
  #print(f.gor )
  
  #sensibilidad_gor <- f.gor[seq(1,length(f.gor),2)]
  #especificidad_gor <- f.gor[seq(2,length(f.gor),2)]
  output=list("Betas"= beta,"festimado"= f.gor)
  
}

Función Betas

library("matrixStats")
Betas_fun <- function(Datos){
  
  betas <- list()   # empty list
  for (i in 1:length(Datos)) {
    Resultado_GSK <- sapply((Datos[i]), GSK)
    betas[i] <- Resultado_GSK[1]
  }
  betas <- as.data.frame(do.call(cbind, betas))
  betas_prom <- rowMeans(betas)
  betas_var <- rowVars(as.matrix(betas))  #library("matrixStats")
  return = list("Betas"= betas, "Betas_prom"= betas_prom, "Betas_var"= betas_var)
}

Función \(f\)-estimado

festimado_fun <- function(Datos){
  
  festimado <- list()   # empty list
  #betas_prom <- list() 
  #betas_var <- list() 
  
  for (i in 1:length(Datos)) {
    Resultado_GSK <- sapply((Datos[i]), GSK)
    festimado[i] <- Resultado_GSK[2]
  }
  festimados <- as.data.frame(do.call(cbind, festimado))
  festimados_prom <- rowMeans(festimados)
  festimado_var <- rowVars(as.matrix(festimados))  #library("matrixStats")
  return = list("festimados"= festimados, "festimados_prom"= festimados_prom, "festimados_var"= festimado_var)
}

Sturges

### Función número de bins

bin2d <-
  function(x, breaks1 = "Sturges", breaks2 = "Sturges"){
    # Data matrix x is n by 2
    # breaks1, breaks2: any valid breaks for hist function
    # using same defaults as hist
    histg1 <- hist(x[,1], breaks = breaks1, plot = FALSE)
    histg2 <- hist(x[,2], breaks = breaks2, plot = FALSE)
    brx <- histg1$breaks
    bry <- histg2$breaks
    # bin frequencies
    freq <- table(cut(x[,1], brx), cut(x[,2], bry))
    return(list(call = match.call(), freq = freq,
                breaks1 = brx, breaks2 = bry,
                mids1 = histg1$mids, mids2 = histg2$mids))
  }

Redondeo de decimales al entero superior e inferior

# Redodeo de decimales

ceiling_dec <- function(x, Decimals=1) {
  x2<-x*10^Decimals
  ceiling(x2)/10^Decimals
}

floor_dec <- function(x, Decimals=1) {
  x2<-x*10^Decimals
  floor(x2)/10^Decimals
}

Generación de datos

1. Probabilidades \(0.5,0.2,0.1,0.2\)

Simulación n=20

Se generan 1000 tablas \(4 \times 4\) con las mismas probabilidades y tamaƱo de muestra. Probabilidades \(0.5,0.2,0.1,0.2\) y tamaƱo de muestra \(n=20\)

set.seed(2022)
Data <- replicate(1000, ceros.a.5(datos_subp(rep(20,4),c(0.5,0.2,0.1,0.2))), simplify = FALSE)
#Data 

El promedio y la varianza de los betas estimados para este caso serĆ­a:

Betas_resu <- Betas_fun(Data)
#Betas_resu
### Promedio y varianza betas
Betas2 <- data.frame(Betas_resu$Betas_prom,Betas_resu$Betas_var, row.names = c("$\\beta_0$", "$\\beta_1^{(1)}$","$\\beta_1^{(2)}$", "$\\beta_0^{(,2)}$","$\\beta_1^{(1,2)}$", "$\\beta_1^{(2,2)}$"))
library(knitr)
knitr::kable(Betas2, col.names = c("Promedio", "Varianza"), caption = "Betas estimados", row.names = T)
Betas estimados
Promedio Varianza
\(\beta_0\) 0.6690083 0.0123083
\(\beta_1^{(1)}\) 0.0139675 0.0145880
\(\beta_1^{(2)}\) 0.0017977 0.0142143
\(\beta_0^{(,2)}\) -0.0732061 0.0348795
\(\beta_1^{(1,2)}\) -0.0031041 0.0460576
\(\beta_1^{(2,2)}\) -0.0026737 0.0427231

Distribución de los betas

#par(mfrow=c(2,3) ,cex=0.7, mai=c(0.1,0.1,0.2,0.1))
par(mfrow=c(2,3))
plot(density(as.numeric(Betas_resu$Betas[1,])), main= expression(beta[0]))
plot(density(as.numeric(Betas_resu$Betas[2,])), main= expression(beta[1]^(1)))
plot(density(as.numeric(Betas_resu$Betas[3,])), main= expression(beta[1]^(2)))
plot(density(as.numeric(Betas_resu$Betas[4,])), main= expression(beta[0]^{}( , 2)))
plot(density(as.numeric(Betas_resu$Betas[5,])), main= expression(beta[1]^{}(1, 2)))
plot(density(as.numeric(Betas_resu$Betas[6,])), main= expression(beta[1]^{}(2, 2)))

Confirmamos si la distribución de todos los betas es normal realizando el test de Shapiro Wilk multivariado.

### Shapiro multivariado
# install.packages("mvShapiroTest")
library("mvShapiroTest")
mvShapiro.Test(as.matrix(t(Betas_resu$Betas)))  
## 
##  Generalized Shapiro-Wilk test for Multivariate Normality by
##  Villasenor-Alva and Gonzalez-Estrada
## 
## data:  as.matrix(t(Betas_resu$Betas))
## MVW = 0.99583, p-value = 6.462e-08

Como el \(p\)- valor \(<0.05\) rechazamos \(H_{0}\), por tanto no hay normalidad multivariada entre los betas.

Analizamos la normalidad de cada beta de forma marginal (o individual)

 ### Shapiro univariadovariado

Shapiriro_beta1 <- shapiro.test(t(Betas_resu$Betas)[,1])$p.value
Shapiriro_beta2 <- shapiro.test(t(Betas_resu$Betas)[,2])$p.value
Shapiriro_beta3 <- shapiro.test(t(Betas_resu$Betas)[,3])$p.value
Shapiriro_beta4 <- shapiro.test(t(Betas_resu$Betas)[,4])$p.value
Shapiriro_beta5 <- shapiro.test(t(Betas_resu$Betas)[,5])$p.value
Shapiriro_beta6 <- shapiro.test(t(Betas_resu$Betas)[,6])$p.value

Shapiriro_betas <- data.frame(Shapiriro_beta1,Shapiriro_beta2, Shapiriro_beta3, Shapiriro_beta4, Shapiriro_beta5, Shapiriro_beta6)

knitr::kable(Shapiriro_betas, caption = "Valor P Test Shapiro univariado normalidad", col.names = c("$\\beta_0$", "$\\beta_1^{(1)}$","$\\beta_1^{(2)}$", "$\\beta_0^{(,2)}$","$\\beta_1^{(1,2)}$", "$\\beta_1^{(2,2)}$"))
Valor P Test Shapiro univariado normalidad
\(\beta_0\) \(\beta_1^{(1)}\) \(\beta_1^{(2)}\) \(\beta_0^{(,2)}\) \(\beta_1^{(1,2)}\) \(\beta_1^{(2,2)}\)
0.0023739 0.1284037 0.0389625 0.0006279 0.0067622 0.3896207

Como el \(p\)- valor \(<0.05\) rechazamos \(H_{0}\), por tanto no hay normalidad univariada en ninguno de los betas.

Analizando la sensibilidad y especificidad por subpoblación.

festimado_resu <- festimado_fun(Data)
#festimado_resu

El promedio y la varianza de la sensibilidad y especificidad por subppoblación sería:

Sensibilidad y especificidad estimadas
Promedio Varianza
Sensibilidad subpoblación 1 0.6690083 0.0123083
Especificidad subpoblación 1 0.5958023 0.0276963
Sensibilidad subpoblación 2 0.6708060 0.0107329
Especificidad subpoblación 2 0.5949262 0.0282576
Sensibilidad subpoblación 3 0.6829759 0.0117585
Especificidad subpoblación 3 0.6066657 0.0281028
Sensibilidad subpoblación 4 0.6847736 0.0124155
Especificidad subpoblación 4 0.6057897 0.0285398

Analizando conjuntamente la sensibilidad y le especificidad por subpoblaciones:

#install.packages("ash")
library("ash")

## Bivariado

se_sub1 <- festimado_resu$festimados[1,]
sp_sub1 <- festimado_resu$festimados[2,]

x <- t(matrix(c(as.numeric(se_sub1), as.numeric(sp_sub1)),2, byrow = T)) # bivariate se, sp
binsSturges <- bin2d(x)

limInfSe <- floor_dec(min(as.numeric(se_sub1)))
limSupSe <- ceiling_dec(max(as.numeric(se_sub1)))
limInfSp <- floor_dec(min(as.numeric(sp_sub1)))
limSupSp <- ceiling_dec(max(as.numeric(sp_sub1)))
ab <- matrix( c(limInfSe,limInfSp,limSupSe,limSupSp), 2, 2)

nbin <- c( length(binsSturges$breaks1), length(binsSturges$breaks2))  # 400 bins
bins <- bin2(x, ab, nbin) # bin counts,ab,nskip

# Continuing example from help(bin2)
#par(mfrow=c(1,2))
m <- c(7,8)
f <- ash2(bins,m)
par(mfrow=c(2,2))
image(f$x,f$y,f$z, xlab="Sensibilidad", ylab="Especificidad", main="Subpoblación 1")
contour(f$x,f$y,f$z,add=TRUE)




################ subpoblación 2

se_sub1 <- festimado_resu$festimados[3,]
sp_sub1 <- festimado_resu$festimados[4,]

x <- t(matrix(c(as.numeric(se_sub1), as.numeric(sp_sub1)),2, byrow = T)) # bivariate se, sp
binsSturges <- bin2d(x)

limInfSe <- floor_dec(min(as.numeric(se_sub1)))
limSupSe <- ceiling_dec(max(as.numeric(se_sub1)))
limInfSp <- floor_dec(min(as.numeric(sp_sub1)))
limSupSp <- ceiling_dec(max(as.numeric(sp_sub1)))
ab <- matrix( c(limInfSe,limInfSp,limSupSe,limSupSp), 2, 2)

nbin <- c( length(binsSturges$breaks1), length(binsSturges$breaks2))  # 400 bins
bins <- bin2(x, ab, nbin) # bin counts,ab,nskip

# Continuing example from help(bin2)
#par(mfrow=c(1,2))
m <- c(7,8)
f <- ash2(bins,m)
image(f$x,f$y,f$z, xlab="Sensibilidad", ylab="Especificidad", main="Subpoblación 2")
contour(f$x,f$y,f$z,add=TRUE)



################ subpoblación 3

se_sub1 <- festimado_resu$festimados[5,]
sp_sub1 <- festimado_resu$festimados[6,]

x <- t(matrix(c(as.numeric(se_sub1), as.numeric(sp_sub1)),2, byrow = T)) # bivariate se, sp
binsSturges <- bin2d(x)

limInfSe <- floor_dec(min(as.numeric(se_sub1)))
limSupSe <- ceiling_dec(max(as.numeric(se_sub1)))
limInfSp <- floor_dec(min(as.numeric(sp_sub1)))
limSupSp <- ceiling_dec(max(as.numeric(sp_sub1)))
ab <- matrix( c(limInfSe,limInfSp,limSupSe,limSupSp), 2, 2)

nbin <- c( length(binsSturges$breaks1), length(binsSturges$breaks2))  # 400 bins
bins <- bin2(x, ab, nbin) # bin counts,ab,nskip

# Continuing example from help(bin2)
#par(mfrow=c(1,2))
m <- c(7,8)
f <- ash2(bins,m)
image(f$x,f$y,f$z, xlab="Sensibilidad", ylab="Especificidad", main="Subpoblación 3")
contour(f$x,f$y,f$z,add=TRUE)


################ subpoblación 4

se_sub1 <- festimado_resu$festimados[7,]
sp_sub1 <- festimado_resu$festimados[8,]

x <- t(matrix(c(as.numeric(se_sub1), as.numeric(sp_sub1)),2, byrow = T)) # bivariate se, sp
binsSturges <- bin2d(x)

limInfSe <- floor_dec(min(as.numeric(se_sub1)))
limSupSe <- ceiling_dec(max(as.numeric(se_sub1)))
limInfSp <- floor_dec(min(as.numeric(sp_sub1)))
limSupSp <- ceiling_dec(max(as.numeric(sp_sub1)))
ab <- matrix( c(limInfSe,limInfSp,limSupSe,limSupSp), 2, 2)

nbin <- c( length(binsSturges$breaks1), length(binsSturges$breaks2))  # 400 bins
bins <- bin2(x, ab, nbin) # bin counts,ab,nskip

# Continuing example from help(bin2)
#par(mfrow=c(1,2))
m <- c(7,8)
f <- ash2(bins,m)
image(f$x,f$y,f$z, xlab="Sensibilidad", ylab="Especificidad", main="Subpoblación 4")
contour(f$x,f$y,f$z,add=TRUE)













Simulación n=39

Se generan 1000 tablas \(4 \times 4\) con las mismas probabilidades y tamaƱo de muestra.

El promedio y la varianza de los betas estimados para este caso serĆ­a:

Betas estimados
Promedio Varianza
\(\beta_0\) 0.7768659 0.0039322
\(\beta_1^{(1)}\) -0.0019753 0.0052700
\(\beta_1^{(2)}\) -0.0008557 0.0050447
\(\beta_0^{(,2)}\) -0.2291465 0.0288750
\(\beta_1^{(1,2)}\) 0.0095355 0.0387289
\(\beta_1^{(2,2)}\) -0.0000336 0.0368843

Distribución de los betas

Confirmamos si la distribución de todos los betas es normal realizando el test de Shapiro Wilk multivariado.

## 
##  Generalized Shapiro-Wilk test for Multivariate Normality by
##  Villasenor-Alva and Gonzalez-Estrada
## 
## data:  as.matrix(t(Betas_resu$Betas))
## MVW = 0.99805, p-value = 0.2075

Como el \(p\)- valor \(>0.05\) aceptamos \(H_{0}\), por tanto hay normalidad multivariada entre los betas.

Analizamos la normalidad de cada beta de forma marginal (o individual)

Valor P Test Shapiro univariado normalidad
\(\beta_0\) \(\beta_1^{(1)}\) \(\beta_1^{(2)}\) \(\beta_0^{(,2)}\) \(\beta_1^{(1,2)}\) \(\beta_1^{(2,2)}\)
0.0489314 0.6505589 0.9114768 1.6e-06 0.3312912 0.9030842

Criterio: \(p\)- valor \(<0.05\) rechazamos \(H_{0}\), por tanto no hay normalidad univariada en beta. \(p\)- valor \(>0.05\) aceptamos \(H_{0}\), por tanto sĆ­ hay normalidad univariada en beta.

Analizando la sensibilidad y especificidad por subpoblación.

El promedio y la varianza de la sensibilidad y especificidad por subppoblación sería:

Sensibilidad y especificidad estimadas
Promedio Varianza
Sensibilidad subpoblación 1 0.7768659 0.0039322
Especificidad subpoblación 1 0.5477194 0.0278451
Sensibilidad subpoblación 2 0.7760101 0.0042310
Especificidad subpoblación 2 0.5468300 0.0284575
Sensibilidad subpoblación 3 0.7748905 0.0043231
Especificidad subpoblación 3 0.5552796 0.0304787
Sensibilidad subpoblación 4 0.7740348 0.0043986
Especificidad subpoblación 4 0.5543902 0.0271807

Analizando conjuntamente la sensibilidad y le especificidad por subpoblaciones:







Simulación n=50

Se generan 1000 tablas \(4 \times 4\) con las mismas probabilidades y tamaƱo de muestra. Probabilidades \(0.5,0.2,0.1,0.2\) y tamaƱo de muestra \(n=50\)

El promedio y la varianza de los betas estimados para este caso serĆ­a:

Betas estimados
Promedio Varianza
\(\beta_0\) 0.6927667 0.0046149
\(\beta_1^{(1)}\) 0.0021853 0.0053564
\(\beta_1^{(2)}\) 0.0012088 0.0053373
\(\beta_0^{(,2)}\) -0.0636074 0.0142063
\(\beta_1^{(1,2)}\) 0.0004391 0.0169197
\(\beta_1^{(2,2)}\) 0.0041833 0.0171744

Distribución de los betas

Confirmamos si la distribución de todos los betas es normal realizando el test de Shapiro Wilk multivariado.

## 
##  Generalized Shapiro-Wilk test for Multivariate Normality by
##  Villasenor-Alva and Gonzalez-Estrada
## 
## data:  as.matrix(t(Betas_resu$Betas))
## MVW = 0.99805, p-value = 0.2033

Como el \(p\)- valor \(<0.05\) rechazamos \(H_{0}\), por tanto no hay normalidad multivariada entre los betas.

Analizamos la normalidad de cada beta de forma marginal (o individual)

Valor P Test Shapiro univariado normalidad
\(\beta_0\) \(\beta_1^{(1)}\) \(\beta_1^{(2)}\) \(\beta_0^{(,2)}\) \(\beta_1^{(1,2)}\) \(\beta_1^{(2,2)}\)
0.7541334 0.323295 0.7418987 0.0071449 0.052569 0.8364287

Criterio: \(p\)- valor \(<0.05\) rechazamos \(H_{0}\), por tanto no hay normalidad univariada en beta. \(p\)- valor \(>0.05\) aceptamos \(H_{0}\), por tanto sĆ­ hay normalidad univariada en beta.

Analizando la sensibilidad y especificidad por subpoblación.

El promedio y la varianza de la sensibilidad y especificidad por subppoblación sería:

Sensibilidad y especificidad estimadas
Promedio Varianza
Sensibilidad subpoblación 1 0.6927667 0.0046149
Especificidad subpoblación 1 0.6291593 0.0112120
Sensibilidad subpoblación 2 0.6939755 0.0042029
Especificidad subpoblación 2 0.6345514 0.0116814
Sensibilidad subpoblación 3 0.6949519 0.0041663
Especificidad subpoblación 3 0.6317836 0.0117321
Sensibilidad subpoblación 4 0.6961607 0.0044617
Especificidad subpoblación 4 0.6371757 0.0110567

Analizando conjuntamente la sensibilidad y le especificidad por subpoblaciones:







Simulación n=75

Se generan 1000 tablas \(4 \times 4\) con las probabilidades \(0.5,0.2,0.1,0.2\)

El promedio y la varianza de los betas estimados para este caso serĆ­a:

Betas estimados
Promedio Varianza
\(\beta_0\) 0.7010017 0.0030380
\(\beta_1^{(1)}\) -0.0033821 0.0037011
\(\beta_1^{(2)}\) -0.0034639 0.0034997
\(\beta_0^{(,2)}\) -0.0626398 0.0093598
\(\beta_1^{(1,2)}\) 0.0034083 0.0115840
\(\beta_1^{(2,2)}\) 0.0062062 0.0116785

Distribución de los betas

Confirmamos si la distribución de todos los betas es normal realizando el test de Shapiro Wilk multivariado.

## 
##  Generalized Shapiro-Wilk test for Multivariate Normality by
##  Villasenor-Alva and Gonzalez-Estrada
## 
## data:  as.matrix(t(Betas_resu$Betas))
## MVW = 0.99818, p-value = 0.3436

Como el \(p\)- valor \(<0.05\) rechazamos \(H_{0}\), por tanto no hay normalidad multivariada entre los betas.

Analizamos la normalidad de cada beta de forma marginal (o individual)

Valor P Test Shapiro univariado normalidad
\(\beta_0\) \(\beta_1^{(1)}\) \(\beta_1^{(2)}\) \(\beta_0^{(,2)}\) \(\beta_1^{(1,2)}\) \(\beta_1^{(2,2)}\)
0.3339324 0.2522319 0.6287668 0.251257 0.7124958 0.0949217

Criterio: \(p\)- valor \(<0.05\) rechazamos \(H_{0}\), por tanto no hay normalidad univariada en beta. \(p\)- valor \(>0.05\) aceptamos \(H_{0}\), por tanto sĆ­ hay normalidad univariada en beta.

Analizando la sensibilidad y especificidad por subpoblación.

El promedio y la varianza de la sensibilidad y especificidad por subppoblación sería:

Sensibilidad y especificidad estimadas
Promedio Varianza
Sensibilidad subpoblación 1 0.7010017 0.0030380
Especificidad subpoblación 1 0.6383619 0.0075030
Sensibilidad subpoblación 2 0.6975378 0.0030075
Especificidad subpoblación 2 0.6411042 0.0075105
Sensibilidad subpoblación 3 0.6976196 0.0028771
Especificidad subpoblación 3 0.6383881 0.0074125
Sensibilidad subpoblación 4 0.6941556 0.0028123
Especificidad subpoblación 4 0.6411304 0.0075146

Analizando conjuntamente la sensibilidad y le especificidad por subpoblaciones:







Simulación n=100

Se generan 1000 tablas \(4 \times 4\) con probabilidades \(0.5,0.2,0.1,0.2\)

El promedio y la varianza de los betas estimados para este caso serĆ­a:

Betas estimados
Promedio Varianza
\(\beta_0\) 0.7026050 0.0021096
\(\beta_1^{(1)}\) -0.0008131 0.0027692
\(\beta_1^{(2)}\) -0.0030723 0.0027239
\(\beta_0^{(,2)}\) -0.0563106 0.0070546
\(\beta_1^{(1,2)}\) 0.0020866 0.0084911
\(\beta_1^{(2,2)}\) 0.0006726 0.0094964

Distribución de los betas

Confirmamos si la distribución de todos los betas es normal realizando el test de Shapiro Wilk multivariado.

## 
##  Generalized Shapiro-Wilk test for Multivariate Normality by
##  Villasenor-Alva and Gonzalez-Estrada
## 
## data:  as.matrix(t(Betas_resu$Betas))
## MVW = 0.99789, p-value = 0.09787

Como el \(p\)- valor \(>0.05\) no hay suficiente información para rechazar \(H_{0}\), por tanto hay normalidad multivariada entre los betas.

Analizamos la normalidad de cada beta de forma marginal (o individual)

Valor P Test Shapiro univariado normalidad
\(\beta_0\) \(\beta_1^{(1)}\) \(\beta_1^{(2)}\) \(\beta_0^{(,2)}\) \(\beta_1^{(1,2)}\) \(\beta_1^{(2,2)}\)
0.0331926 0.146041 0.761771 0.5115521 0.1592486 0.0178937

Criterio: \(p\)- valor \(<0.05\) rechazamos \(H_{0}\), por tanto no hay normalidad univariada en beta. \(p\)- valor \(>0.05\) aceptamos \(H_{0}\), por tanto sĆ­ hay normalidad univariada en beta.

Analizando la sensibilidad y especificidad por subpoblación.

El promedio y la varianza de la sensibilidad y especificidad por subppoblación sería:

Sensibilidad y especificidad estimadas
Promedio Varianza
Sensibilidad subpoblación 1 0.7026050 0.0021096
Especificidad subpoblación 1 0.6462945 0.0058299
Sensibilidad subpoblación 2 0.6995328 0.0020766
Especificidad subpoblación 2 0.6438948 0.0057632
Sensibilidad subpoblación 3 0.7017920 0.0022358
Especificidad subpoblación 3 0.6475680 0.0058173
Sensibilidad subpoblación 4 0.6987197 0.0022227
Especificidad subpoblación 4 0.6451683 0.0051696

Analizando conjuntamente la sensibilidad y le especificidad por subpoblaciones:







Simulación n=230

Se generan 1000 tablas \(4 \times 4\) con probabilidades \(0.5,0.2,0.1,0.2\)

El promedio y la varianza de los betas estimados para este caso serĆ­a:

Betas estimados
Promedio Varianza
\(\beta_0\) 0.7076308 0.0009296
\(\beta_1^{(1)}\) -0.0010342 0.0011822
\(\beta_1^{(2)}\) 0.0029367 0.0011818
\(\beta_0^{(,2)}\) -0.0487267 0.0028132
\(\beta_1^{(1,2)}\) 0.0014495 0.0038273
\(\beta_1^{(2,2)}\) -0.0029421 0.0038390

Distribución de los betas

Confirmamos si la distribución de todos los betas es normal realizando el test de Shapiro Wilk multivariado.

## 
##  Generalized Shapiro-Wilk test for Multivariate Normality by
##  Villasenor-Alva and Gonzalez-Estrada
## 
## data:  as.matrix(t(Betas_resu$Betas))
## MVW = 0.99833, p-value = 0.5326

Si \(p\)- valor \(<0.05\) rechazamos \(H_{0}\), por tanto no hay normalidad multivariada entre los betas.

Analizamos la normalidad de cada beta de forma marginal (o individual)

Valor P Test Shapiro univariado normalidad
\(\beta_0\) \(\beta_1^{(1)}\) \(\beta_1^{(2)}\) \(\beta_0^{(,2)}\) \(\beta_1^{(1,2)}\) \(\beta_1^{(2,2)}\)
0.2421523 0.4754913 0.5517114 0.6355765 0.4858566 0.3360271

Criterio: \(p\)- valor \(<0.05\) rechazamos \(H_{0}\), por tanto no hay normalidad univariada en beta. \(p\)- valor \(>0.05\) aceptamos \(H_{0}\), por tanto sĆ­ hay normalidad univariada en beta.

Analizando la sensibilidad y especificidad por subpoblación.

El promedio y la varianza de la sensibilidad y especificidad por subppoblación sería:

Sensibilidad y especificidad estimadas
Promedio Varianza
Sensibilidad subpoblación 1 0.7076308 0.0009296
Especificidad subpoblación 1 0.6589041 0.0022637
Sensibilidad subpoblación 2 0.7105675 0.0009793
Especificidad subpoblación 2 0.6588987 0.0023479
Sensibilidad subpoblación 3 0.7065966 0.0008737
Especificidad subpoblación 3 0.6593194 0.0023425
Sensibilidad subpoblación 4 0.7095332 0.0008992
Especificidad subpoblación 4 0.6593139 0.0024331

Analizando conjuntamente la sensibilidad y le especificidad por subpoblaciones: