# Instalar el paquete 'readr' si no está instalado
if (!requireNamespace("readr", quietly = TRUE)) {
  install.packages("readr")
}

# Cargar el paquete 'readr'
library(readr)

# URL del conjunto de datos
url_dataset <- "https://raw.githubusercontent.com/selva86/datasets/master/Advertising.csv"

# Importar el conjunto de datos desde internet
advertising_data <- read_csv(url_dataset)
## New names:
## Rows: 200 Columns: 5
## ── Column specification
## ──────────────────────────────────────────────────────── Delimiter: "," dbl
## (5): ...1, TV, radio, newspaper, sales
## ℹ Use `spec()` to retrieve the full column specification for this data. ℹ
## Specify the column types or set `show_col_types = FALSE` to quiet this message.
## • `` -> `...1`
# Ver las primeras filas del conjunto de datos
View(advertising_data)


## 1- COMPROBAR LOS SUPUESTO DE NORMALIDAD Y HOMOGENEIDAD

# Realizar la prueba de normalidad para cada variable
resultados_shapiro <- sapply(advertising_data, function(x) shapiro.test(x)$p.value)

# Verificar los resultados
resultados_shapiro
##         ...1           TV        radio    newspaper        sales 
## 5.392061e-06 1.692691e-06 5.197568e-07 1.127322e-07 1.682856e-03
# Realizar la prueba de homogeneidad de varianzas para todas las variables
resultados_bartlett <- bartlett.test(advertising_data[, c("TV", "radio", "newspaper")], advertising_data$sales)

# Verificar los resultados
resultados_bartlett
## 
##  Bartlett test of homogeneity of variances
## 
## data:  advertising_data[, c("TV", "radio", "newspaper")]
## Bartlett's K-squared = 640.85, df = 2, p-value < 2.2e-16
##INTERPRETACIÓN: Para comprobar la normalidad de las variables se utilizó la función de Shapiro-Wilk, la cual arrojó como resultado que las variables no siguen una distribución normal. Por lo tanto, se sugiere que los métodos de prueba no paramétricos pueden ser más eficientes para el análisis. Para el supuesto de homogeneidad de varianzas se utilizó la prueba de Bartlett y se encontró que las varianzas no son homogéneas, por lo que puede ser necesario usar métodos que permitan la heterogeneidad de las varianzas en el análisis.

## 2- APLICAR MODELO PARAMETRICO O NO PARAMETRICO

#Aplicar el test de Kruskal-Wallis

kruskal.test(advertising_data$TV, advertising_data$radio, advertising_data$newspaper)
## 
##  Kruskal-Wallis rank sum test
## 
## data:  advertising_data$TV and advertising_data$radio
## Kruskal-Wallis chi-squared = 170.01, df = 166, p-value = 0.3994
#INTERPRETACIÓN: Gracias a estos resultado podemos concluir que no hay suficiente evidencia para rechazar la hipótesis nula. Lo que nos lleva a decir que no hay evidencia para que concluyamos que el gasto en publicidad en tv, radio y periódicos afecta significativamente en las ventas. 

## 3- CREAR UN DATAFRAME CON DOS COLUMNAS, "NOMBRE_VARIABLE" Y "TIPO_VARIABLE"

# Crear el dataframe vacío
variables_df <- data.frame(Nombre_Variable = character(0), Tipo_Variable = character(0), stringsAsFactors = FALSE)

# Agregar las variables y sus tipos al dataframe
variables_df <- rbind(variables_df, c("...1", "Numérica Discreta"))
variables_df <- rbind(variables_df, c("TV", "Numérica Continua"))
variables_df <- rbind(variables_df, c("radio", "Numérica Continua"))
variables_df <- rbind(variables_df, c("newspaper", "Numérica Continua"))
variables_df <- rbind(variables_df, c("sales", "Numérica Continua"))

# Mostrar el dataframe
variables_df
##     X....1. X.Numérica.Discreta.
## 1      ...1    Numérica Discreta
## 2        TV    Numérica Continua
## 3     radio    Numérica Continua
## 4 newspaper    Numérica Continua
## 5     sales    Numérica Continua
## 4- APLICAR UN ANÁLISIS DE CORRELACIÓN O ASOCIACIÓN

# Aplica la prueba de correlación de Pearson
cor(advertising_data)
##                  ...1         TV       radio   newspaper       sales
## ...1       1.00000000 0.01771469 -0.11068044 -0.15494414 -0.05161625
## TV         0.01771469 1.00000000  0.05480866  0.05664787  0.78222442
## radio     -0.11068044 0.05480866  1.00000000  0.35410375  0.57622257
## newspaper -0.15494414 0.05664787  0.35410375  1.00000000  0.22829903
## sales     -0.05161625 0.78222442  0.57622257  0.22829903  1.00000000
#INTERPRETACIÓN: La correlación nos da una idea de cómo se relacionan las diferentes variables en el conjunto de datos, lo que nos puede ayudar a entender mejor los factores que influyen en las ventas de un producto. Si prestamos atención a los resultados obtenidos, podemos darnos cuenta de que la variable Sales tiene una correlación fuerte con las variables TV y Radio. Esto nos sugiere que al invertir en publicidad en televisión y en radio, obtendremos mayores ventas. Por otro lado, la correlación entre Sales y Newspaper es relativamente débil (0.228), lo que sugiere que el gasto en publicidad en periódicos no está tan fuertemente asociado con las ventas como lo están los gastos en televisión y radio.


## 5- GRAFIQUEN LAS ASOCIACIONES O CORRELACIONES QUE ENCONTRARON E INTERPRETAR 

# Calcula la matriz de correlación
cor_matrix <- cor(advertising_data)

# Crea un heatmap de la matriz de correlación
heatmap(cor_matrix, col = colorRampPalette(c("blue", "white", "red"))(100), symm = TRUE)

#INTERPRETACIÓN: El mapa de calor es una herramienta visual útil para analizar la correlación entre las diferentes variables del conjunto de datos y nos permite identificar patrones y tendencias de manera más intuitiva, lo que podemos observar en este grafico es que las variables TV y Radio tienen una correlación positiva fuerte, lo que se refleja en la zona de color rojo brillante en la intersección de estas dos variables. En cambio, la correlación entre Newspaper y Sales es relativamente débil, como se puede apreciar en la zona de color azul claro en la intersección de estas dos variables.