Exposición
Paqueteria necesaria
library(rmarkdown)
library(ggplot2)
library(GGally)
## Registered S3 method overwritten by 'GGally':
## method from
## +.gg ggplot2
library(MVN)
library(carData)
library(knitr)
library(lmtest)
## Cargando paquete requerido: zoo
##
## Adjuntando el paquete: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
Resumen de la base de datos
summary(iris)
## Sepal.Length Sepal.Width Petal.Length Petal.Width
## Min. :4.300 Min. :2.000 Min. :1.000 Min. :0.100
## 1st Qu.:5.100 1st Qu.:2.800 1st Qu.:1.600 1st Qu.:0.300
## Median :5.800 Median :3.000 Median :4.350 Median :1.300
## Mean :5.843 Mean :3.057 Mean :3.758 Mean :1.199
## 3rd Qu.:6.400 3rd Qu.:3.300 3rd Qu.:5.100 3rd Qu.:1.800
## Max. :7.900 Max. :4.400 Max. :6.900 Max. :2.500
## Species
## setosa :50
## versicolor:50
## virginica :50
##
##
##
Nombre de las variables
names(iris)
## [1] "Sepal.Length" "Sepal.Width" "Petal.Length" "Petal.Width" "Species"
Análisis explotratorio univariado de la base de datos
Cajas de bigotes univaridadas
setosa <- iris[1:150, 1:4]
x11()
Result <- mvn(data=setosa, mvnTest="royston", univariatePlot="box")
## Warning in uniPlot(data, type = univariatePlot): Box-Plots are based on
## standardized values (centered and scaled).
Histogramas univariados
Result<- mvn(data=setosa, mvnTest="royston", univariatePlot="histogram")

Gráficos Q-Q
result<-mvn(data=setosa, mvnTest = "royston", univariatePlot = "qqplot")

Análisis multivariado de la base de datos
Analisis para setosa
Prueba de mardia
result <- mvn(data = setosa, mvnTest = "mardia")
result$multivariateNormality
## Test Statistic p value Result
## 1 Mardia Skewness 67.430508778062 4.75799820400869e-07 NO
## 2 Mardia Kurtosis -0.230112114481001 0.818004651478012 YES
## 3 MVN <NA> <NA> NO
Prueba de Royston
result_royston <- mvn(data = setosa, mvnTest = "royston")
result_royston$multivariateNormality
## Test H p value MVN
## 1 Royston 50.39667 3.098229e-11 NO
Prueba de Henze-Zirkler
result_hz <- mvn(data = setosa, mvnTest = "hz")
result_hz$multivariateNormality
## Test HZ p value MVN
## 1 Henze-Zirkler 2.336394 0 NO
Analisis para la base de datos completa
iris_completa <- iris[, 1:4]
Prueba de Mardia
La prueba de Mardia analiza la normalidad multivariada mediante dos
componentes:
1. Asimetría Multivariada (Skewness): Evalúa si la distribución de
los datos presenta asimetría significativa.
2. Curtosis Multivariada (Kurtosis): Mide si la curtosis de la
distribución es normal (es decir, si se acerca a la curtosis de una
distribución normal).
result_mardia <- mvn(data = iris_completa, mvnTest = "mardia")
result_mardia$multivariateNormality
## Test Statistic p value Result
## 1 Mardia Skewness 67.430508778062 4.75799820400869e-07 NO
## 2 Mardia Kurtosis -0.230112114481001 0.818004651478012 YES
## 3 MVN <NA> <NA> NO
En la evaluación de la normalidad multivariada mediante la prueba de
Mardia, se obtuvieron resultados mixtos. La prueba de asimetría
multivariada (skewness) mostró un estadístico de 67.43 con un valor p de
4.76e-07, lo cual llevó a rechazar la hipótesis nula, indicando una
asimetría significativa en los datos. Por otro lado, la prueba de
curtosis multivariada arrojó un estadístico de -0.23 con un valor p de
0.818, lo que sugiere que la curtosis es adecuada para la
normalidad multivariada.
Sin embargo, debido a la evidencia de asimetría, la
normalidad multivariada general (MVN) no se cumplió, lo que
podría afectar la validez de los análisis estadísticos multivariados
paramétricos. Se recomienda considerar transformaciones de los datos o
utilizar métodos estadísticos no paramétricos para garantizar resultados
robustos.
Prueba de Royston (Extensión multivariada de Shapiro-Wilk)
La prueba de Royston es una extensión multivariada de la prueba de
Shapiro-Wilk, diseñada para evaluar si un conjunto de datos
multivariados sigue una distribución normal multivariada.
result_royston <- mvn(data = iris_completa, mvnTest = "royston")
result_royston$multivariateNormality
## Test H p value MVN
## 1 Royston 50.39667 3.098229e-11 NO
En la evaluación de la normalidad multivariada mediante la prueba de
Royston, se obtuvo un estadístico H de 50.39667 y un valor p de
3.098229e-11. Dado que el valor p fue significativamente menor a 0.05,
se rechaza la hipótesis nula, indicando que los datos analizados
no siguen una distribución normal multivariada. Esta
falta de normalidad sugiere la necesidad de considerar transformaciones
de los datos o el uso de métodos no paramétricos para garantizar la
validez de los análisis estadísticos posteriores.
Prueba de Henze-Zirkler
La prueba de Henze-Zirkler es una prueba estadística utilizada para
evaluar si un conjunto de datos multivariados sigue una distribución
normal multivariada. Es una prueba no paramétrica que se considera
robusta y efectiva para detectar desviaciones de la normalidad
multivariada.
result_hz <- mvn(data = iris_completa, mvnTest = "hz")
result_hz$multivariateNormality
## Test HZ p value MVN
## 1 Henze-Zirkler 2.336394 0 NO
En el análisis de la normalidad multivariada mediante la prueba de
Henze-Zirkler, se obtuvo un estadístico HZ de 2.336394 y un valor p de
0. Dado que el valor p fue menor a 0.05, se rechazó la hipótesis nula,
indicando que los datos analizados no siguen una distribución
normal multivariada. Esta falta de normalidad podría afectar la
validez de los análisis estadísticos que asumen esta condición, por lo
que se recomienda considerar transformaciones de los datos o utilizar
métodos no paramétricos.
Conclusión
Dado que las pruebas de normalidad multivariada (Henze-Zirkler,
Royston y Mardia) indicaron que los datos no siguen una distribución
normal multivariada, se recomienda explorar alternativas para garantizar
la validez del análisis estadístico. Entre las opciones viables se
encuentran la aplicación de transformaciones matemáticas a los datos, el
uso de métodos estadísticos no paramétricos, la implementación de
técnicas de remuestreo (bootstrap) o la segmentación de los datos en
subgrupos más homogéneos. Estas estrategias permitirán obtener
conclusiones robustas, evitando las limitaciones asociadas a la falta de
normalidad.
Matriz de dispersión
pairs(iris[, 1:4], main = "Matriz de dispersión - Iris")

