En el presente trabajo se realiza el análisis de una muestra que se obtiene de manera aleatoria a partir de una semilla que se estableció con el último dígito del documento de identidad de cada participante, la cual proviene de la base de datos “BlacKfriday”.
Mediante la resolución de 3 actividades la idea es entablar un análisis estadístico inferencial con los datos brindados por esta muestra aleatoria y poder examinar el comportamiento de los mismos.
Pero antes que todo, es necesario contextualizarnos respecto a la base de datos que vamos a trabajar, dejando claro lo siguiente:
También conocido como Viernes Negro por su traducción al español, el Black Friday es un día especial para hacer compras, cuyo origen se remonta a los años sesenta en Estados Unidos y en el que miles de tiendas y comercios ofrecen grandes descuentos en sus productos y servicios, generando grandes ventas en el último periodo del año.
Teniendo en cuenta lo anterior, cada una de las actividades nos permitira estudiar el comportamiento de las variables que en este gran día relacionan tanto a los productos como a los compradores.
En esta sección se quiere estudiar el comportamiento de las compras en esa jornada.
Lo primero es extraer una muestra aleatoria de tamaño 120, usando los últimos dígitos de la cédula de los integrantes del grupo.
“Gender”: Sexo del comprador
La variable Gender muestra la distribución de los compradores entre el género masculino (M) y el género femenino (F), la frecuencia de estos (tomado de la muestra) está representada en la tabla y el gráfico de barras. Estos indican que predomina el género masculino sobre el femenino de manera significativa.
library(ggplot2)
# Tabla de frecuencia para la variable gender
tabla_gender <- table(x=muestra$Gender)
# Gráfico de barras para la variable gender
barplot(tabla_gender, main = "Distribución de Gender", xlab = "Género", ylab = "Frecuencia", col = "royalblue4")“City_Category” Lugar de residencia del comprador.
La variable City_Category indica los lugares de residencia de los compradores, que se clasifican entre A, B o C. Como se puede observar en la tabla, la categoría de mayor frecuencia es la B, según la muestra tomada. En el gráfico podemos apreciar mejor la proporción de cada una, donde encontramos que la categoría B representa el 40,8%, seguida de la categoría C con el 35% y por último, la menos frecuente es la categoría A, con el 24,2%
# Tabla de frecuencia para City_Category
tabla_city <- table(muestra$City_Category)
# Gráfico de torta para City_Category
ggplot(muestra, aes(x = "", fill = City_Category)) +
geom_bar(width = 1, color = "white") +
coord_polar("y") +
theme_void() +
labs(title = "Distribución de City_Category",
caption = "Porcentajes:",
fill = "Categoría de Ciudad") +
geom_text(stat = "count", aes(label = sprintf("%.1f%%", (..count..)/sum(..count..) * 100)),
position = position_stack(vjust = 0.5))## Warning: The dot-dot notation (`..count..`) was deprecated in ggplot2 3.4.0.
## ℹ Please use `after_stat(count)` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
“Income” Ingreso mensual
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 6501 10941 12872 12858 14340 19593
Mínimo (Min): El valor mínimo de ingresos en la muestra es 6501. Esto representa el ingreso más bajo observado en la muestra.
Primer Cuartil (1st Qu.): El primer cuartil es 10941. Esto indica que el 25% de los ingresos en la muestra son menores o iguales a este valor.
Mediana (Median):La mediana es 12872. Representa el valor central de los ingresos en la muestra.
Media (mean): La media es 12858. Es el promedio de ingresos en la muestra.
Tercer Cuartil (3rd Qu.): El tercer cuartil es 14340. Indica que el 75% de los ingresos en la muestra son menores o iguales a este valor.
Máximo (Max.): El valor máximo de ingresos en la muestra es 19593. Representa el ingreso más alto observado en la muestra
## [1] 2472.448
El valor de la desviación estándar para la variable Income es 2472.448, lo que sugiere que hay una variabilidad considerable de los ingresos de los compradores registrados en la muestra, con valores individuales que se alejan significativamente de la media
# Histograma para Income
hist(muestra$Income, main = "Histograma de Income", xlab = "Ingreso Mensual", col = "purple4")El histograma de la variable Income muestra aparentemente una distribución normal. La mayor densidad de los valores se presenta alrededor de los 13.000, en la cola izquierda se presentan los ingresos con menor frecuencia alrededor de los 6.000 y en la cola derecha aproximadamente después de los 18.000. La simetría en la distribución indica que la media y la mediana están muy cerca entre sí.
# Boxplot para Income
boxplot(muestra$Income, main = "Boxplot de Income", ylab = "Ingreso Mensual", col = "slategray2")En el boxplot de la variable Income también se pueden ver bien reflejadas las medidas descriptivas. Vemos que la línea gruesa está representando la mediana, que ronda los 13.000. El primer y el tercer cuartil son los extremos inferior y superior de la caja del boxplot, que son aproximadamente 11.000 y 14.300 respectivamente. Los bigotes se extienden desde los aproximadamente 6.000 hasta los 19.000 y vemos que se presentan valores atípicos cerca de los 20.000
Con el fin de analizar la variable PURCHASE, la cual corresponde a (“Valor de la compra en dólares”), determinaremos el valor de la media y la desviación estándar poblacionales y muestrales y calcularemos la probabilidad de la variable media muestral, con el fin de verificar si esta es mayor o igual que el valor de la poblacional.
Recordemos que:
La desviación estándar es una medida de extensión o variabilidad en la estadística descriptiva. Se utiliza para calcular la variación o dispersión en la que los puntos de datos individuales difieren de la media.
Una desviación baja indica que los puntos de datos están muy cerca de la media, mientras que una desviación alta muestra que los datos están dispersos en un rango mayor de valores.
Existen dos formas de calcular la desviación estándar dependiendo de si estamos trabajando con una muestra o con la población.
La desviación estándar muestral para n observaciones, donde x barra representa el promedio muestral se define así:
\[ S = \sqrt{\frac{\sum_{i=1}^{i=n}(x_i - \bar{x})^2}{n-1}} \]
y la desviación estándar poblacional , donde μ representa el promedio de la población para n observaciones se define así:
\[ \sigma = \sqrt{\frac{\sum_{i=1}^{i=n}(x_i - \mu)^2}{n}} \]
Calculemos ahora las desviaciones para la variable PURCHASE:
desviacion_muestral <- round(sd(x=muestra$Purchase, na.rm = FALSE), 3)
cat("La desviación estándar muestral es:", desviacion_muestral)## La desviación estándar muestral es: 4411.023
Sigma <- function(x) {
n <- length(x)
desviacion_pob <- sqrt(sum((x - mean(x))^2) / n)
return(desviacion_pob)
}
desviacion_poblacional <- round(Sigma(Blackfriday$Purchase), 3)
# Imprime un mensaje que indica la desviación estándar poblacional calculada
cat("La desviación estándar poblacional es:", desviacion_poblacional)## La desviación estándar poblacional es: 5001.604
Por otro lado tenemos al Promedio o Media que es la cantidad que se obtiene al sumar todos los datos de un conjunto de valores para posteriormente dividir la cifra obtenida entre la cantidad de valores analizados.
\[\bar{x} = \frac{\sum_{i=1}^{n} x_i}{n}\]
Respecto a las medias, tenemos que para nuestra base de datos son las siguientes:
El cálculo de la probabilidad de que la media muestral sea mayor o igual que la media poblacional estaría relacionado con pruebas de hipótesis unilaterales en las que estamos interesados en ver si la media muestral difiere significativamente (o es mayor/menor) que la media poblacional supuesta.
Esto se puede hacer mediante pruebas de hipótesis como el test t de Student o Z en función de la distribución que sigan los datos “Blackfriday”. En este contexto, la probabilidad está relacionada con la significancia estadística y el nivel de confianza que se asigna a la prueba de hipótesis.
Aquí calcularemos el z-score, que indica cuántas desviaciones estándar de la media muestral difiere de la media poblacional.
## Z-Score: 1.04162
## Probabilidad de que la media muestral sea mayor o igual que la media poblacional: 0.14879
A continuación realizamos el histograma de la variable PURCHASE, calculamos el sesgo, la curtosis y de esta manera podemos denotar si la variable parece distribuirse de forma normal o no.
library(e1071)
# Histograma de la variable Purchase
options(scipen = 999)
hist(muestra$Purchase, main = "Histograma de Purchase", xlab = "Purchase", ylab = "Frecuencia",
col = "lightblue", border = "black", probability = TRUE)
sample <- mean(muestra$Purchase)
sig <- sd(muestra$Purchase)
curve(dnorm(x, mean = sample, sd = sig), col = "darkred", lwd = 2, add = TRUE)El histograma de la variable Purchase muestra que la mediana se puede encontrar rondando los 10000. Vemos que los valores con mayor frecuencia se encuentran aproximadamente por los 13000, los menores entre 0 y 2000 y que hay valores atípicos después de 20.000. La concentración principal de valores está hacia la izquierda y esto sugiere que hay una asimetría negativa.
La curtosis es una medida estadística valiosa que nos proporciona información sobre la forma de una distribución de datos y la presencia de valores atípicos. A través de ella, podemos identificar si una distribución tiene colas pesadas o ligeras en comparación con una distribución normal.
1.Leptocúrtica: Una distribución leptocúrtica tiene una curtosis positiva. Esto significa que tiene colas más pesadas y un pico más pronunciado en comparación con la distribución normal. En una distribución leptocúrtica, los valores de los datos están más concentrados alrededor de la media y hay menos valores atípicos. Esto indica una mayor concentración de datos en un rango estrecho.
2.Mesocúrtica: Una distribución mesocúrtica tiene una curtosis cercana a cero. En este caso, la forma de la distribución es similar a la de una distribución normal. Tiene colas y picos moderados, lo que indica una dispersión y concentración de datos que se ajusta a lo esperado en una distribución típica.
3.Platicúrtica: Una distribución platicúrtica tiene una curtosis negativa. Esto significa que tiene colas más ligeras y un pico más suave en comparación con la distribución normal. En una distribución platicúrtica, los valores de los datos están menos concentrados alrededor de la media y hay más valores atípicos. Esto indica una dispersión más amplia de datos y una mayor probabilidad de encontrar valores extremos.
El valor obtenido de la curtosis para la variable purchase se muestra a continuación:
## [1] 0.1159167
## [1] -0.3371646
El sesgo es 0.1159167 y si bien al ser cercano a 0 indicaría simetría, esta es leve. La curtosis es -0.3371646, por lo que al ser negativa, implica colas más ligeras y un pico más plano que una distribución normal. Teniendo en cuenta esto y la asimetría negativa observada en el histograma, se puede decir que la variable parece no distribuirse de forma normal.
Para realizar intervalos de confianza tenemos que tener claro que :
Se llama intervalo de confianza a un par o varios pares de números entre los cuales se estima que estará cierto valor desconocido respecto de un parámetro poblacional con un determinado nivel de confianza. Formalmente, estos números determinan un intervalo, que se calcula a partir de datos de una muestra, y el valor desconocido es un parámetro poblacional. El nivel de confianza representa el porcentaje de intervalos que tomados de 100 muestras independientes distintas contienen en realidad el valor desconocido.
set.seed(
01060)
base_datos <- read_excel("Blackfriday.xlsx")
base.b <- data.frame(base_datos)
muestra <- base.b[sample(nrow(base.b), size = 120), 1:13]
a <- t.test(x = muestra$Purchase, conf.level = 0.90)
a$conf.int## [1] 9489.896 10824.954
## attr(,"conf.level")
## [1] 0.9
## [1] 10157.42
Para encontrar el intervalo promedio de las ventas hechas en el blackfriday, usamos la función t.test que nos ayuda a evaluar una sola variable con un nivel de confianza de 90%. Al final encontramos que el intervalo es [9489.896, 10824.954]. A su vez, encontramos la media pra determinar si está cae dentro de este intervalo y en efecto lo hace. Esto quiere decir que la media sí se puede acotar con el intervalo dado.
## [1] 0.02010911 0.02862174
## attr(,"conf.level")
## [1] 0.95
## Con una confianza del 95%, las ventas sobre USD5000 están entre [0.0201, 0.0286]
## [1] 0.024
limite_inferior <- b$conf.int[1]
limite_superior <- b$conf.int[2]
if (prop_poblacional >= limite_inferior & prop_poblacional <= limite_superior) {
cat("La proporción poblacional está en el intervalo de confianza.\n")
} else {
cat("La proporción poblacional no está en el intervalo de confianza.\n")
}## La proporción poblacional está en el intervalo de confianza.
Necesitamos la cantidad de datos en ventas que sobrepasen los USD5000, así que se usa la función prop.test. Y se determina si la proporción poblacional, que se define dividiendo la variable x sobre la n (número de datos y de intentos que se toman). Esta proporción nos indica cuántos de los individuos entran en la categoria de tener ventas sobre USD5000. Al final, se concluye que esta proporción si hace parte del intervalo de proporción que se dio con el 95% de confianza.
compras_hombres <- base_datos$Purchase[base_datos$Gender == "Male"]
compras_mujeres <- base_datos$Purchase[base_datos$Gender == "Female"]
length(compras_hombres)## [1] 0
## [1] 0
if (length(compras_hombres) >= 2 & length(compras_mujeres) >= 2) {
compras_hombres_muestra <- sample(compras_hombres, min(length(compras_hombres), 30))
compras_mujeres_muestra <- sample(compras_mujeres, min(length(compras_mujeres), 30))
test_diferencia_medias <- t.test(compras_hombres_muestra, compras_mujeres_muestra, conf.level = 0.90)
intervalo_confianza <- test_diferencia_medias$conf.int
intervalo_confianza
} else {
print("No hay suficientes observaciones en una de las muestras para realizar la comparación.")
}## [1] "No hay suficientes observaciones en una de las muestras para realizar la comparación."
Inicialmente se realizan dos vectores que con la cantidad de compras de mujeres y hombres respectivamente, posteriormente se comprueba si existen al menos dos compras para hombres y mujeres, Se toman muestras aleatorias de tamaño mínimo entre 30 y la cantidad de compras registradas para hombres y mujeres. Para el caso en el que hubiesen al menos dos compras, se realizaría una prueba t de dos muestras para comparar las medias de las compras de hombres y mujeres con un nivel de confianza del 90%, posteriormente se obtendría el intervalo de confianza de la diferencia de medias. Sin embargo, como en este caso las variables presentaban menos de dos datos se imprime un mensaje indicando que no hay suficientes observaciones para realizar la comparación.
compras_mujeres <- base_datos$Purchase[base_datos$Gender == "Female"]
varianza_mujeres <- var(compras_mujeres)
n_mujeres <- length(compras_mujeres)
if (n_mujeres >= 5) {
df <- n_mujeres - 1
confianza <- 0.90
alpha <- 1 - confianza
valor_critico_izquierdo <- qchisq(alpha / 2, df = df)
valor_critico_derecho <- qchisq(1 - alpha / 2, df = df)
intervalo_confianza_varianza_mujeres <- c(((n_mujeres - 1) * varianza_mujeres) / valor_critico_derecho,
((n_mujeres - 1) * varianza_mujeres) / valor_critico_izquierdo)
intervalo_confianza_varianza_mujeres
} else {
print("El tamaño de la muestra es pequeño para calcular el intervalo de confianza de la varianza con precisión.")
}## [1] "El tamaño de la muestra es pequeño para calcular el intervalo de confianza de la varianza con precisión."
Para realizar el cálculo de la varianza en las compras de mujeres se revisa que el numero de la muestra tenga tamaño de al menos cinco datos, para el caso en el que se cumple se plantea un código que calcule los grados de libertad, defina el nivel de confianza como 90%.calcule los valores críticos de la distribución chi-cuadrado para el intervalo de confianza de la varianza de las compras de mujeres. y muestre el intervalo de confianza para la varianza de las compras de mujeres.Sin embargo, como esto no se cumple debido a que el tamaño de la muestra de mujeres es menor a 5, se imprime un mensaje indicando que el tamaño de la muestra es pequeño para calcular el intervalo de confianza de la varianza con precisión.
compras <- muestra$Purchase
y <- ggplot(muestra, aes(x = Purchase)) +
geom_histogram(aes(y = ..density..), fill = "blue", alpha = 0.7) +
geom_density(color = "blue") +
labs(title = "Distribución de M",
x = "Valores",
y = "Densidad")
y## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
Según las gráficas que se obtuvieron para las compras se puede observar un comportamiento normal de la muestra por lo cual podemos trabajar sin problemas con el comando “t.test” para realizar la prueba.
## [1] 10157.42
## [1] 9508.259
# Realizar una prueba de hipótesis t de una muestra
resultado_prueba <- t.test(muestra$Purchase, alternative = "greater", conf.level = 0.95, mu = pm)
# Imprimir la media de la muestra y la media poblacional
cat("Media de la muestra:", pm2, "\n")## Media de la muestra: 10157.42
## Media poblacional: 9508.259
# Imprimir los resultados de la prueba de hipótesis
cat("\nResultados de la prueba de hipótesis:\n")##
## Resultados de la prueba de hipótesis:
##
## One Sample t-test
##
## data: muestra$Purchase
## t = 1.6122, df = 119, p-value = 0.05479
## alternative hypothesis: true mean is greater than 9508.259
## 95 percent confidence interval:
## 9489.896 Inf
## sample estimates:
## mean of x
## 10157.42
Los resultados obtenidos de la prueba fueron:
data: muestra$Purchase t = 1.6122, df = 119, p-value = 0.05479 alternative hypothesis: true mean is greater than 9508.259 95 percent confidence interval: 9489.896 Inf sample estimates: mean of x 10157.42
# Conclusión en el contexto del problema
if (resultado_prueba$p.value < 0.05) {
cat("\nConclusión: Rechazamos la hipótesis nula.\n")
} else {
cat("\nConclusión: No hay suficiente evidencia para rechazar la hipótesis nula.\n")
}##
## Conclusión: No hay suficiente evidencia para rechazar la hipótesis nula.
Por lo que no podemos rechazar la prueba de hipótesis, por lo que el valor µ es menor que la media calculada para la muestra de 120 de datos
En primer lugar se realizó el cálculo del promedio de la compra realizada por hombres y por mujeres, luego, lo guardamos en un dataframe:
## $F
## [1] 13137 9774 14135 16275 4792 13447 11549 7908 12235 11691 17858 7804
## [13] 3301 2001 6170 14087 4255 6538 9529 11706 15799 13028 11339 12461
##
## $M
## [1] 7627 14200 9218 6930 6575 12573 9813 10026 13104 12324 9590 7389
## [13] 7477 10956 12302 9901 6408 9613 16939 12823 3586 13294 10076 9432
## [25] 4987 7924 5475 12773 9011 7927 13894 11333 8331 13189 10763 9993
## [37] 3849 15363 11315 2293 13798 7287 22048 3984 11514 14420 1254 12775
## [49] 15043 10624 11213 10521 17520 2461 13190 11503 13218 8779 13483 14547
## [61] 4019 8394 3150 21253 12791 7195 9644 4142 9159 17113 4157 4590
## [73] 11387 10034 13930 2603 2809 7461 12993 12018 4823 7160 9653 5041
## [85] 12054 15342 6235 10353 9797 15725 9196 5839 17732 2609 17391 20502
## [1] 10084.08
## [1] 10450.79
Se realizó la prueba de hipótesis haciendo uso del comando t.test:
## [1] 0.7117355
De lo que se pudo concluir:
if (t_test_resultado$p.value < 0.05) {
cat("Se rechaza la hipótesis nula. Hay evidencia de diferencia en las compras promedio entre hombres y mujeres.")
} else {
cat("No hay suficiente evidencia para rechazar la hipótesis nula. No hay diferencia significativa en las compras promedio entre hombres y mujeres.")
}## No hay suficiente evidencia para rechazar la hipótesis nula. No hay diferencia significativa en las compras promedio entre hombres y mujeres.
Lo que quiere decir que las el promedio de las compras difiere entre hombres y mujeres.
Para comprobar el resultado se realizó la gráfica de caja y bigotes para observar de mejor manera el valor de los datos con su respectiva media:
# Crear un data frame para realizar el boxplot
df_boxplot <- data.frame(
Gender = rep(c("Hombre", "Mujer"), times = c(length(phvsm$M), length(phvsm$F))),
Purchase = c(phvsm$M, phvsm$F)
)
# Crear el boxplot
boxplot(Purchase ~ Gender, data = df_boxplot, col = c("blue", "pink"), main = "Distribución de Compras por Género")
En donde se observa que el resultado coincide con la prueba de
hipótesis, la media de las compras difieren.
Al igual que en el inciso anterior de la muestra se separaron los valores de las compras realizadas por hombres y mujeres:
## $F
## [1] 13137 9774 14135 16275 4792 13447 11549 7908 12235 11691 17858 7804
## [13] 3301 2001 6170 14087 4255 6538 9529 11706 15799 13028 11339 12461
##
## $M
## [1] 7627 14200 9218 6930 6575 12573 9813 10026 13104 12324 9590 7389
## [13] 7477 10956 12302 9901 6408 9613 16939 12823 3586 13294 10076 9432
## [25] 4987 7924 5475 12773 9011 7927 13894 11333 8331 13189 10763 9993
## [37] 3849 15363 11315 2293 13798 7287 22048 3984 11514 14420 1254 12775
## [49] 15043 10624 11213 10521 17520 2461 13190 11503 13218 8779 13483 14547
## [61] 4019 8394 3150 21253 12791 7195 9644 4142 9159 17113 4157 4590
## [73] 11387 10034 13930 2603 2809 7461 12993 12018 4823 7160 9653 5041
## [85] 12054 15342 6235 10353 9797 15725 9196 5839 17732 2609 17391 20502
Con esto realizado se proccedió con la prueba de cociente de varianzas, haciendo uso del comando “var.test”:
# Realizar el test de cociente de varianzas
resultado_test <- var.test(phvsm$M, phvsm$F)
resultado_test ##
## F test to compare two variances
##
## data: phvsm$M and phvsm$F
## F = 1.0889, num df = 95, denom df = 23, p-value = 0.8505
## alternative hypothesis: true ratio of variances is not equal to 1
## 95 percent confidence interval:
## 0.5285622 1.9664312
## sample estimates:
## ratio of variances
## 1.088887
Donde se obtuvo:
data: phvsm\(M and phvsm\)F F = 1.0889, num df = 95, denom df = 23, p-value = 0.8505 alternative hypothesis: true ratio of variances is not equal to 1 95 percent confidence interval: 0.5285622 1.9664312 sample estimates: ratio of variances 1.088887
Lo que significa que las varianzas son diferentes.
Luego, se calcularon los cuantiles y los valores del intervalo de confianza con un nivel de confianza del 95%:
# Obtener el intervalo de confianza para el cociente de varianzas
alpha <- 0.05 # Nivel de confianza del 95%
df1 <- resultado_test$parameter[1]
df2 <- resultado_test$parameter[2]
# Calcular los cuantiles de la distribución F
q1 <- qf(alpha / 2, df1, df2, lower.tail = FALSE)
q2 <- qf(1 - alpha / 2, df1, df2, lower.tail = FALSE)
# Calcular el intervalo de confianza
intervalo_confianza <- c(1 / q2, 1 / q1)Obteniendo como resultado:
## [1] "Intervalo de confianza para el cociente de varianzas:"
## [1] 1.805909 0.485415
Realizando la gráfica de la distribución con su respectivo intervalo de confianza:
library(ggplot2)
plot(c(1, 1), intervalo_confianza, type = "n", ylim = c(0, max(intervalo_confianza) + 0.1),
main = "Intervalo de Confianza para el Cociente de Varianzas",
xlab = "Cociente de Varianzas", ylab = "Intervalo de Confianza")
arrows(1, intervalo_confianza[1], 1, intervalo_confianza[2], angle = 90, code = 3, length = 0.1,col="blue")Primero es necesario calcular la igualdad de las varianzas por medio del comando “var.test”
# Realizar la prueba de igualdad de varianzas
resultado_prueba <- var.test(phvsm$M, phvsm$F)
# Mostrar los resultados
print("Resultado de la prueba de igualdad de varianzas:")## [1] "Resultado de la prueba de igualdad de varianzas:"
##
## F test to compare two variances
##
## data: phvsm$M and phvsm$F
## F = 1.0889, num df = 95, denom df = 23, p-value = 0.8505
## alternative hypothesis: true ratio of variances is not equal to 1
## 95 percent confidence interval:
## 0.5285622 1.9664312
## sample estimates:
## ratio of variances
## 1.088887
De donde se obtuvo el siguiente resultado: F test to compare two variances
data: phvsm\(M and phvsm\)F F = 1.0889, num df = 95, denom df = 23, p-value = 0.8505 alternative hypothesis: true ratio of variances is not equal to 1 95 percent confidence interval: 0.5285622 1.9664312 sample estimates: ratio of variances 1.088887
Y de este resultado de la prueba se extrajo el valor p, necesario para realizar la prueba de hipótesis:
Y estableciendo un nivel de confianza del 95% se realizó la prueba de hipótesis
alfa <- 0.05
# Realizar la prueba de hipótesis
if (valor_p < alfa) {
print("Rechazamos la hipótesis nula: hay evidencia de diferencias significativas en las varianzas.")
} else {
print("No podemos rechazar la hipótesis nula: no hay suficiente evidencia para decir que las varianzas son diferentes.")
}## [1] "No podemos rechazar la hipótesis nula: no hay suficiente evidencia para decir que las varianzas son diferentes."
De donde se puede concluir entonces que las varianzas para la compra realizada por hombres y de las compras realizadas por mujeres son diferentea.
De igual forma se realizó una gráfica de caja y bigotes en donde se expresa el valor de la varianza de las compras hechas por hombres y mujeres de mejor manera:
library(ggplot2)
# Convertir el dataframe al formato largo para ggplot
df_long <- tidyr::gather(df, key = "Gender", value = "Purchase")
# Crear la gráfica utilizando ggplot2
ggplot(df_long, aes(x = Gender, y = Purchase, fill = Gender)) +
geom_boxplot() +
labs(title = "Boxplot de Varianza por Género", x = "Género", y = "Valor de las compras") +
scale_fill_manual(values = c("blue", "red")) +
theme_minimal()Con esto conluimos el análisis realizado a los datos y algunas de las variables de la muestra de la base de datos “Blackfriday”
Muchas Gracias