library(dslabs)
library(dplyr)
##
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(viridisLite)
library(viridis)
library(RColorBrewer)
library(ggplot2)
data("polls_us_election_2016")
#Mis variasbles son:
#Columna Tipo de variable Categoría #State Cualitativa Nominal #Startdate Cuantitativa Continua #Enddate Cuantitativa Continua #Pollster Cualitativa Nominal #Grade Cualitativa Ordinal #Samplesize Cuantitativa Discreta #Population Cualitativa Nominal Rawpoll_clinton Cuantitativa Continua Rawpoll_trump Cuantitativa Continua #Rawpoll_johnson Cuantitativa Continua #Rawpoll_mcmullin Cuantitativa Continua #Adjpoll_clinton Cuantitativa Continua #Adjpoll_trump Cuantitativa Continua #Adjpoll_johnson Cuantitativa Continua #Adjpoll_mcmullin Cuantitativa Continua
data_election <- polls_us_election_2016 %>%
group_by(state) %>%
summarise(
encuestas_por_estado = n(),
promedio_tamano_muestra = mean(samplesize, na.rm = TRUE),
promedio_apoyo_clinton = mean(adjpoll_clinton, na.rm = TRUE),
promedio_apoyo_trump = mean(adjpoll_trump, na.rm = TRUE),
promedio_apoyo_johnson = mean(adjpoll_johnson, na.rm = TRUE),
promedio_apoyo_mcmullin = mean(adjpoll_mcmullin, na.rm = TRUE)
)
data_election
## # A tibble: 57 × 7
## state encuestas_por_estado promedio_tamano_mues…¹ promedio_apoyo_clinton
## <fct> <int> <dbl> <dbl>
## 1 Alabama 43 631. 33.2
## 2 Alaska 38 322. 35.6
## 3 Arizona 79 876. 42.2
## 4 Arkansas 45 399. 36.4
## 5 California 71 1453. 55.3
## 6 Colorado 80 906. 43.8
## 7 Connectic… 44 550. 48.9
## 8 Delaware 40 251. 46.2
## 9 District … 26 201. 71.8
## 10 Florida 148 1120. 45.7
## # ℹ 47 more rows
## # ℹ abbreviated name: ¹promedio_tamano_muestra
## # ℹ 3 more variables: promedio_apoyo_trump <dbl>, promedio_apoyo_johnson <dbl>,
## # promedio_apoyo_mcmullin <dbl>
top_15_states <- data_election %>%
arrange(desc(encuestas_por_estado)) %>%
slice(1:15)
top_15_states
## # A tibble: 15 × 7
## state encuestas_por_estado promedio_tamano_mues…¹ promedio_apoyo_clinton
## <fct> <int> <dbl> <dbl>
## 1 U.S. 1106 2305. 44.9
## 2 Florida 148 1120. 45.7
## 3 North Car… 125 908. 44.9
## 4 Pennsylva… 125 1025. 46.1
## 5 Ohio 115 1004. 42.8
## 6 New Hamps… 112 538. 45.4
## 7 Nevada 93 641. 43.3
## 8 Virginia 91 1019 46.4
## 9 Michigan 86 981. 44.0
## 10 Colorado 80 906. 43.8
## 11 Georgia 80 980. 41.6
## 12 Wisconsin 80 938. 45.3
## 13 Arizona 79 876. 42.2
## 14 California 71 1453. 55.3
## 15 Iowa 70 749. 41.3
## # ℹ abbreviated name: ¹promedio_tamano_muestra
## # ℹ 3 more variables: promedio_apoyo_trump <dbl>, promedio_apoyo_johnson <dbl>,
## # promedio_apoyo_mcmullin <dbl>
#Diagramas de barras
top_15_random <- top_15_states[sample(1:nrow(top_15_states)), ]
top_15_random$encuestas_por_estado %>%
barplot(main = "Diagrama de barras - Encuestas por Estado (Aleatorio)",
ylab = "Número de encuestas",
xlab = "Estados",
names.arg = top_15_random$state,
ylim = c(0, 1150),
col = viridis(15),
las = 2,
cex.names = 0.7) %>%
{text(x = ., y = top_15_random$encuestas_por_estado + 29,
labels = top_15_random$encuestas_por_estado,
cex = 0.8,
col = "black")}
top_15_states$encuestas_por_estado %>%
barplot(main = "Diagrama de barras - Encuestas por Estado", ylab = "Número de encuestas", xlab = "Estados",names.arg = top_15_states$state, ylim = c(0, 1150),col = viridis(15),las = 2, cex.names = 0.7) %>%
{text(x = ., y = top_15_states$encuestas_por_estado + 29,
labels = top_15_states$encuestas_por_estado,
cex = 0.8,
col = "black")}
#Interpretación #El gráfico visualiza el número de encuestas por estado, destacando la cantidad exacta de encuestas realizadas en los 15 estados principales. Los valores encima de cada barra hacen que la comparación sea más clara, mostrando qué estados han sido más focalizados en las encuestas electorales. Tambien se puede evidemcias que la mayores encuestas a los candidatos fueron en U.S.
#Diagrama Circular
top_15_states %>%
{tabla <- .; porcentajes <- round(tabla$encuestas_por_estado * 100 / sum(tabla$encuestas_por_estado), 1)
pie(tabla$encuestas_por_estado,
labels = paste(porcentajes, "%"),
col = rocket(15),
main = "Porcentaje de encuestas por estado",
border = "white",
cex = 0.8)
legend("bottomleft",
legend = paste(tabla$state, porcentajes, "%"),
fill = rocket(15),
cex = 0.6,
border = "white")
}
#Interpretación #Analizando el grafico se puede evidenciar que es mas entendible que el de barrasya que este nos saca un porcentaje en el que podemos lograr ver con esactitud un numero calificativo.
#Creacion de tabla con los 15 mejores promedios de apoyo a clinton
top_15_clinton <- data_election %>%
arrange(desc(promedio_apoyo_clinton)) %>%
slice(1:15)
hist(top_15_clinton$promedio_apoyo_clinton,
main = "Histograma del Apoyo Promedio a Clinton (Top)",
xlim = c(40, 100),
ylim = c(0, 6),
col = brewer.pal(3, "Pastel1"),
xlab = "Porcentaje de Apoyo a Clinton",
ylab = "Frecuencia",
labels = TRUE,
border = brewer.pal(3, "Pastel1"),
breaks = seq(40, 100, by = 5),
cex.axis = 0.9,
cex.lab = 1.0)
mean_clinton <- mean(top_15_clinton$promedio_apoyo_clinton, na.rm = TRUE)
median_clinton <- median(top_15_clinton$promedio_apoyo_clinton, na.rm = TRUE)
abline(v = mean_clinton, col = "red", lwd = 2, lty = 2)
abline(v = median_clinton, col = "blue", lwd = 2, lty = 2)
legend("topright", legend = c(paste("Media: ", round(mean_clinton, 2)),
paste("Mediana: ", round(median_clinton, 2))),
col = c("red", "blue"), lwd = 2, lty = 2, cex = 0.8)
#Interpretación #En este Histograma podemos interpretar que los 15
estados con mejor apoyo a Clinton en la elecciones de 2016 se concentran
la mayoría de los promedios entre el 50% y 55%. Tanto la media como la
mediana están cerca del 53%, lo que indica una distribución
relativamente simétrica. Aunque Clinton tuvo un apoyo sólido en estos
estados, no hay valores extremadamente altos, lo que sugiere que la
contienda fue competitiva incluso en sus mejores territorios.
#Histograma
top_15_trump <- data_election %>%
arrange(desc(promedio_apoyo_trump)) %>%
slice(1:15)
hist(top_15_trump$promedio_apoyo_trump,
breaks = "Sturges",
main = "Histograma del Apoyo Promedio a Trump",
xlab = "Porcentaje de Apoyo a Trump",
ylab = "Frecuencia",
col = brewer.pal(10, "Set1"),
border = brewer.pal(10, "Set1"),
ylim = c(0, 6),
labels = TRUE,
cex.axis = 0.9,
cex.lab = 1.0)
## Warning in brewer.pal(10, "Set1"): n too large, allowed maximum for palette Set1 is 9
## Returning the palette you asked for with that many colors
## Warning in brewer.pal(10, "Set1"): n too large, allowed maximum for palette Set1 is 9
## Returning the palette you asked for with that many colors
#Interpretación #con la grafica de Trump muestra que en los 15 estados
con mayor respaldo, la mayoría tiene un apoyo concentrado entre el 50% y
el 60%, lo que indica un respaldo fuerte y consistente.La de Clinton,
por otro lado, muestra una distribución más dispersa, con estados
variando entre el 40% y el 60%, reflejando mayor variabilidad en su
apoyo.La diferencia principial es El apoyo a Trump es más concentrado y
uniforme, mientras que el de Clinton es más variable entre los
estados.
#Grafico de dencidad
hist(top_15_trump$promedio_apoyo_trump,
breaks = "Sturges",
probability = TRUE,
main = "Histograma y Densidad del Apoyo Promedio a Trump",
xlab = "Porcentaje de Apoyo a Trump",
ylab = "Densidad",
col = brewer.pal(4, "Set1"),
border = brewer.pal(4, "Set1"),
ylim = c(0, 0.15),
labels = FALSE,
cex.axis = 0.9,
cex.lab = 1.0)
lines(density(top_15_trump$promedio_apoyo_trump), col = "black", lwd = 2)
#Interpretación #El histograma con la línea de densidad muestra que en
los 15 estados con mayor respaldo a Trump, la mayoría concentra su apoyo
entre el 50% y el 55%. La línea de densidad refuerza que este es el
rango más común, indicando un respaldo sólido en estos estados.
#Creacion de Boxplot
boxplot(top_15_clinton$promedio_apoyo_clinton,
col = "Blue",
ylab = "Porcentaje de Apoyo a Clinton",
outline = FALSE,
main = "Boxplot del Apoyo a Clinton",
ylim = c(40, 60))
points(mean(top_15_clinton$promedio_apoyo_clinton), col = "black", pch = 20)
text(paste(" ", round(mean(top_15_clinton$promedio_apoyo_clinton), 2)),
x = 1.1,
y = mean(top_15_clinton$promedio_apoyo_clinton),
pos = 4)
#Interpretación #El boxplot muestra que el apoyo promedio a Clinton en
los 15 estados con mayor respaldo se concentra entre el 45% y el 55%. La
mediana está cerca del 50%, y no hay valores atípicos significativos, lo
que indica una distribución relativamente uniforme del apoyo.
tabla_state <- table(polls_us_election_2016$state)
barplot(tabla_state,
main = "Gráfico de barras por Estado",
ylab = "Frecuencia",
xlab = "Estado",
ylim = c(0, max(tabla_state) + 10),
col = viridis(length(tabla_state)))
barplot(tabla_state,
main = "Gráfico de barras por Estado",
ylab = "Frecuencia",
xlab = "Estado",
ylim = c(0, max(tabla_state) + 10),
col = brewer.pal(8, "Dark2"))
# Interpretacion: #El gráfico de barras muestra la frecuencia con la que
se realizaron encuestas en cada estado. Las barras más altas indican los
estados donde se realizaron más encuestas, mientras que las barras más
bajas representan estados con menor cantidad de encuestas. Este tipo de
gráfico es útil para visualizar la distribución geográfica de las
encuestas y determinar si ciertos estados fueron encuestados más
frecuentemente, lo cual podría reflejar su importancia en las elecciones
o las prioridades de los encuestadores.
#Creacion de tabla
tabla_pollster <- table(polls_us_election_2016$pollster)
porcentajes_pollster <- round(tabla_pollster * 100 / sum(tabla_pollster), 1)
tabla_pollster <- table(polls_us_election_2016$pollster)
# Ordenar de mayor a menor
tabla_pollster <- sort(tabla_pollster, decreasing = TRUE)
# Agrupar encuestadoras con pocos datos en "Otros"
n_top <- 5 # Número de encuestadoras principales a mostrar
pollster_top <- c(tabla_pollster[1:n_top],
"Otros" = sum(tabla_pollster[(n_top+1):length(tabla_pollster)]))
# Calcular porcentajes
porcentajes_pollster <- round(pollster_top * 100 / sum(pollster_top), 1)
# Diagrama circular mejorado utilizando viridis
pie(porcentajes_pollster,
labels = paste(names(porcentajes_pollster), ": ", porcentajes_pollster, "%", sep=""),
main = "Distribución de Encuestadoras (Top 5 + Otros)",
col = viridis(length(porcentajes_pollster)),
border = "white")
# Leyenda fuera del gráfico para mayor claridad
legend("bottomright", legend = names(porcentajes_pollster),
fill = viridis(length(porcentajes_pollster)),
cex = 0.7, border = "white")
#Interpretación #El gráfico circular revela que la mayor parte de las
encuestas en las elecciones de 2016 fue realizada por un reducido grupo
de encuestadoras principales, mientras que las encuestadoras más
pequeñas se agrupan bajo la categoría “Otros”. Esto sugiere que el
mercado de encuestas políticas estuvo dominado por unas pocas
organizaciones grandes, con menor participación del resto.
hist(polls_us_election_2016$samplesize,
breaks = "Sturges",
main = "Histograma del Tamaño de Muestra",
xlab = "Tamaño de Muestra",
col = viridis(10),
border = viridis(10),
ylim = c(0, 30))
abline(v = median(polls_us_election_2016$samplesize, na.rm = TRUE), col = "blue", lwd = 2, lty = 2)
abline(v = mean(polls_us_election_2016$samplesize, na.rm = TRUE), col = "red", lwd = 2)
legend("topright", legend = c("Media", "Mediana"), col = c("red", "blue"), lty = 2, lwd = 2)
#Interpretación
#El histograma muestra la distribución del tamaño de las muestras utilizadas en las encuestas. La mayoría de los encuestadores utilizaron muestras de un tamaño relativamente similar, lo que se refleja en la concentración de barras en el centro del gráfico. Las líneas verticales muestran la media (línea roja) y la mediana (línea azul) del tamaño de muestra, lo cual permite observar si la distribución es simétrica o si está sesgada. Si la media y la mediana están bastante cerca, la distribución es aproximadamente simétrica, de lo contrario podría estar sesgada hacia tamaños de muestra más grandes o más pequeños.
hist(polls_us_election_2016$rawpoll_clinton,
breaks = "Sturges",
probability = TRUE,
main = "Histograma con Densidad - Votos para Clinton",
xlab = "Votos para Clinton",
col = viridis(10),
border = viridis(10),
ylim = c(0, 0.09))
lines(density(polls_us_election_2016$rawpoll_clinton, na.rm = TRUE), col = "black", lwd = 2)
# Interpretación:
#El histograma con densidad muestra la distribución del porcentaje de votos que recibió Hillary Clinton según los resultados de las encuestas. Las barras indican cuántas encuestas reportaron ciertos rangos de porcentajes de apoyo para Clinton. La curva de densidad negra superpuesta proporciona una representación suave de esta distribución. La curva más alta en ciertos intervalos sugiere que la mayoría de las encuestas reportaron un nivel de apoyo específico para Clinton.
# boxplot para la variable rawpoll_clinton
boxplot(polls_us_election_2016$rawpoll_clinton,
col = "blue",
ylab = "Porcentaje de Votos para Clinton",
outline = FALSE,
main = "Boxplot de Votos para Clinton",
ylim = c(0, 100))
# Adicionar la media al gráfico
mean_clinton <- mean(polls_us_election_2016$rawpoll_clinton, na.rm = TRUE)
points(mean_clinton, col = "black", pch = 20)
# Agregar el valor de la media al lado del punto
text(paste("Media:", round(mean_clinton, 2)), x = 1.1, y = mean_clinton, pos = 4)
#Interpretación
#En la grafica de Bokplot estamos trabajando con el procentaje de votos por Clinton en donde vemos que teneos un rango de