ggpairs(iris_completa, lower = list(continuous = "smooth"),
diag = list(continuous = "barDiag"), axisLabels = "none")
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

Linealidad (Prueba de Rainbow)
modelo_linealidad <- lm(Sepal.Length ~ Sepal.Width + Petal.Length + Petal.Width, data = iris_completa)
# Prueba de Rainbow
prueba_rainbow <- raintest(modelo_linealidad)
# Resultado
print(prueba_rainbow)
##
## Rainbow test
##
## data: modelo_linealidad
## Rain = 0.9082, df1 = 75, df2 = 71, p-value = 0.6598
En el análisis de la linealidad del modelo de regresión aplicado a
la base de datos iris_completa, se llevó a cabo la prueba de Rainbow,
obteniendo un estadístico de prueba de 0.9082 con un valor p de 0.6598.
Dado que el valor p resultó ser mayor a 0.05, no se rechazó la
hipótesis nula, lo que sugiere que la relación entre las
variables independientes y la variable dependiente en el modelo de
regresión es adecuadamente lineal. Por lo tanto, no se encontraron
indicios estadísticamente significativos de una especificación
incorrecta del modelo o de la necesidad de una transformación no lineal.
Estos resultados respaldan la validez del modelo lineal para describir
los datos analizados.
Autocorrelación (Breusch-Godfrey)
modelo_autocorrelacion <- lm(Sepal.Length ~ Sepal.Width + Petal.Length + Petal.Width, data = iris_completa)
# Realizar la prueba de autocorrelación de Breusch-Godfrey (orden 1)
prueba_autocorrelacion <- bgtest(modelo_autocorrelacion, order = 1)
# Mostrar los resultados de la prueba
print(prueba_autocorrelacion)
##
## Breusch-Godfrey test for serial correlation of order up to 1
##
## data: modelo_autocorrelacion
## LM test = 0.2479, df = 1, p-value = 0.6186
En el análisis de la autocorrelación de los residuos del modelo de
regresión ajustado a la base de datos iris_completa, se aplicó la prueba
de Breusch-Godfrey. Los resultados mostraron un estadístico LM de 0.2479
y un valor p de 0.6186. Dado que el valor p fue mayor a 0.05, no
se rechazó la hipótesis nula, indicando que no existe evidencia
estadísticamente significativa de autocorrelación en los residuos del
modelo. Esta independencia de los residuos refuerza la validez del
modelo lineal, asegurando que las predicciones y conclusiones derivadas
del análisis estadístico sean confiables y robustas.