data <- NCI60
data1 <- data.frame(t(data$data))
names <- data$labs
colnames(data1) <- names
a <- which(names=="LEUKEMIA")
data.nueva <- data1[,a]
Al importar la base de datos, obtenemos la data que contiene 6830 observaciones y 6 variable diferentes que explican la Leukemia. Más adelante se presentarán diferentes métodos para explicar y realizar diferentes pruebas a estos datos.
ggpairs(data.nueva)
En el gráfico de dispersión y correlación podemos determinar mediante los histogramas que la distribución entre las variables parece ser bastante centrada o normalizada. En las gráficas de dispersión los puntos están mayormente distribuidos uniformemente lo que indica que no hay muchos valores atípicos. Sin embargo, resaltan los puntos entre las variables LEUKEMIA 3 y LEUKEMIA 4 ya que tienen una pendiente claramente ascendente donde los puntos tienden a moverse hacia arriba. Por otro lado, en los gráficos entre LEUKEMIA 1 y LEUKEMIA 2 podemos analizar que los datos de las dos variables están cerca de la media, esto ya que los puntos se encuentran bastante agrupados en el centro. Por último, los valores de la correlación varían entre 0.191 y 0.755. La correlación más alta es entre las variables LEUKEMIA 3 y LEUKEMIA 4 mientras que la correlación más baja se encuentra entre LEUKEMIA y LEUKEMIA 5.
multi.hist(x = data.nueva, dcol = c("blue", "red"))
Una vez realizamos los histogramas, se puede observar que la mayoría de los mismos tienen una distribucion bastante normal, pero aun asi la normalidad no es tan fluida como debe ser, podemos observar esto en los valores máximos ya que forman un pico más alto de lo habitual para una muestra normal. Al ocurrir esto podemos realizar pruebas a los datos tanto univariados como multivariados.
Pruebas de normalidad univariada
CVM <- mvn(data.nueva, univariateTest = "CVM",desc=T)
CVM$univariateNormality
## Test Variable Statistic p value Normality
## 1 Cramer-von Mises LEUKEMIA 19.1558 <0.001 NO
## 2 Cramer-von Mises LEUKEMIA.1 28.6203 <0.001 NO
## 3 Cramer-von Mises LEUKEMIA.2 14.8990 <0.001 NO
## 4 Cramer-von Mises LEUKEMIA.3 24.0805 <0.001 NO
## 5 Cramer-von Mises LEUKEMIA.4 33.2543 <0.001 NO
## 6 Cramer-von Mises LEUKEMIA.5 33.9233 <0.001 NO
Con esta prueba podemos observar que ninguna de las variables es normal.
L <- mvn(data.nueva, univariateTest = "Lillie",desc=T)
L$univariateNormality
## Test Variable Statistic p value Normality
## 1 Lilliefors (Kolmogorov-Smirnov) LEUKEMIA 0.0741 <0.001 NO
## 2 Lilliefors (Kolmogorov-Smirnov) LEUKEMIA.1 0.0973 <0.001 NO
## 3 Lilliefors (Kolmogorov-Smirnov) LEUKEMIA.2 0.0688 <0.001 NO
## 4 Lilliefors (Kolmogorov-Smirnov) LEUKEMIA.3 0.1044 <0.001 NO
## 5 Lilliefors (Kolmogorov-Smirnov) LEUKEMIA.4 0.1182 <0.001 NO
## 6 Lilliefors (Kolmogorov-Smirnov) LEUKEMIA.5 0.1070 <0.001 NO
Igual que la prueba anterior, podemos observar que ninguna de las variables cumplen con el supuesto de normalidad.
AD <- mvn(data.nueva, univariateTest = "AD",desc=T)
AD$univariateNormality
## Test Variable Statistic p value Normality
## 1 Anderson-Darling LEUKEMIA 112.6447 <0.001 NO
## 2 Anderson-Darling LEUKEMIA.1 166.2628 <0.001 NO
## 3 Anderson-Darling LEUKEMIA.2 90.1016 <0.001 NO
## 4 Anderson-Darling LEUKEMIA.3 135.3628 <0.001 NO
## 5 Anderson-Darling LEUKEMIA.4 186.6731 <0.001 NO
## 6 Anderson-Darling LEUKEMIA.5 188.2191 <0.001 NO
Igual que las pruebas anteriores, podemos observar que ninguna de las variables cumplen con el supuesto de normalidad.
Evaluación de la normal multivariada
Mardia <- mvn(data.nueva, mvnTest = "mardia")
Mardia$multivariateNormality
## Test Statistic p value Result
## 1 Mardia Skewness 7834.9408078001 0 NO
## 2 Mardia Kurtosis 348.731100353133 0 NO
## 3 MVN <NA> <NA> NO
Comenzando las pruebas de normalidad multivariadas podemos observar que no es considerada normal en esta prueba.
HZ <- mvn(data.nueva, mvnTest = "hz")
HZ$multivariateNormality
## Test HZ p value MVN
## 1 Henze-Zirkler 53.18434 0 NO
En esta segunda prueba, de igual manera, llegamos a la conclusion que los datos no son normales.
Al finalizar todas las pruebas de normalidad tanto univariada como multivariada podemos concluir que hay los datos no cumplen con el supuesto de normalidad en las pruebas. Por el tamaño de los datos hay ciertas pruebas que no se pueden realizar ya que los mismos se exceden del requisito necesario para poder llevar a cabo las pruebas de manera eficiente.
3.Deben proponer por lo menos 3 pruebas de hipótesis de las trabajadas en clase
Prueba
H0: Variables son independientes Ha: Variables no son independientes
α = 0.05
Información del problema
n <- 6830
p <- 6
Matriz de covarianza muestral
S <- cov(data.nueva)
S
## LEUKEMIA LEUKEMIA.1 LEUKEMIA.2 LEUKEMIA.3 LEUKEMIA.4 LEUKEMIA.5
## LEUKEMIA 0.6665271 0.2275691 0.2687147 0.2032585 0.2096526 0.1524974
## LEUKEMIA.1 0.2275691 0.9357423 0.3855018 0.3644464 0.3374698 0.2179712
## LEUKEMIA.2 0.2687147 0.3855018 0.8116926 0.4906354 0.4596969 0.2507030
## LEUKEMIA.3 0.2032585 0.3644464 0.4906354 1.1813108 0.8500895 0.3407668
## LEUKEMIA.4 0.2096526 0.3374698 0.4596969 0.8500895 1.0728122 0.3170256
## LEUKEMIA.5 0.1524974 0.2179712 0.2507030 0.3407668 0.3170256 0.9576000
round(S,2)
## LEUKEMIA LEUKEMIA.1 LEUKEMIA.2 LEUKEMIA.3 LEUKEMIA.4 LEUKEMIA.5
## LEUKEMIA 0.67 0.23 0.27 0.20 0.21 0.15
## LEUKEMIA.1 0.23 0.94 0.39 0.36 0.34 0.22
## LEUKEMIA.2 0.27 0.39 0.81 0.49 0.46 0.25
## LEUKEMIA.3 0.20 0.36 0.49 1.18 0.85 0.34
## LEUKEMIA.4 0.21 0.34 0.46 0.85 1.07 0.32
## LEUKEMIA.5 0.15 0.22 0.25 0.34 0.32 0.96
sigma_est <- sum(diag(S))/p
lambda_0 <- (n-1)*(log(sigma_est)-log(det(S)))
lambda_0
## [1] 14799.47
Calculamos el valor crítico
a <- 0.05
gl <- (1/2)*(p+2)*(p-1)
lambda_c <- qchisq(1-a,gl)
lambda_c
## [1] 31.41043
Decisión: Como lambda_0 es mayor que lambda_c, se rechaza la hipótesis nula, es decir que las variables no son independientes y no tienen una varianza común.
Prueba de hipótesis para un vector de medias
Prueba: 1. H0: μ = (0.50,0.1,0.1,0.2,0.2,0.1) = μ0 Ha: μ no es igual a μ0
Información del problema
N <- 6830
p <- 6
mu <- apply(data.nueva,2,mean)
# muestra
n <- 500
set.seed(1234)
muestra <- sample(1:N,n,replace = F)
data_muestra <- data.nueva[muestra,]
xbar <- apply(data_muestra,2,mean)
Vector de medias específico a probar
mu0 <- as.vector(c(0.50,0.8,0.7,1,1,0.9))
Vector de medias muestral
xbar <- as.vector(apply(data.nueva,2,mean))
Matriz de covarianza muestral
S <- cov(data.nueva)
S
## LEUKEMIA LEUKEMIA.1 LEUKEMIA.2 LEUKEMIA.3 LEUKEMIA.4 LEUKEMIA.5
## LEUKEMIA 0.6665271 0.2275691 0.2687147 0.2032585 0.2096526 0.1524974
## LEUKEMIA.1 0.2275691 0.9357423 0.3855018 0.3644464 0.3374698 0.2179712
## LEUKEMIA.2 0.2687147 0.3855018 0.8116926 0.4906354 0.4596969 0.2507030
## LEUKEMIA.3 0.2032585 0.3644464 0.4906354 1.1813108 0.8500895 0.3407668
## LEUKEMIA.4 0.2096526 0.3374698 0.4596969 0.8500895 1.0728122 0.3170256
## LEUKEMIA.5 0.1524974 0.2179712 0.2507030 0.3407668 0.3170256 0.9576000
round(S,2)
## LEUKEMIA LEUKEMIA.1 LEUKEMIA.2 LEUKEMIA.3 LEUKEMIA.4 LEUKEMIA.5
## LEUKEMIA 0.67 0.23 0.27 0.20 0.21 0.15
## LEUKEMIA.1 0.23 0.94 0.39 0.36 0.34 0.22
## LEUKEMIA.2 0.27 0.39 0.81 0.49 0.46 0.25
## LEUKEMIA.3 0.20 0.36 0.49 1.18 0.85 0.34
## LEUKEMIA.4 0.21 0.34 0.46 0.85 1.07 0.32
## LEUKEMIA.5 0.15 0.22 0.25 0.34 0.32 0.96
X0 <- n*t((xbar-mu0)) %*% solve(S) %*% (xbar-mu0)
round(X0,2)
## [,1]
## [1,] 973.43
a <- 0.05
Xc <- qchisq(1-a,2)
round(Xc,2)
## [1] 5.99
p_value <- 1-pchisq(X0,2)
p_value
## [,1]
## [1,] 0
Decisión: Como α = 0.05 > p-value, rechazamos la hipótesis nula, es decir, no podemos probar que el vector de medias muestrales es similar a μ = (0.50,0.1,0.1,0.2,0.2,0.1) = μ0.
Independencia
Prueba:
H0: Variables son independientes Ha: Variables no son independientes
α = 0.05
Información del problema
n <- 6830
p <- 6
Matriz de covarianza muestral
Sigma <- cov(data.nueva)
S <- cov(data_muestra)
round(S,2)
## LEUKEMIA LEUKEMIA.1 LEUKEMIA.2 LEUKEMIA.3 LEUKEMIA.4 LEUKEMIA.5
## LEUKEMIA 0.62 0.18 0.21 0.17 0.12 0.09
## LEUKEMIA.1 0.18 1.02 0.34 0.27 0.28 0.08
## LEUKEMIA.2 0.21 0.34 0.74 0.48 0.43 0.19
## LEUKEMIA.3 0.17 0.27 0.48 1.16 0.77 0.28
## LEUKEMIA.4 0.12 0.28 0.43 0.77 0.99 0.22
## LEUKEMIA.5 0.09 0.08 0.19 0.28 0.22 0.84
Matriz de covarianza fija
valores_diagonales <- c(0.67, 0.94, 0.81, 1.18, 1.07, 0.96)
Sigma0 <- diag(valores_diagonales)
Sigma0
## [,1] [,2] [,3] [,4] [,5] [,6]
## [1,] 0.67 0.00 0.00 0.00 0.00 0.00
## [2,] 0.00 0.94 0.00 0.00 0.00 0.00
## [3,] 0.00 0.00 0.81 0.00 0.00 0.00
## [4,] 0.00 0.00 0.00 1.18 0.00 0.00
## [5,] 0.00 0.00 0.00 0.00 1.07 0.00
## [6,] 0.00 0.00 0.00 0.00 0.00 0.96
Propios <- eigen(S%*%solve(Sigma0))
val_prop <- Propios$values
val_prop
## [1] 2.5002933 0.9826598 0.8044264 0.7032216 0.4510180 0.2665968
lambda_0 <- -(n-1)*sum(log(val_prop))
lambda_0
## [1] 12217.49
Calculamos el valor crítico
a <- 0.05
gl <- (1/2)*p*(p-1)
lambda_c <- qchisq(1-a,gl)
lambda_c
## [1] 24.99579