# 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 ANALISIS DE CORRELACION O ASOCIACION, SEGUN CORRESPONDA

cor(advertising_data[, c("TV", "radio", "newspaper")], method = "spearman")
##                   TV      radio  newspaper
## TV        1.00000000 0.05612339 0.05083973
## radio     0.05612339 1.00000000 0.31697949
## newspaper 0.05083973 0.31697949 1.00000000
## 5- GRAFIQUEN LAS ASOCIACIONES O CORRELACIONES QUE ENCONTRARON E INTERPRETEN

# Grafico 1
library(ggplot2)
library(reshape2)

# Obtener la matriz de correlación con el método de Spearman
corr <- cor(advertising_data[, c("TV", "radio", "newspaper")], method = "spearman")

# Convertir la matriz en un formato de datos largo (long format)
corr_long <- melt(corr)

# Crear un heatmap
ggplot(corr_long, aes(Var1, Var2, fill = value)) +
  geom_tile() +
  scale_fill_gradient(low = "blue", high = "red") +
  labs(title = "Mapa de calor de las correlaciones de las variables",
       x = "Variables",
       y = "Variables") +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

# Grafico 2

library(corrplot)
## corrplot 0.92 loaded
# Calculamos la matriz de correlación
corr <- cor(advertising_data[, c("TV", "radio", "newspaper")], method = "spearman")

# Creamos un gráfico de matriz de correlación
corrplot(corr, type = "upper", method = "color", 
         col = colorRampPalette(c("#313695", "#4575b4", "#74add1", "#abd9e9", "#e0f3f8"))(100),
         addCoef.col = "black", tl.col = "black", tl.srt = 45)

# INTERPRETACION: Este gráfico muestra la relación entre el gasto en publicidad en TV, radio y periódicos, y cómo se relacionan entre sí en términos de la fuerza y dirección de su asociación. Se puede observar que la relación entre TV y radio es la más fuerte y positiva, lo que significa que si se invierte más en publicidad en TV, también es más probable que se invierta más en publicidad en radio. La relación entre TV y periódicos es moderadamente fuerte, mientras que la relación entre radio y periódicos es débil. En general, el gráfico sugiere que la publicidad en TV y radio están más relacionadas entre sí que con la publicidad en periódicos.