“Relación entre la Densidad Poblacional y el Tamaño de la Población en las Tendencias Electorales: Un Análisis de Regresión Simple”

Introduccion

El análisis sobre la relación entre la concentración poblacional y la preferencia de voto en Estados Unidos puede beneficiarse al considerar no solo la cantidad absoluta de población sino también la densidad poblacional y la urbanización. Estudios previos han evidenciado que las zonas urbanas, que tienden a tener mayor concentración poblacional, presentan una mayor propensión al voto demócrata, mientras que las zonas rurales, con menor densidad y dispersión poblacional, tienden a favorecer al partido republicano (Bafumi & Shapiro, 2012; Rodden, 2019).

Además, es importante considerar la heterogeneidad demográfica que se concentra en las áreas urbanas, como la diversidad racial y socioeconómica, la educación y la edad, que también influyen en la preferencia electoral (Frey, 2018). Esta complejidad es un factor mediador que debe tenerse en cuenta en análisis posteriores.

Podemos por tanto vamos a realizar un análisis sobre: la tendencia de la composicion demografica sobre las preferencias de voto en los Estados Unidos.

Presentación del objetivo de la investigacion

Nuestro objetivo en esta practica es ofrecer algunos análisis acerca de las elecciones de Estados Unidos del 2020. El análisis de las Elecciones de Estados Unidos en el 2020 esta destinado a profundizar nuestros conocimientos sobre las tendencias socio-demográficas en el comportamiento electoral, especialmente, si los patrones de asentamiento o el tamaño de la población esta relacionada con un tipo de voto especifico.

De manera que, nuestra pregunta inicial de investigación es:

1.¿Existe alguna relación entre la estructura demográfica y la preferencia de voto (demócrata, republicano u otros) en los Estados Unidos?“/”

Operativamente esta pregunta es muy compleja porque atiende a consideraciones del tipo de la edad, sexo, tamaño, densidad, composición racial, entre otras variables. Sin embargo, en esta trabajo nos vamos a enfocar especialmente en responder acerca de los patrones de concentración o tamaño población con respecto a la preferencia del voto.

Para responder esta pregunta es necesario que respondamos a cuestiones acerca de la distribución del voto entre los Estados y pueblos, a conocer la relación entre la densidad de población de esos estados, así como el tamaño de la población. De esta manera, podemos derivar la pregunta inicial de investigación en una hipótesis subyacente: la concentración de la población suele generar una tendencia de voto demócrata.

Para contrastar esta hipótesis debemos responder algunas cuestiones relacionadas a la proporción de la población en los pueblos y la proporción de los votos en los estados. Principalmente, buscaremos conocer si la tendencia del voto de los Demócratas o Republicanos están relacionados con la densidad de población, por un lado, y con la población total, por el otro. Para ello, haremos un análisis de correlación lineal simple considerando las variables de votación por partido las variables demográficas en los Estados y en los pueblos.

Para operativizar estos cálculos tecnológicamente ejecutaremos los siguientes procedimientos:

  1. Almacenamiento de los datos

En el caso del almacenamiento de los datos, tenemos la ventaja de contar con un conjunto de datos de Repositorio de datos abiertos Kaggle. Este conjunto de datos seleccionado sobre las elecciones de Estados Unidos en 2020 cuenta con los registros de una serie de variables geográficas, demográficas, socio-educativas y económicas relacionadas con la tendencias electorales. Al contar con el software R mediante Rstudio, el almacenamiento sera una ejecución posterior de la carga de datos, en una variable manipularle para las siguientes actividades (Pre procesamiento y procesamiento de datos).

  1. Pre procesamiento de los datos

En el pre-procesamiento de los datos dividiremos la actividad en tareas complementarias. Las tareas complementarias son: análisis de la estructura de los datos, tanto como están organizados, como la composición de los datos.

  1. Procesamiento de los datos

Para el procesamiento de datos vamos a realizar una serie de cálculos orientados al análisis de correlación final entre nuestra variable dependiente (Las variaciones del voto demócrata o republicano), con respecto a la población o densidad población.

De manera que buscaremos conocer el porcentaje de votos obtenidos en las variables sobre la votación entre los demócratas o la votación entre los republicanos. Para calcular el porcentaje con la proporción adecuada aplicaremos la siguiente formula:

\[ \text{Porcentaje} = \left( \frac{\text{Parte}}{\text{Total}} \right) \times 100 \]

A su vez, como nos interesa también conocer la distribución de las votaciones de los demócratas y republicanos con respecto a la densidad de población o la cantidad poblacional por Estados, y no unicamente por los pueblos (asumiendo que el conjunto de datos ofrece los registros por los pueblos) calcularemos la densidad poblacional. Este indicador muestra cuántas personas hay por unidad de área en un lugar determinado. Es una medida de concentración de población.

La ecuación se calcula como:

\[\text{Densidad Poblacional} = \frac{\text{Población Total}}{\text{Área Total}}\]

Donde: * Población Total: El número total de habitantes en un área específica. * Área Total: La superficie de esa área, generalmente expresada en kilómetros cuadrados (\(\text{km}^2\)) o millas cuadradas (\(\text{mi}^2\)).

Luego del tratamiento de estas variables, podremos aplicar nuestro analisis principal: la regresion lineal simple. La ecuación fundamental de la regresión lineal simple busca modelar la relación lineal entre dos variables, ajustando una línea recta a los datos. Nos permite predecir el valor de una variable (dependiente) basándonos en el valor de otra (independiente). Se expresa de la siguiente manera:

\[\hat{y} = \beta_0 + \beta_1 x\]

Donde: * \(\hat{y}\) es el valor predicho de la variable dependiente. * \(x\) es el valor de la variable independiente. * \(\beta_0\) es la intercepción (o intercepto), que representa el valor de \(\hat{y}\) cuando \(x\) es igual a cero. * \(\beta_1\) es la pendiente (o coeficiente de regresión), que indica cuánto cambia \(\hat{y}\) por cada unidad de cambio en \(x\).

Interpretación de la Pendiente (\(\beta_1\)): * Si \(\beta_1\) es positivo (\(+\)), indica una relación positiva: a medida que \(x\) aumenta, \(\hat{y}\) también tiende a aumentar. * Si \(\beta_1\) es negativo (\(-\)), indica una relación negativa: a medida que \(x\) aumenta, \(\hat{y}\) tiende a disminuir.

  1. Visualización de datos

Nuestro enfoque de visualización de datos se baso en las exploración de los resultados obtenidos de acuerdo a nuestros objetivos de investigación propuesto. Dejando a un lado los gráficos exploratorios, procedimos a gráficas nuestros análisis descriptivos con histogramas para conocer la distribución de los votos demócratas y republicanos, al cual añadimos un diagrama de caja de bigotes. El histograma también sirvió para conocer la distribución de la densidad poblacional y la población total.

Esos mismos gráficos fueron utiles para conocer los valores de distribución de la densidad poblacional la población total, y los votos de los partidos por Estado.

En el caso de la regresión lineal, para observar la tendencia negativa o positiva de las votaciones de los partidos Demócrata y Republicano, presentamos un gráfico de punto.

Asimismo, es importante mencionar la configuración de los Chunks para la adecuación visual de los gráficos de la siguiente manera:

Opción Descripción
fig.width = 7 Ancho del gráfico en pulgadas (más ancho que el valor por defecto).
fig.height = 5 Alto del gráfico en pulgadas.
out.width = '70%' Escala el ancho del gráfico al 70% del ancho del texto del documento.
out.height = '400px' Controla la altura visual del gráfico en píxeles.
fig.align = 'center' Centra el gráfico horizontalmente en la página.
dev = 'png' Genera el gráfico en formato PNG (útil para exportación o control visual).
fig.show = 'hold' Muestra todos los gráficos juntos en un solo bloque si hay varios en el chunk.
  1. Conclusiones

Posteriormente a los análisis hechos buscaremos obtener una conclusión acerca de la relación entre la densidad de la población y la cantidad de población en los Pueblos y los Estados con respecto a las tendencias de votación en las elecciones del 2020. Nuestros procedimientos buscaran conocer si efectivamente nuestra hipótesis se confirma: *la existencia de una relación entre la concentración urbana y la dispersión urbana con respecto al tipo de votación.

Primera parte: Almacenamiento y Preprocesamiento de los datos

La primera tarea es cargar el conjunto de datos, para que posteriormente se puedan almacenar en un objeto en R.

library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(ggplot2)
library(readr)
# --- Opción 1 (Recomendada): Usar barras inclinadas normales (/) ---
# Esta es la forma más segura y portable en R.
ruta_zip_corregida <- "C:/Users/user/Downloads/archive (3).zip"
nombre_csv_dentro_zip <- "US_Election_dataset_v1.csv"

datos_directo <- read.csv(unz(ruta_zip_corregida, nombre_csv_dentro_zip), header = TRUE, sep = ",")

# --- Ahora sí, muestra los datos ---
print("\nDatos leídos con Lectura directa (corregido):")
## [1] "\nDatos leídos con Lectura directa (corregido):"
head(datos_directo)

Exploración de los datos y el data frame {#Exploración de los datos}

A continuación presentaremos una breve exploración del conjunto de datos. La exploración del conjunto de datos se caracterizara por algunas tareas básicas. Las tareas básicas de la exploración de los datos se dividirá en: 1) La exploración de la estructura del data frame y 2) la exploración de la estructura de la información.

La exploración de la estructura del data frame

En la exploración de la estructura del data frame empezaremos por conocer las características principales la composicion del data frame. Esta exploración busca conocer las dimensiones del data frame (el numero de las variables y el numero de los registros y observaciones), el nombre de las variables, la presencia de registros duplicados, identificacion de las claves primarias, y el tipo de objeto de las variables, el tipo de almacenamiento interno de las variables,

## Exploración de la estructura del data frame

print("### Dimensiones del Data Frame\n")
## [1] "### Dimensiones del Data Frame\n"
cat("El data frame tiene", nrow(datos_directo), "filas (registros u observaciones) y", ncol(datos_directo), "columnas (variables).\n\n")
## El data frame tiene 3143 filas (registros u observaciones) y 35 columnas (variables).
cat("### Nombres de las Variables\n")
## ### Nombres de las Variables
# Muestra los nombres de todas las columnas del data frame
print(names(datos_directo))
##  [1] "X"                                                                        
##  [2] "county"                                                                   
##  [3] "state"                                                                    
##  [4] "X2020.Democrat.vote.raw"                                                  
##  [5] "X2020.Democrat.vote.."                                                    
##  [6] "X2020.Republican.vote.raw"                                                
##  [7] "X2020.Republican.vote.."                                                  
##  [8] "X2020.other.vote.raw"                                                     
##  [9] "X2020.other.vote.."                                                       
## [10] "Population.with.less.than.9th.grade.education"                            
## [11] "Population.with.9th.to.12th.grade.education..no.diploma"                  
## [12] "High.School.graduate.and.equivalent"                                      
## [13] "Some.College.No.Degree"                                                   
## [14] "Associates.Degree"                                                        
## [15] "Bachelors.Degree"                                                         
## [16] "Graduate.or.professional.degree"                                          
## [17] "Gini.Index"                                                               
## [18] "Median.income..dollars."                                                  
## [19] "Mean.income..dollars."                                                    
## [20] "Area.in.square.Km"                                                        
## [21] "Density.per.square.km"                                                    
## [22] "Total.Population"                                                         
## [23] "Hispanic.or.Latino.percentage"                                            
## [24] "NH.White.percentage"                                                      
## [25] "NH.Black.percentage"                                                      
## [26] "NH.American.Indian.and.Alaska.Native.percentage"                          
## [27] "NH.Asian.percentage"                                                      
## [28] "NH.Native.Hawaiian.and.Other.Pacific.Islander.percentage"                 
## [29] "NH.Some.Other.Race.percentage"                                            
## [30] "NH.Two.or.More.Races.percentage"                                          
## [31] "Percentage.engaged.in.Management..business..science..and.arts.occupations"
## [32] "Percentage.engaged.in.Service.Occupations"                                
## [33] "Percentage.engaged.in.Sales.and.Office"                                   
## [34] "Percentage.engaged.in.Resources.and.Construction"                         
## [35] "Percentage.engaged.in.Transportation"
cat("\n")
cat("### Tipos de Datos de Cada Variable\n")
## ### Tipos de Datos de Cada Variable
# Muestra la estructura concisa del data frame, incluyendo el tipo de datos de cada columna
# 'str()' es excelente para obtener un resumen rápido y completo
sapply(datos_directo, class)
##                                                                         X 
##                                                               "character" 
##                                                                    county 
##                                                               "character" 
##                                                                     state 
##                                                               "character" 
##                                                   X2020.Democrat.vote.raw 
##                                                                 "numeric" 
##                                                     X2020.Democrat.vote.. 
##                                                                 "numeric" 
##                                                 X2020.Republican.vote.raw 
##                                                                 "integer" 
##                                                   X2020.Republican.vote.. 
##                                                                 "numeric" 
##                                                      X2020.other.vote.raw 
##                                                                 "integer" 
##                                                        X2020.other.vote.. 
##                                                                 "numeric" 
##                             Population.with.less.than.9th.grade.education 
##                                                               "character" 
##                   Population.with.9th.to.12th.grade.education..no.diploma 
##                                                               "character" 
##                                       High.School.graduate.and.equivalent 
##                                                               "character" 
##                                                    Some.College.No.Degree 
##                                                               "character" 
##                                                         Associates.Degree 
##                                                               "character" 
##                                                          Bachelors.Degree 
##                                                               "character" 
##                                           Graduate.or.professional.degree 
##                                                               "character" 
##                                                                Gini.Index 
##                                                                 "numeric" 
##                                                   Median.income..dollars. 
##                                                               "character" 
##                                                     Mean.income..dollars. 
##                                                               "character" 
##                                                         Area.in.square.Km 
##                                                                 "numeric" 
##                                                     Density.per.square.km 
##                                                                 "numeric" 
##                                                          Total.Population 
##                                                                 "integer" 
##                                             Hispanic.or.Latino.percentage 
##                                                                 "numeric" 
##                                                       NH.White.percentage 
##                                                                 "numeric" 
##                                                       NH.Black.percentage 
##                                                                 "numeric" 
##                           NH.American.Indian.and.Alaska.Native.percentage 
##                                                                 "numeric" 
##                                                       NH.Asian.percentage 
##                                                                 "numeric" 
##                  NH.Native.Hawaiian.and.Other.Pacific.Islander.percentage 
##                                                                 "numeric" 
##                                             NH.Some.Other.Race.percentage 
##                                                                 "numeric" 
##                                           NH.Two.or.More.Races.percentage 
##                                                                 "numeric" 
## Percentage.engaged.in.Management..business..science..and.arts.occupations 
##                                                                 "numeric" 
##                                 Percentage.engaged.in.Service.Occupations 
##                                                                 "numeric" 
##                                    Percentage.engaged.in.Sales.and.Office 
##                                                                 "numeric" 
##                          Percentage.engaged.in.Resources.and.Construction 
##                                                                 "numeric" 
##                                      Percentage.engaged.in.Transportation 
##                                                                 "numeric"
cat("\n")
cat("### Tipos de almacenamiento de Cada Variable\n")
## ### Tipos de almacenamiento de Cada Variable
sapply(datos_directo, typeof)
##                                                                         X 
##                                                               "character" 
##                                                                    county 
##                                                               "character" 
##                                                                     state 
##                                                               "character" 
##                                                   X2020.Democrat.vote.raw 
##                                                                  "double" 
##                                                     X2020.Democrat.vote.. 
##                                                                  "double" 
##                                                 X2020.Republican.vote.raw 
##                                                                 "integer" 
##                                                   X2020.Republican.vote.. 
##                                                                  "double" 
##                                                      X2020.other.vote.raw 
##                                                                 "integer" 
##                                                        X2020.other.vote.. 
##                                                                  "double" 
##                             Population.with.less.than.9th.grade.education 
##                                                               "character" 
##                   Population.with.9th.to.12th.grade.education..no.diploma 
##                                                               "character" 
##                                       High.School.graduate.and.equivalent 
##                                                               "character" 
##                                                    Some.College.No.Degree 
##                                                               "character" 
##                                                         Associates.Degree 
##                                                               "character" 
##                                                          Bachelors.Degree 
##                                                               "character" 
##                                           Graduate.or.professional.degree 
##                                                               "character" 
##                                                                Gini.Index 
##                                                                  "double" 
##                                                   Median.income..dollars. 
##                                                               "character" 
##                                                     Mean.income..dollars. 
##                                                               "character" 
##                                                         Area.in.square.Km 
##                                                                  "double" 
##                                                     Density.per.square.km 
##                                                                  "double" 
##                                                          Total.Population 
##                                                                 "integer" 
##                                             Hispanic.or.Latino.percentage 
##                                                                  "double" 
##                                                       NH.White.percentage 
##                                                                  "double" 
##                                                       NH.Black.percentage 
##                                                                  "double" 
##                           NH.American.Indian.and.Alaska.Native.percentage 
##                                                                  "double" 
##                                                       NH.Asian.percentage 
##                                                                  "double" 
##                  NH.Native.Hawaiian.and.Other.Pacific.Islander.percentage 
##                                                                  "double" 
##                                             NH.Some.Other.Race.percentage 
##                                                                  "double" 
##                                           NH.Two.or.More.Races.percentage 
##                                                                  "double" 
## Percentage.engaged.in.Management..business..science..and.arts.occupations 
##                                                                  "double" 
##                                 Percentage.engaged.in.Service.Occupations 
##                                                                  "double" 
##                                    Percentage.engaged.in.Sales.and.Office 
##                                                                  "double" 
##                          Percentage.engaged.in.Resources.and.Construction 
##                                                                  "double" 
##                                      Percentage.engaged.in.Transportation 
##                                                                  "double"
cat("### Vista Previa de las Primeras Filas\n")
## ### Vista Previa de las Primeras Filas
# Muestra las primeras 6 filas del data frame. Puedes cambiar 'n=10' para ver más.
print(head(datos_directo))
##                         X         county   state X2020.Democrat.vote.raw
## 1 Autauga County, Alabama Autauga County Alabama                    7503
## 2 Baldwin County, Alabama Baldwin County Alabama                   24578
## 3 Barbour County, Alabama Barbour County Alabama                    4816
## 4    Bibb County, Alabama    Bibb County Alabama                    1986
## 5  Blount County, Alabama  Blount County Alabama                    2640
## 6 Bullock County, Alabama Bullock County Alabama                    3446
##   X2020.Democrat.vote.. X2020.Republican.vote.raw X2020.Republican.vote..
## 1                 27.02                     19838                   71.44
## 2                 22.41                     83544                   76.17
## 3                 45.79                      5622                   53.45
## 4                 20.70                      7525                   78.43
## 5                  9.57                     24711                   89.57
## 6                 74.70                      1146                   24.84
##   X2020.other.vote.raw X2020.other.vote..
## 1                  429               1.54
## 2                 1557               1.42
## 3                   80               0.76
## 4                   84               0.88
## 5                  237               0.86
## 6                   21               0.46
##   Population.with.less.than.9th.grade.education
## 1                                         1.70%
## 2                                         2.00%
## 3                                         7.30%
## 4                                         6.40%
## 5                                         7.10%
## 6                                         9.90%
##   Population.with.9th.to.12th.grade.education..no.diploma
## 1                                                   7.90%
## 2                                                   6.40%
## 3                                                  16.20%
## 4                                                  14.70%
## 5                                                  11.10%
## 6                                                  16.70%
##   High.School.graduate.and.equivalent Some.College.No.Degree Associates.Degree
## 1                              31.10%                 21.00%             8.70%
## 2                              27.80%                 21.70%             9.60%
## 3                              36.80%                 19.90%             7.90%
## 4                              40.90%                 19.10%             8.00%
## 5                              35.30%                 20.70%            11.00%
## 6                              41.30%                 19.50%             3.20%
##   Bachelors.Degree Graduate.or.professional.degree Gini.Index
## 1           16.70%                          12.80%     0.4541
## 2           20.00%                          12.50%     0.4648
## 3            6.60%                           5.30%     0.5098
## 4            6.60%                           4.30%     0.4553
## 5            9.40%                           5.30%     0.4475
## 6            6.90%                           2.50%     0.5058
##   Median.income..dollars. Mean.income..dollars. Area.in.square.Km
## 1                  68,315                90,372           1539.63
## 2                  71,039                96,027           4117.73
## 3                  39,712                60,128           2292.16
## 4                  50,669                65,131           1612.19
## 5                  57,440                75,954           1670.26
## 6                  36,136                52,269           1613.08
##   Density.per.square.km Total.Population Hispanic.or.Latino.percentage
## 1                 38.17            58805                          3.60
## 2                 56.69           231767                          5.47
## 3                 10.85            25223                          5.99
## 4                 13.80            22293                          3.32
## 5                 35.37            59134                          9.76
## 6                  6.40            10357                          4.86
##   NH.White.percentage NH.Black.percentage
## 1               70.71               19.30
## 2               80.47                7.77
## 3               43.95               46.98
## 4               73.75               19.69
## 5               84.15                1.40
## 6               22.02               71.33
##   NH.American.Indian.and.Alaska.Native.percentage NH.Asian.percentage
## 1                                            0.31                1.48
## 2                                            0.56                0.88
## 3                                            0.23                0.41
## 4                                            0.17                0.12
## 5                                            0.32                0.29
## 6                                            0.01                0.09
##   NH.Native.Hawaiian.and.Other.Pacific.Islander.percentage
## 1                                                     0.04
## 2                                                     0.05
## 3                                                     0.00
## 4                                                     0.04
## 5                                                     0.02
## 6                                                     0.07
##   NH.Some.Other.Race.percentage NH.Two.or.More.Races.percentage
## 1                          0.31                            4.23
## 2                          0.33                            4.47
## 3                          0.25                            2.19
## 4                          0.21                            2.69
## 5                          0.17                            3.89
## 6                          0.30                            1.32
##   Percentage.engaged.in.Management..business..science..and.arts.occupations
## 1                                                                     36.39
## 2                                                                     35.62
## 3                                                                     27.73
## 4                                                                     22.22
## 5                                                                     26.75
## 6                                                                     20.73
##   Percentage.engaged.in.Service.Occupations
## 1                                     14.24
## 2                                     17.14
## 3                                     20.16
## 4                                     15.32
## 5                                     12.98
## 6                                     18.19
##   Percentage.engaged.in.Sales.and.Office
## 1                                  22.02
## 2                                  24.20
## 3                                  19.49
## 4                                  20.57
## 5                                  22.73
## 6                                   9.83
##   Percentage.engaged.in.Resources.and.Construction
## 1                                             9.99
## 2                                             9.91
## 3                                            12.53
## 4                                            16.43
## 5                                            15.81
## 6                                            16.88
##   Percentage.engaged.in.Transportation
## 1                                17.36
## 2                                13.13
## 3                                20.09
## 4                                25.47
## 5                                21.73
## 6                                34.38
cat("\n")
cat("### Vista Previa de las Últimas Filas\n")
## ### Vista Previa de las Últimas Filas
# Muestra las últimas 6 filas del data frame. Puedes cambiar 'n=10' para ver más.
print(tail(datos_directo))
##                               X            county   state
## 3138   Sublette County, Wyoming   Sublette County Wyoming
## 3139 Sweetwater County, Wyoming Sweetwater County Wyoming
## 3140      Teton County, Wyoming      Teton County Wyoming
## 3141      Uinta County, Wyoming      Uinta County Wyoming
## 3142   Washakie County, Wyoming   Washakie County Wyoming
## 3143     Weston County, Wyoming     Weston County Wyoming
##      X2020.Democrat.vote.raw X2020.Democrat.vote.. X2020.Republican.vote.raw
## 3138                     882                 17.75                      3957
## 3139                    3823                 23.03                     12229
## 3140                    9848                 67.10                      4341
## 3141                    1591                 16.92                      7496
## 3142                     651                 16.23                      3245
## 3143                     360                 10.16                      3107
##      X2020.Republican.vote.. X2020.other.vote.raw X2020.other.vote..
## 3138                   79.62                  131               2.64
## 3139                   73.66                  551               3.32
## 3140                   29.58                  488               3.32
## 3141                   79.73                  315               3.35
## 3142                   80.88                  116               2.89
## 3143                   87.72                   75               2.12
##      Population.with.less.than.9th.grade.education
## 3138                                         0.40%
## 3139                                         2.40%
## 3140                                         2.40%
## 3141                                         2.10%
## 3142                                         1.40%
## 3143                                         2.00%
##      Population.with.9th.to.12th.grade.education..no.diploma
## 3138                                                   3.70%
## 3139                                                   4.60%
## 3140                                                   1.70%
## 3141                                                   3.50%
## 3142                                                   3.90%
## 3143                                                   6.90%
##      High.School.graduate.and.equivalent Some.College.No.Degree
## 3138                              28.00%                 31.20%
## 3139                              32.70%                 25.80%
## 3140                              16.70%                 16.70%
## 3141                              36.30%                 27.40%
## 3142                              28.50%                 34.60%
## 3143                              36.90%                 23.10%
##      Associates.Degree Bachelors.Degree Graduate.or.professional.degree
## 3138            11.10%           19.30%                           6.30%
## 3139            14.60%           12.40%                           7.60%
## 3140             2.30%           38.90%                          21.40%
## 3141            11.50%           13.50%                           5.60%
## 3142            10.60%           13.30%                           7.90%
## 3143            13.50%           12.80%                           4.80%
##      Gini.Index Median.income..dollars. Mean.income..dollars. Area.in.square.Km
## 3138     0.5244                  85,960              1,26,919          12655.93
## 3139     0.4433                  79,375                99,929          27005.75
## 3140     0.5431                1,08,279              1,82,050          10351.78
## 3141     0.3615                  78,164                85,497           5391.63
## 3142     0.3882                  61,875                74,491           5798.15
## 3143     0.4784                  71,800                92,279           6210.80
##      Density.per.square.km Total.Population Hispanic.or.Latino.percentage
## 3138                  0.70             8728                          7.29
## 3139                  1.56            42272                         16.46
## 3140                  2.26            23331                         14.12
## 3141                  3.81            20450                          9.71
## 3142                  1.33             7685                         13.92
## 3143                  1.11             6838                          4.31
##      NH.White.percentage NH.Black.percentage
## 3138               87.66                0.19
## 3139               76.56                0.83
## 3140               80.38                0.21
## 3141               85.30                0.24
## 3142               81.56                0.16
## 3143               89.30                0.41
##      NH.American.Indian.and.Alaska.Native.percentage NH.Asian.percentage
## 3138                                            0.50                0.53
## 3139                                            0.61                0.67
## 3140                                            0.28                1.32
## 3141                                            0.60                0.53
## 3142                                            0.59                0.43
## 3143                                            1.35                0.38
##      NH.Native.Hawaiian.and.Other.Pacific.Islander.percentage
## 3138                                                     0.11
## 3139                                                     0.14
## 3140                                                     0.01
## 3141                                                     0.13
## 3142                                                     0.01
## 3143                                                     0.13
##      NH.Some.Other.Race.percentage NH.Two.or.More.Races.percentage
## 3138                          0.52                            3.20
## 3139                          0.35                            4.38
## 3140                          0.42                            3.24
## 3141                          0.37                            3.11
## 3142                          0.56                            2.77
## 3143                          0.50                            3.63
##      Percentage.engaged.in.Management..business..science..and.arts.occupations
## 3138                                                                     32.59
## 3139                                                                     30.80
## 3140                                                                     46.14
## 3141                                                                     31.19
## 3142                                                                     34.84
## 3143                                                                     32.32
##      Percentage.engaged.in.Service.Occupations
## 3138                                     11.09
## 3139                                     15.47
## 3140                                     23.75
## 3141                                     17.86
## 3142                                     16.97
## 3143                                     16.34
##      Percentage.engaged.in.Sales.and.Office
## 3138                                  28.36
## 3139                                  19.47
## 3140                                  17.91
## 3141                                  20.48
## 3142                                  18.43
## 3143                                  10.74
##      Percentage.engaged.in.Resources.and.Construction
## 3138                                            15.77
## 3139                                            20.34
## 3140                                             5.81
## 3141                                            17.38
## 3142                                            14.84
## 3143                                            20.40
##      Percentage.engaged.in.Transportation
## 3138                                12.19
## 3139                                13.92
## 3140                                 6.40
## 3141                                13.09
## 3142                                14.92
## 3143                                20.20
cat("\n")
cat("### Detección de Filas Duplicadas\n")
## ### Detección de Filas Duplicadas
# Comprueba si hay filas completamente duplicadas en el data frame
num_duplicados <- sum(duplicated(datos_directo))
if (num_duplicados == 0) {
  cat("No se encontraron filas completamente duplicadas en el data frame.\n")
} else {
  cat("Se encontraron", num_duplicados, "filas completamente duplicadas.\n")
  # Opcional: Para ver las filas duplicadas (mostrará la segunda y siguientes ocurrencias)
  # print(datos[duplicated(datos), ])
}
## No se encontraron filas completamente duplicadas en el data frame.
# Suponiendo que tu dataframe se llama 'datos'

cat("### Análisis de Unicidad de Valores por Columna\n")
## ### Análisis de Unicidad de Valores por Columna
cat("Se verifica si cada columna, de forma individual, contiene solo valores únicos y, por lo tanto, podría funcionar como un identificador único o clave primaria.\n\n")
## Se verifica si cada columna, de forma individual, contiene solo valores únicos y, por lo tanto, podría funcionar como un identificador único o clave primaria.
# Bucle para iterar sobre cada columna del dataframe
for (col_name in names(datos_directo)) {
  # Calcula el número de valores únicos en la columna actual
  num_valores_unicos <- length(unique(datos_directo[[col_name]]))
  # Obtiene el número total de filas del dataframe
  num_filas_df <- nrow(datos_directo)

  cat(paste0("--- Columna: '", col_name, "' ---\n"))
  cat(paste0("  - Tipo de datos: ", class(datos_directo[[col_name]]), "\n"))
  cat(paste0("  - Número de valores únicos: ", num_valores_unicos, "\n"))
  cat(paste0("  - Número total de filas: ", num_filas_df, "\n"))

  if (num_valores_unicos == num_filas_df) {
    cat(paste0("  -> ¡Esta columna contiene solo valores únicos! Podría ser un **identificador único o clave primaria**.\n"))
  } else {
    cat(paste0("  -> Esta columna NO contiene solo valores únicos (faltan ", num_filas_df - num_valores_unicos, " valores si fuera única).\n"))
  }
  cat("\n") # Salto de línea para separar la salida de cada columna
}
## --- Columna: 'X' ---
##   - Tipo de datos: character
##   - Número de valores únicos: 3143
##   - Número total de filas: 3143
##   -> ¡Esta columna contiene solo valores únicos! Podría ser un **identificador único o clave primaria**.
## 
## --- Columna: 'county' ---
##   - Tipo de datos: character
##   - Número de valores únicos: 1878
##   - Número total de filas: 3143
##   -> Esta columna NO contiene solo valores únicos (faltan 1265 valores si fuera única).
## 
## --- Columna: 'state' ---
##   - Tipo de datos: character
##   - Número de valores únicos: 51
##   - Número total de filas: 3143
##   -> Esta columna NO contiene solo valores únicos (faltan 3092 valores si fuera única).
## 
## --- Columna: 'X2020.Democrat.vote.raw' ---
##   - Tipo de datos: numeric
##   - Número de valores únicos: 2751
##   - Número total de filas: 3143
##   -> Esta columna NO contiene solo valores únicos (faltan 392 valores si fuera única).
## 
## --- Columna: 'X2020.Democrat.vote..' ---
##   - Tipo de datos: numeric
##   - Número de valores únicos: 2349
##   - Número total de filas: 3143
##   -> Esta columna NO contiene solo valores únicos (faltan 794 valores si fuera única).
## 
## --- Columna: 'X2020.Republican.vote.raw' ---
##   - Tipo de datos: integer
##   - Número de valores únicos: 2952
##   - Número total de filas: 3143
##   -> Esta columna NO contiene solo valores únicos (faltan 191 valores si fuera única).
## 
## --- Columna: 'X2020.Republican.vote..' ---
##   - Tipo de datos: numeric
##   - Número de valores únicos: 2377
##   - Número total de filas: 3143
##   -> Esta columna NO contiene solo valores únicos (faltan 766 valores si fuera única).
## 
## --- Columna: 'X2020.other.vote.raw' ---
##   - Tipo de datos: integer
##   - Número de valores únicos: 1235
##   - Número total de filas: 3143
##   -> Esta columna NO contiene solo valores únicos (faltan 1908 valores si fuera única).
## 
## --- Columna: 'X2020.other.vote..' ---
##   - Tipo de datos: numeric
##   - Número de valores únicos: 406
##   - Número total de filas: 3143
##   -> Esta columna NO contiene solo valores únicos (faltan 2737 valores si fuera única).
## 
## --- Columna: 'Population.with.less.than.9th.grade.education' ---
##   - Tipo de datos: character
##   - Número de valores únicos: 177
##   - Número total de filas: 3143
##   -> Esta columna NO contiene solo valores únicos (faltan 2966 valores si fuera única).
## 
## --- Columna: 'Population.with.9th.to.12th.grade.education..no.diploma' ---
##   - Tipo de datos: character
##   - Número de valores únicos: 181
##   - Número total de filas: 3143
##   -> Esta columna NO contiene solo valores únicos (faltan 2962 valores si fuera única).
## 
## --- Columna: 'High.School.graduate.and.equivalent' ---
##   - Tipo de datos: character
##   - Número de valores únicos: 381
##   - Número total de filas: 3143
##   -> Esta columna NO contiene solo valores únicos (faltan 2762 valores si fuera única).
## 
## --- Columna: 'Some.College.No.Degree' ---
##   - Tipo de datos: character
##   - Número de valores únicos: 228
##   - Número total de filas: 3143
##   -> Esta columna NO contiene solo valores únicos (faltan 2915 valores si fuera única).
## 
## --- Columna: 'Associates.Degree' ---
##   - Tipo de datos: character
##   - Número de valores únicos: 182
##   - Número total de filas: 3143
##   -> Esta columna NO contiene solo valores únicos (faltan 2961 valores si fuera única).
## 
## --- Columna: 'Bachelors.Degree' ---
##   - Tipo de datos: character
##   - Número de valores únicos: 303
##   - Número total de filas: 3143
##   -> Esta columna NO contiene solo valores únicos (faltan 2840 valores si fuera única).
## 
## --- Columna: 'Graduate.or.professional.degree' ---
##   - Tipo de datos: character
##   - Número de valores únicos: 258
##   - Número total de filas: 3143
##   -> Esta columna NO contiene solo valores únicos (faltan 2885 valores si fuera única).
## 
## --- Columna: 'Gini.Index' ---
##   - Tipo de datos: numeric
##   - Número de valores únicos: 1286
##   - Número total de filas: 3143
##   -> Esta columna NO contiene solo valores únicos (faltan 1857 valores si fuera única).
## 
## --- Columna: 'Median.income..dollars.' ---
##   - Tipo de datos: character
##   - Número de valores únicos: 3020
##   - Número total de filas: 3143
##   -> Esta columna NO contiene solo valores únicos (faltan 123 valores si fuera única).
## 
## --- Columna: 'Mean.income..dollars.' ---
##   - Tipo de datos: character
##   - Número de valores únicos: 3063
##   - Número total de filas: 3143
##   -> Esta columna NO contiene solo valores únicos (faltan 80 valores si fuera única).
## 
## --- Columna: 'Area.in.square.Km' ---
##   - Tipo de datos: numeric
##   - Número de valores únicos: 3124
##   - Número total de filas: 3143
##   -> Esta columna NO contiene solo valores únicos (faltan 19 valores si fuera única).
## 
## --- Columna: 'Density.per.square.km' ---
##   - Tipo de datos: numeric
##   - Número de valores únicos: 2427
##   - Número total de filas: 3143
##   -> Esta columna NO contiene solo valores únicos (faltan 716 valores si fuera única).
## 
## --- Columna: 'Total.Population' ---
##   - Tipo de datos: integer
##   - Número de valores únicos: 3085
##   - Número total de filas: 3143
##   -> Esta columna NO contiene solo valores únicos (faltan 58 valores si fuera única).
## 
## --- Columna: 'Hispanic.or.Latino.percentage' ---
##   - Tipo de datos: numeric
##   - Número de valores únicos: 1499
##   - Número total de filas: 3143
##   -> Esta columna NO contiene solo valores únicos (faltan 1644 valores si fuera única).
## 
## --- Columna: 'NH.White.percentage' ---
##   - Tipo de datos: numeric
##   - Número de valores únicos: 2329
##   - Número total de filas: 3143
##   -> Esta columna NO contiene solo valores únicos (faltan 814 valores si fuera única).
## 
## --- Columna: 'NH.Black.percentage' ---
##   - Tipo de datos: numeric
##   - Número de valores únicos: 1358
##   - Número total de filas: 3143
##   -> Esta columna NO contiene solo valores únicos (faltan 1785 valores si fuera única).
## 
## --- Columna: 'NH.American.Indian.and.Alaska.Native.percentage' ---
##   - Tipo de datos: numeric
##   - Número de valores únicos: 471
##   - Número total de filas: 3143
##   -> Esta columna NO contiene solo valores únicos (faltan 2672 valores si fuera única).
## 
## --- Columna: 'NH.Asian.percentage' ---
##   - Tipo de datos: numeric
##   - Número de valores únicos: 553
##   - Número total de filas: 3143
##   -> Esta columna NO contiene solo valores únicos (faltan 2590 valores si fuera única).
## 
## --- Columna: 'NH.Native.Hawaiian.and.Other.Pacific.Islander.percentage' ---
##   - Tipo de datos: numeric
##   - Número de valores únicos: 114
##   - Número total de filas: 3143
##   -> Esta columna NO contiene solo valores únicos (faltan 3029 valores si fuera única).
## 
## --- Columna: 'NH.Some.Other.Race.percentage' ---
##   - Tipo de datos: numeric
##   - Número de valores únicos: 119
##   - Número total de filas: 3143
##   -> Esta columna NO contiene solo valores únicos (faltan 3024 valores si fuera única).
## 
## --- Columna: 'NH.Two.or.More.Races.percentage' ---
##   - Tipo de datos: numeric
##   - Número de valores únicos: 637
##   - Número total de filas: 3143
##   -> Esta columna NO contiene solo valores únicos (faltan 2506 valores si fuera única).
## 
## --- Columna: 'Percentage.engaged.in.Management..business..science..and.arts.occupations' ---
##   - Tipo de datos: numeric
##   - Número de valores únicos: 1800
##   - Número total de filas: 3143
##   -> Esta columna NO contiene solo valores únicos (faltan 1343 valores si fuera única).
## 
## --- Columna: 'Percentage.engaged.in.Service.Occupations' ---
##   - Tipo de datos: numeric
##   - Número de valores únicos: 1242
##   - Número total de filas: 3143
##   -> Esta columna NO contiene solo valores únicos (faltan 1901 valores si fuera única).
## 
## --- Columna: 'Percentage.engaged.in.Sales.and.Office' ---
##   - Tipo de datos: numeric
##   - Número de valores únicos: 1083
##   - Número total de filas: 3143
##   -> Esta columna NO contiene solo valores únicos (faltan 2060 valores si fuera única).
## 
## --- Columna: 'Percentage.engaged.in.Resources.and.Construction' ---
##   - Tipo de datos: numeric
##   - Número de valores únicos: 1327
##   - Número total de filas: 3143
##   -> Esta columna NO contiene solo valores únicos (faltan 1816 valores si fuera única).
## 
## --- Columna: 'Percentage.engaged.in.Transportation' ---
##   - Tipo de datos: numeric
##   - Número de valores únicos: 1675
##   - Número total de filas: 3143
##   -> Esta columna NO contiene solo valores únicos (faltan 1468 valores si fuera única).

Resultados de la exploracion de la estructura del data frame

La exploración inicial nos dejo ver que el data frame tiene 3143 filas (registros u observaciones) y 35 columnas (variables). La mayoría de las variables tenían espacios y fueron leídas con un punto entre cada palabra.

Las variables se refieren en general a datos sobre las elecciones de estados unidos según el condado, el estado, el votos por partido, características educativas, económicas (excepto la mediana o media del ingreso), demográficas y socio-labrarles.

De acuerdo a la exploración del tipo de objeto las variables sobre las unidades político administrativas y educativas eran de tipo carácter, el resto numéricas. En cuanto al tipo de almacenamiento, las de tipo carácter, eran carácter, y las numéricas doble, excepto por unas de elecciones y el total de la población que eran integer.

No se encontraron filas completamente duplicadas en el data frame. Es importante, porque en primera instancia nos va a permitir iniciar las operaciones entre las variables sin preocupación, y ademas, verificando la legitimidad de las claves primarias.

Según nuestro análisis sobre la existencia de los valores únicos, la única de las variables que mantienen su unicidad es la variable X. Previamente observamos que la variable X puede estar referida al nombre de las unidades administrativas. Por tanto podemos asegurar con este análisis que el data set se refiere a las características electorales, partido-políticas, demográficas, económicas, socio-educativas, socio-laborales de unas elecciones en el 2020.

Por lo pronto, el pre-procesamiento requiere que cambiemos el nombre de las variables para su mejor manipulación. Asimismo, siendo coherentes con los objetivos de la investigación planteados, después de esta exploración podremos hacer una selección de las variables de estudio. En términos técnicos, esto permitirá reducir las tareas de pre-procesamiento, y asimismo, las exigencias de computo.

En esta sección se presenta la selección del conjunto de datos Elecciones con las siguientes variables escogidas:

  • Nombre de la entidad de residencia: variable carácter
  • Nombre de la entidad estatal: variable carácter
  • Voto demócrata: variable numérica
  • Voto republicano: variable numérica
  • Voto otros: variable numérica
  • Total de población: variable numérica
  • Superficie en KM2: variable numérica
  • Densidad de población: variable numérica

En la siguiente tabla se definen las variables:

Variable Descripción
Pueblo variable sobre la unidad política administrativa mínima
Estado variable sobre la unidad política administrativa máxima
Voto Demócrata variable sobre la cantidad de votos
Voto Republicano variable sobre la cantidad de votos
Voto otros variable sobre la cantidad de votos
Total de población variable sobre la cantidad de personas
Densidad de población variable sobre la cantidad de personas por km2

Para ello empezaremos por renombrar las columnas que nos interesan, y luego, hacer una selección de esas variables en un nuevo data frame, optimizando su futura manipulación.

Reduccion de la dimensionalidad y transformacion de las referencias

# install.packages("dplyr")
library(dplyr)

# Usando 'datos_elecciones_usa'

# Rename multiple columns clearly:
datos_elecciones_usa <- datos_directo %>%
  rename(
    `Pueblo` = X,
    `Estado` = state,
    `Voto democrata` = X2020.Democrat.vote.raw,
    `Voto republicano` = X2020.Republican.vote.raw,
    `Voto otros` = X2020.other.vote.raw,
    `Total de poblacion` = Total.Population, 
     `Superficie_KM2` = `Area.in.square.Km`,
    `Densidad de poblacion` = Density.per.square.km # Corrected: used `=` instead of `:` and backticks for new name
  )

cat("Nombres de columnas cambiados con dplyr::rename(). Nuevos nombres:\n")
## Nombres de columnas cambiados con dplyr::rename(). Nuevos nombres:
print(names(datos_elecciones_usa))
##  [1] "Pueblo"                                                                   
##  [2] "county"                                                                   
##  [3] "Estado"                                                                   
##  [4] "Voto democrata"                                                           
##  [5] "X2020.Democrat.vote.."                                                    
##  [6] "Voto republicano"                                                         
##  [7] "X2020.Republican.vote.."                                                  
##  [8] "Voto otros"                                                               
##  [9] "X2020.other.vote.."                                                       
## [10] "Population.with.less.than.9th.grade.education"                            
## [11] "Population.with.9th.to.12th.grade.education..no.diploma"                  
## [12] "High.School.graduate.and.equivalent"                                      
## [13] "Some.College.No.Degree"                                                   
## [14] "Associates.Degree"                                                        
## [15] "Bachelors.Degree"                                                         
## [16] "Graduate.or.professional.degree"                                          
## [17] "Gini.Index"                                                               
## [18] "Median.income..dollars."                                                  
## [19] "Mean.income..dollars."                                                    
## [20] "Superficie_KM2"                                                           
## [21] "Densidad de poblacion"                                                    
## [22] "Total de poblacion"                                                       
## [23] "Hispanic.or.Latino.percentage"                                            
## [24] "NH.White.percentage"                                                      
## [25] "NH.Black.percentage"                                                      
## [26] "NH.American.Indian.and.Alaska.Native.percentage"                          
## [27] "NH.Asian.percentage"                                                      
## [28] "NH.Native.Hawaiian.and.Other.Pacific.Islander.percentage"                 
## [29] "NH.Some.Other.Race.percentage"                                            
## [30] "NH.Two.or.More.Races.percentage"                                          
## [31] "Percentage.engaged.in.Management..business..science..and.arts.occupations"
## [32] "Percentage.engaged.in.Service.Occupations"                                
## [33] "Percentage.engaged.in.Sales.and.Office"                                   
## [34] "Percentage.engaged.in.Resources.and.Construction"                         
## [35] "Percentage.engaged.in.Transportation"
cat("\n")

Luego del cambio de los nombres de las variables podemos realizar la reducción de las dimensiones variables de nuestro conjunto de datos, buscando mantener las categorías de interés.

# Asegúrate de que el paquete 'dplyr' esté cargado
library(dplyr)

# Asumiendo que 'datos_elecciones_usa' es tu dataframe con los nombres de columna ya cambiados.
# Si aún no lo has ejecutado, usa el bloque de código anterior para renombrar las columnas primero.

# Crea un nuevo dataframe seleccionando solo las columnas deseadas por sus NUEVOS NOMBRES.
datos_elecciones_recortado <- datos_elecciones_usa %>%
  select(
    `Pueblo`,
    `Estado`,
    `Voto democrata`,
    `Voto republicano`,
    `Voto otros`,
    `Total de poblacion`,
    `Superficie_KM2`,
    `Densidad de poblacion`
    
  )

cat("¡Listo! Se ha creado un nuevo dataframe 'datos_elecciones_recortado' con solo las columnas especificadas.\n")
## ¡Listo! Se ha creado un nuevo dataframe 'datos_elecciones_recortado' con solo las columnas especificadas.
cat("Nuevas dimensiones del dataframe recortado:\n")
## Nuevas dimensiones del dataframe recortado:
print(dim(datos_elecciones_recortado))
## [1] 3143    8
cat("Nombres de las columnas en el nuevo dataframe:\n")
## Nombres de las columnas en el nuevo dataframe:
print(names(datos_elecciones_recortado))
## [1] "Pueblo"                "Estado"                "Voto democrata"       
## [4] "Voto republicano"      "Voto otros"            "Total de poblacion"   
## [7] "Superficie_KM2"        "Densidad de poblacion"
print(head(datos_elecciones_recortado))
##                    Pueblo  Estado Voto democrata Voto republicano Voto otros
## 1 Autauga County, Alabama Alabama           7503            19838        429
## 2 Baldwin County, Alabama Alabama          24578            83544       1557
## 3 Barbour County, Alabama Alabama           4816             5622         80
## 4    Bibb County, Alabama Alabama           1986             7525         84
## 5  Blount County, Alabama Alabama           2640            24711        237
## 6 Bullock County, Alabama Alabama           3446             1146         21
##   Total de poblacion Superficie_KM2 Densidad de poblacion
## 1              58805        1539.63                 38.17
## 2             231767        4117.73                 56.69
## 3              25223        2292.16                 10.85
## 4              22293        1612.19                 13.80
## 5              59134        1670.26                 35.37
## 6              10357        1613.08                  6.40
# Opcional: Ver las primeras filas del nuevo dataframe
# print(head(datos_elecciones_recortado))

Luego de la simplificación del data frame podremos hacer una exploración del comportamiento inicial de los datos. En este sentido, nos interesa conocer la posible presencia de valores nulos, la distribución de las variables numéricas, y, la cardinalidad de las variables carácter.

La exploración de la estructura de la composicion de los datos

## ### Valores Faltantes (Missing Values) por Columna
## named numeric(0)
## No se encontraron valores faltantes (NA) en ninguna columna.

No se encontraron valores faltantes (NA) en ninguna columna. De manera que, es preciso empezar a realizar una revisión de la distribución de las variables numéricas, y posteriormente, la cardinalidad de las variables categorías.

library(dplyr)
library(tidyr)
library(ggplot2)

cat("### Histograma Combinado con Bins Ajustados (Intento 2)\n")
## ### Histograma Combinado con Bins Ajustados (Intento 2)
datos_numericos_solo <- datos_elecciones_recortado %>%
  select_if(is.numeric)

datos_largos_numericos <- datos_numericos_solo %>%
  pivot_longer(
    cols = everything(),
    names_to = "Variable",
    values_to = "Valor"
  )

p_combinado_mejorado_2 <- ggplot(datos_largos_numericos, aes(x = Valor)) +
  geom_histogram(aes(y = after_stat(density)),
                 fill = "steelblue",
                 color = "black",
                 bins = 100, # <--- Intentamos con 100 bins
                 alpha = 0.7) +
  geom_density(color = "red", linetype = "dashed", linewidth = 0.8) +
  facet_wrap(~ Variable, scales = "free", ncol = 3) +
  labs(
    title = "Distribución de Variables Numéricas (Más Bins)",
    x = "Valor de la Variable",
    y = "Densidad"
  ) +
  theme_minimal() +
  theme(
    plot.title = element_text(hjust = 0.5, face = "bold"),
    strip.text = element_text(size = 8, face = "bold"),
    axis.text.x = element_text(size = 7),
    axis.text.y = element_text(size = 7)
  )

print(p_combinado_mejorado_2)

La distribución de las variables densidad de población, poblacion, votos por partido exponen un comportamiento asimétrico que corresponde a la cantidad de habitantes en cada uno de los pueblos y los Estados. De modo que, es pertinente observar los valores únicos de las variables categóricas, principalmente, el atributo categorico que marca la referencia general de las otras variables.

# Asegúrate de que tu dataframe se llama 'datos_elecciones_recortado'
# O el nombre del dataframe donde tienes la columna de estado.

# --- 1. Conocer el número de valores únicos de la columna de estado ---
# Reemplaza 'State_Name' por el nombre exacto de tu columna de estado si es diferente
num_estados_unicos <- length(unique(datos_elecciones_recortado$Estado))

cat("### Cardinalidad de la Variable 'Estado'\n")
## ### Cardinalidad de la Variable 'Estado'
cat(paste0("La columna 'Estado' contiene **", num_estados_unicos, "** valores únicos.\n\n"))
## La columna 'Estado' contiene **51** valores únicos.
# --- 2. Listar todos los valores únicos de la columna de estado ---
cat("Los valores únicos presentes en la columna 'Estado' son:\n")
## Los valores únicos presentes en la columna 'Estado' son:
valores_unicos_estados <- unique(datos_elecciones_recortado$Estado)

# Puedes imprimir la lista completa
print(valores_unicos_estados)
##  [1] "Alabama"            "Alaska"             "Arizona"           
##  [4] "Arkansas"           "California"         "Colorado"          
##  [7] "Connecticut"        "Delaware"           "DistrictofColumbia"
## [10] "Florida"            "Georgia"            "Hawaii"            
## [13] "Idaho"              "Illinois"           "Indiana"           
## [16] "Iowa"               "Kansas"             "Kentucky"          
## [19] "Louisiana"          "Maine"              "Maryland"          
## [22] "Massachusetts"      "Michigan"           "Minnesota"         
## [25] "Mississippi"        "Missouri"           "Montana"           
## [28] "Nebraska"           "Nevada"             "NewHampshire"      
## [31] "NewJersey"          "NewMexico"          "NewYork"           
## [34] "NorthCarolina"      "NorthDakota"        "Ohio"              
## [37] "Oklahoma"           "Oregon"             "Pennsylvania"      
## [40] "RhodeIsland"        "SouthCarolina"      "SouthDakota"       
## [43] "Tennessee"          "Texas"              "Utah"              
## [46] "Vermont"            "Virginia"           "Washington"        
## [49] "WestVirginia"       "Wisconsin"          "Wyoming"
# Opcional: Si la lista es muy larga, puedes mostrar solo los primeros y últimos
# Si length(valores_unicos_estados) > 20, por ejemplo:
# print(head(valores_unicos_estados, 10))
# cat("...\n")
# print(tail(valores_unicos_estados, 10))

Resumen de la exploracion de los datos

El resumen de la exploración de los datos se refiere a la información sobre el comportamiento electoral en los Estados Unidos en el 2020. La información que nos interesa es la relacionada con el comportamiento electoral, y su relación con la densidad y la cantidad de personas en los pueblos de cada Estado de ese país.

Luego de la reducción de dimensiones de las variables, retuvimos un conjunto de datos con un total de 3143 registros y 7 categorías primarias. Estas categorías son numéricas, excepto la referida a los Estados y los Pueblos que son caracteres, y, coherentemente, su tipo de almacenamiento es integer o numérico para las variables continuas, y carácter para las categorías.

Las diferencias de residentes en cada uno de los pueblos y Estados explica la simetría de la densidad, la totalidad de la población, y, por supuesto, los votos allí registrados. El origen de estos registros responden al comportamiento demográfico y electoral del 2020..

Segunda Parte: analisis de datos

Para responder Objetivo propuesto realizaremos las siguientes tareas de análisis: 1) análisis descriptivo sobre la distribución de los votos, y sobre la distribución de la densidad y población.

Posteriormente, haremos un análisis comparativo sobre las distribución demográfica (densidad y tamaño de la población) y la distribución del voto por Estado.

Finalizaremos con un análisis de correlación para conocer si existe algunos patrones demográficos sobre la preferencia del voto.

1. Análisis Descriptivo

Comenzaremos por entender la distribución de cada variable.

Distribución de votos: Calcularemos el porcentaje de voto para cada partido (Voto demócrata, Voto republicano, Voto otros) sobre el total de votos en cada pueblo. Esto te permitirá comparar la proporción de votos.

Población y densidad: Observaremos la distribución de Total de población y Densidad de población para entender las características demográficas de los pueblos en tu dataset.

2. Análisis Comparativo Compararemos los resultados entre diferentes categorías.

Voto por Estado: Agruparemos los datos por Estado y calcula el total de votos demócratas y republicanos por estado. Puedes visualizar esto con gráficos de barras.

Densidad de población vs. Voto: Divideremos los pueblos en categorías según su densidad de población (e.g., baja, media, alta) y compara los patrones de voto en cada categoría. Esto puede revelar si las áreas urbanas, suburbanas o rurales tienen tendencias de voto distintas.

Pueblo vs. Estado: Compararemos el patrón de voto de un pueblo específico con el promedio de su estado para ver si hay desviaciones significativas.

3. Análisis de Correlación Examinaremos las relaciones entre variables numéricas.

Correlación entre densidad y voto: Calcularemos la correlación entre Densidad de población y el porcentaje de voto demócrata y republicano. ¿Tienden los pueblos más densos a votar de una manera y los menos densos de otra?

Correlación entre población y voto: De manera similar, investiga la correlación entre Total de población y las preferencias de voto.

4. Visualizaciones

Siendo reiterativos, en nuestro esquema de visualización aplicamos las siguientes técnicas:

Histogramas para ver la distribución de variables numéricas como Densidad de población o Total de población.

Gráficos de barras para comparar el total de votos por partido en diferentes estados o para mostrar el porcentaje de voto por categoría de densidad.

Gráficos de dispersión: Para visualizar la relación entre dos variables numéricas, como Densidad de población y Voto demócrata (en porcentaje). Podrías añadir una línea de regresión para ver la tendencia.

Partiendo del conjunto de datos a continuacion:

library(kableExtra)
## 
## Attaching package: 'kableExtra'
## The following object is masked from 'package:dplyr':
## 
##     group_rows
kbl(head(datos_elecciones_recortado), 
    caption = "Tabla: Cálculos por Estado", 
    booktabs = TRUE) %>%
  kable_styling(full_width = FALSE, position = "center", font_size = 12)
Tabla: Cálculos por Estado
Pueblo Estado Voto democrata Voto republicano Voto otros Total de poblacion Superficie_KM2 Densidad de poblacion
Autauga County, Alabama Alabama 7503 19838 429 58805 1539.63 38.17
Baldwin County, Alabama Alabama 24578 83544 1557 231767 4117.73 56.69
Barbour County, Alabama Alabama 4816 5622 80 25223 2292.16 10.85
Bibb County, Alabama Alabama 1986 7525 84 22293 1612.19 13.80
Blount County, Alabama Alabama 2640 24711 237 59134 1670.26 35.37
Bullock County, Alabama Alabama 3446 1146 21 10357 1613.08 6.40

Analisis descriptivo

En el primer momento del análisis vamos a realizar una descripcion de los datos con los cuales vamos a realizar los posteriores hallazgos. La descripcion de los datos se va a centrar especificamente en la observacion del comportamiento variable de cada una de las categorias escogidas para la investigacion; tanto las carateristicas demograficas, las caracteristicas electorales y las unidades de analisis que serian los Estados.

Nuestra primera descripcion sera en torno a la distribucion de los votos, con sus distintas variaciones.

# Cargar la librería dplyr (si no la tienes instalada, usa install.packages("dplyr"))
library(dplyr)

# Asumiendo que 'datos_elecciones_recortado' es tu dataframe en R

# Paso 1: Calcular el Total de Votos por Pueblo
# Y luego, calcular los porcentajes de cada tipo de voto
datos_elecciones_recortado <- datos_elecciones_recortado %>%
  mutate(
    # Calcular el total de votos para cada pueblo
    Total_Votos_Pueblo = `Voto democrata` + `Voto republicano` + `Voto otros`,

    # Calcular el porcentaje de voto demócrata
    `% Voto Democrata` = (`Voto democrata` / Total_Votos_Pueblo) * 100,

    # Calcular el porcentaje de voto republicano
    `% Voto Republicano` = (`Voto republicano` / Total_Votos_Pueblo) * 100,

    # Calcular el porcentaje de voto de otros partidos
    `% Voto Otros` = (`Voto otros` / Total_Votos_Pueblo) * 100
  )

# Opcional: Manejar posibles NaNs o Infinitos si Total_Votos_Pueblo fuera 0
# Esto no debería ser común con datos electorales reales, pero es una buena práctica.
# Si un pueblo tiene 0 votos en total, los porcentajes darán NaN. Puedes convertirlos a 0.
datos_elecciones_recortado <- datos_elecciones_recortado %>%
  mutate(
    `% Voto Democrata` = replace_na(`% Voto Democrata`, 0),
    `% Voto Republicano` = replace_na(`% Voto Republicano`, 0),
    `% Voto Otros` = replace_na(`% Voto Otros`, 0)
  )

# Mostrar las primeras filas del dataframe con las nuevas columnas
print(head(datos_elecciones_recortado))
##                    Pueblo  Estado Voto democrata Voto republicano Voto otros
## 1 Autauga County, Alabama Alabama           7503            19838        429
## 2 Baldwin County, Alabama Alabama          24578            83544       1557
## 3 Barbour County, Alabama Alabama           4816             5622         80
## 4    Bibb County, Alabama Alabama           1986             7525         84
## 5  Blount County, Alabama Alabama           2640            24711        237
## 6 Bullock County, Alabama Alabama           3446             1146         21
##   Total de poblacion Superficie_KM2 Densidad de poblacion Total_Votos_Pueblo
## 1              58805        1539.63                 38.17              27770
## 2             231767        4117.73                 56.69             109679
## 3              25223        2292.16                 10.85              10518
## 4              22293        1612.19                 13.80               9595
## 5              59134        1670.26                 35.37              27588
## 6              10357        1613.08                  6.40               4613
##   % Voto Democrata % Voto Republicano % Voto Otros
## 1        27.018365           71.43680    1.5448326
## 2        22.409030           76.17137    1.4195972
## 3        45.788173           53.45123    0.7606009
## 4        20.698280           78.42626    0.8754560
## 5         9.569378           89.57155    0.8590692
## 6        74.701929           24.84284    0.4552352
# Mostrar un resumen estadístico de las nuevas columnas de porcentaje
print(summary(datos_elecciones_recortado %>%
                select(`% Voto Democrata`, `% Voto Republicano`, `% Voto Otros`)))
##  % Voto Democrata % Voto Republicano  % Voto Otros   
##  Min.   : 3.091   Min.   : 4.139     Min.   : 0.000  
##  1st Qu.:20.971   1st Qu.:55.501     1st Qu.: 1.208  
##  Median :30.051   Median :68.164     Median : 1.668  
##  Mean   :33.417   Mean   :64.788     Mean   : 1.795  
##  3rd Qu.:42.565   3rd Qu.:77.380     3rd Qu.: 2.201  
##  Max.   :95.833   Max.   :96.182     Max.   :12.997

Como se puede observar en el código anterior, anexamos algunas columnas sobre el porcentaje electoral de los Estados Unidos en el 2020. Asimismo, la salidas nos muestran las mas importantes descripciones sobre estos porcentajes. Por ejemplo, podemos observar que en promedio el partido demócrata logra el 33% de los votos en los estados y el partido republicano el 64% de los votos. La distribución promedio es interesante, porque, la diferencia es mucha. Lo cual requiere que se hagan las descripciones por Estado, porque, los registros son sobre los Pueblos, lo que nos puede indicar que el partido republicano abulta sus resultados electorales en las zonas geográficamente mas dispersas. Números que se confirman si se atiende la mediana de las observaciones. En cuanto a los puntos máximos de porcentaje y los puntos mínimos tenemos que las observaciones son cercanas entre ambos partidos.

# Asegúrate de tener ggplot2 cargado
library(ggplot2)

# --- Histograma del Porcentaje de Voto Demócrata ---
ggplot(datos_elecciones_recortado, aes(x = `% Voto Democrata`)) +
  geom_histogram(binwidth = 5, fill = "steelblue", color = "black", alpha = 0.8) + # binwidth 5 para rangos de 5%
  labs(
    title = "Distribución del Porcentaje de Voto Demócrata",
    x = "Porcentaje de Voto Demócrata",
    y = "Número de Pueblos"
  ) +
  theme_minimal() +
  scale_x_continuous(limits = c(0, 100)) # Asegura que el eje X vaya de 0 a 100
## Warning: Removed 2 rows containing missing values or values outside the scale range
## (`geom_bar()`).
# --- Histograma del Porcentaje de Voto Republicano ---
ggplot(datos_elecciones_recortado, aes(x = `% Voto Republicano`)) +
  geom_histogram(binwidth = 5, fill = "firebrick", color = "black", alpha = 0.8) +
  labs(
    title = "Distribución del Porcentaje de Voto Republicano",
    x = "Porcentaje de Voto Republicano",
    y = "Número de Pueblos"
  ) +
  theme_minimal() +
  scale_x_continuous(limits = c(0, 100))
## Warning: Removed 2 rows containing missing values or values outside the scale range
## (`geom_bar()`).
# --- Histograma del Porcentaje de Voto Otros ---
ggplot(datos_elecciones_recortado, aes(x = `% Voto Otros`)) +
  geom_histogram(binwidth = 2, fill = "darkgray", color = "black", alpha = 0.8) + # Binwidth más pequeño, ya que suelen ser porcentajes menores
  labs(
    title = "Distribución del Porcentaje de Voto Otros",
    x = "Porcentaje de Voto Otros",
    y = "Número de Pueblos"
  ) +
  theme_minimal() +
  scale_x_continuous(limits = c(0, 100)) # Aunque es probable que la mayoría estén en el rango bajo
## Warning: Removed 2 rows containing missing values or values outside the scale range
## (`geom_bar()`).
# --- Boxplots de Porcentajes de Voto (para comparar) ---
# Puedes combinar los boxplots de los tres partidos para una comparación rápida.
# Primero, "transformamos" los datos a un formato largo para ggplot.
library(tidyr) # Para la función pivot_longer

datos_votos_largos <- datos_elecciones_recortado %>%
  select(`Pueblo`, `% Voto Democrata`, `% Voto Republicano`, `% Voto Otros`) %>%
  pivot_longer(
    cols = c(`% Voto Democrata`, `% Voto Republicano`, `% Voto Otros`),
    names_to = "Partido",
    values_to = "Porcentaje_Voto"
  )

ggplot(datos_votos_largos, aes(x = Partido, y = Porcentaje_Voto, fill = Partido)) +
  geom_boxplot(alpha = 0.8) +
  labs(
    title = "Boxplots del Porcentaje de Voto por Partido",
    x = "Partido",
    y = "Porcentaje de Voto"
  ) +
  theme_minimal() +
  theme(legend.position = "none") # Quita la leyenda si el color ya está en el eje X
Distribución de votos por partidoDistribución de votos por partidoDistribución de votos por partidoDistribución de votos por partido

Distribución de votos por partido

En la próxima sección realizaremos las descripciones de los Estados para considerar el comportamiento de los datos con respecto a las tendencias asimiladas por la totalidad de los Estados.

Por los momentos se continua con el análisis sobre las descripciones mas representativas tanto de la densidad poblacional como de la población total. Lo cual nos puede sugerir que en promedio hay una densidad de población de 17.27 personas por KM2, aunque el punto medio de la distribución sea 106.44 personas por KM2. Con respecto a los datos poblacionales, el promedio de población es de 105456 con un punto medio de 25698 en los pueblos de Estados Unidos.

library(dplyr)

# Resumen estadístico de Total de población y Densidad de población
cat("Resumen estadístico de 'Total de población':")
## Resumen estadístico de 'Total de población':
cat("\n")
print(summary(datos_elecciones_recortado$`Total de poblacion`))
##     Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 
##       64    10832    25698   105456    67946 10014009
cat("\n")
cat("\nResumen estadístico de 'Densidad de población':")
## 
## Resumen estadístico de 'Densidad de población':
cat("\n")
print(summary(datos_elecciones_recortado$`Densidad de poblacion`))
##     Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 
##     0.01     6.22    17.27   106.44    45.60 28048.18
cat("\n")

Tal como se observa en el siguiente grafico

library(ggplot2)

# --- Histograma de la Densidad de Población (Escala Logarítmica) ---
# Si el histograma anterior está muy sesgado, esta versión ayuda a ver mejor los detalles
# en el rango de densidades bajas y medias. log1p(x) es log(1+x) y maneja valores cero.
ggplot(datos_elecciones_recortado, aes(x = log1p(`Densidad de poblacion`))) +
  geom_histogram(binwidth = 0.2, fill = "lightcoral", color = "black", alpha = 0.8) +
  labs(
    title = "Distribución de la Densidad de Población (Escala Logarítmica)",
    x = "Log(1 + Densidad de Población)",
    y = "Número de Pueblos"
  ) +
  theme_minimal()
Distribucion de la densidad poblacional

Distribucion de la densidad poblacional

Analisis comparativo

En el presente análisis buscaremos agrupar las votaciones alrededor de unidades político administrativas mas grandes (Estados) para observar el comportamiento electoral. El comportamiento electoral en unidades político administrativas mas grande nos ofrecerán algunos indicios acerca de la dispersión del voto de los republicanos y la concentración del voto de los demócratas, demográfica y geográficamente hablando.

Por lo cual, es importante que agrupemos las variables en un data frame paralelo sobre observaciones en los Estados del país norteamericano.

library(dplyr) 

# --- Paso 1: Agrupar por Estado para sumar población y obtener la superficie del estado ---
datos_estados_calculados <- datos_elecciones_recortado %>%
  group_by(Estado) %>%
  summarise(
    Poblacion_Total_Estado = sum(`Total de poblacion`, na.rm = TRUE),
    # Asumimos que Superficie_KM2 es la superficie del estado y es constante para cada pueblo en el mismo estado.
    # Usamos max() o mean() para asegurarnos de tomar ese valor único por estado.
    Superficie_Total_Estado_KM2 = sum(`Superficie_KM2`, na.rm = TRUE),
    # Sumamos los votos para el cálculo de porcentajes a nivel estatal
    Voto_Democrata_Estado = sum(`Voto democrata`, na.rm = TRUE),
    Voto_Republicano_Estado = sum(`Voto republicano`, na.rm = TRUE),
    Voto_Otros_Estado = sum(`Voto otros`, na.rm = TRUE),
    .groups = 'drop' # Esto quita la agrupación después de la operación
  ) %>%
  # --- Paso 2: Calcular la Densidad Real del Estado y los Porcentajes de Voto Estatal ---
  mutate(
    # Calcular la Densidad Real del Estado
    # Asegúrate de manejar la división por cero si Superficie_Total_Estado_KM2 fuera 0
    Densidad_Real_Estado = ifelse(Superficie_Total_Estado_KM2 > 0,
                                  Poblacion_Total_Estado / Superficie_Total_Estado_KM2,
                                  0), # O NA, dependiendo de cómo quieras tratar los estados con superficie 0

    # Calcular el Total de Votos del Estado
    Total_Votos_Estado = Voto_Democrata_Estado + Voto_Republicano_Estado + Voto_Otros_Estado,

    # Calcular los Porcentajes de Voto
    `% Voto Democrata Estado` = (Voto_Democrata_Estado / Total_Votos_Estado) * 100,
    `% Voto Republicano Estado` = (Voto_Republicano_Estado / Total_Votos_Estado) * 100,
    `% Voto Otros Estado` = (Voto_Otros_Estado / Total_Votos_Estado) * 100
  ) %>%
  # --- Paso 3: Manejar posibles NaNs (por ejemplo, si Total_Votos_Estado fuera 0) ---
  mutate(
    `% Voto Democrata Estado` = replace_na(`% Voto Democrata Estado`, 0),
    `% Voto Republicano Estado` = replace_na(`% Voto Republicano Estado`, 0),
    `% Voto Otros Estado` = replace_na(`% Voto Otros Estado`, 0)
  )

library(kableExtra)

kbl(datos_estados_calculados, 
    caption = "Tabla: Cálculos por Estado", 
    booktabs = TRUE) %>%
  kable_styling(full_width = FALSE, position = "center", font_size = 12)
Tabla: Cálculos por Estado
Estado Poblacion_Total_Estado Superficie_Total_Estado_KM2 Voto_Democrata_Estado Voto_Republicano_Estado Voto_Otros_Estado Densidad_Real_Estado Total_Votos_Estado % Voto Democrata Estado % Voto Republicano Estado % Voto Otros Estado
Alabama 5024279 131185.10 849648 1441168 32488 38.2991590 2323304 36.57068 62.030970 1.3983534
Alaska 733391 1479016.90 153985 189925 15453 0.4958638 359363 42.84943 52.850460 4.3001088
Arizona 7151502 294366.12 1672143 1661686 53497 24.2945825 3387326 49.36469 49.055981 1.5793284
Arkansas 3011524 134660.48 423932 760647 34490 22.3638294 1219069 34.77506 62.395730 2.8292082
California 39538223 403673.31 11109764 6005961 380181 97.9460916 17495906 63.49922 34.327808 2.1729712
Colorado 5773714 268418.72 1804352 1364607 87994 21.5101018 3256953 55.40000 41.898271 2.7017277
Connecticut 3605944 12178.67 1080831 714717 28309 296.0868469 1823857 59.26073 39.187118 1.5521502
Delaware 989948 5046.71 296268 200603 7139 196.1571004 504010 58.78217 39.801393 1.4164401
DistrictofColumbia 689545 158.32 39041 1725 915 4355.3878221 41681 93.66618 4.138576 2.1952448
Florida 21538187 138963.82 5297045 5668731 101680 154.9913280 11067456 47.86145 51.219820 0.9187297
Georgia 10711908 149485.25 2473633 2461854 62229 71.6586285 4997716 49.49527 49.259582 1.2451488
Hawaii 1455271 16634.43 366153 196865 11475 87.4854744 574493 63.73498 34.267606 1.9974134
Idaho 1839106 214049.87 287021 554119 26966 8.5919510 868106 33.06290 63.830799 3.1063027
Illinois 12812508 143778.36 3471915 2446891 120037 89.1129096 6038843 57.49305 40.519202 1.9877483
Indiana 6785528 92786.64 1242495 1729852 60851 73.1304421 3033198 40.96320 57.030632 2.0061664
Iowa 3190369 144659.32 759061 897672 34138 22.0543619 1690871 44.89172 53.089325 2.0189595
Kansas 2937880 211753.76 558669 758100 32798 13.8740394 1349567 41.39617 56.173573 2.4302610
Kentucky 4505836 102266.54 772474 1326646 37648 44.0597286 2136768 36.15151 62.086572 1.7619133
Louisiana 4657757 111930.43 856034 1255776 36252 41.6129644 2148062 39.85146 58.460882 1.6876608
Maine 1362359 79888.28 430473 359899 32162 17.0533024 822534 52.33498 43.754909 3.9101119
Maryland 6177224 25151.76 1985023 976414 75593 245.5980814 3037030 65.36066 32.150292 2.4890436
Massachusetts 7029917 20204.33 2382202 1167202 108601 347.9411097 3658005 65.12298 31.908158 2.9688587
Michigan 10077331 146620.00 2804040 2649852 85410 68.7309439 5539302 50.62082 47.837291 1.5418910
Minnesota 5706494 206244.54 1717077 1484065 76029 27.6685822 3277171 52.39510 45.284942 2.3199583
Mississippi 2961279 121533.55 539398 756764 19020 24.3659385 1315182 41.01318 57.540629 1.4461877
Missouri 6154913 178052.23 1253014 1718736 54212 34.5680197 3025962 41.40878 56.799656 1.7915625
Montana 1084225 376973.18 244786 343602 17362 2.8761330 605750 40.41040 56.723401 2.8661989
Nebraska 1961504 198949.63 374583 556846 24950 9.8592996 956379 39.16679 58.224407 2.6087984
Nevada 3104614 284537.05 703486 669890 32000 10.9111063 1405376 50.05678 47.666247 2.2769707
NewHampshire 1377529 23190.13 424937 365660 13236 59.4015213 803833 52.86384 45.489548 1.6466107
NewJersey 9288994 19049.20 2608335 1883274 72625 487.6317116 4564234 57.14727 41.261557 1.5911761
NewMexico 2117522 314198.59 501614 401894 20457 6.7394383 923965 54.28929 43.496669 2.2140449
NewYork 20201249 122049.06 5244006 3250230 119310 165.5174485 8613546 60.88092 37.733937 1.3851438
NorthCarolina 10439388 125935.88 2684292 2758773 81736 82.8944698 5524801 48.58622 49.934342 1.4794379
NorthDakota 779094 178694.35 114902 235595 11322 4.3599252 361819 31.75676 65.114049 3.1291889
Ohio 11799448 105823.83 2679165 3154834 88203 111.5008595 5922202 45.23934 53.271300 1.4893616
Oklahoma 3959353 177664.48 503890 1020280 36529 22.2855632 1560699 32.28617 65.373272 2.3405538
Oregon 4237256 248630.41 1340383 958448 75490 17.0423883 2374321 56.45332 40.367246 3.1794353
Pennsylvania 13002700 115881.85 3459923 3378263 87069 112.2065276 6925255 49.96095 48.781785 1.2572678
RhodeIsland 1097379 2677.76 306210 199837 10336 409.8123058 516383 59.29901 38.699376 2.0016151
SouthCarolina 5118425 77866.01 1091541 1385103 36685 65.7337521 2513329 43.43009 55.110294 1.4596179
SouthDakota 886667 196341.52 150471 261043 11095 4.5159424 422609 35.60525 61.769390 2.6253582
Tennessee 6910840 106792.30 1143913 1852948 57673 64.7129053 3054534 37.44967 60.662216 1.8881112
Texas 29145505 676686.20 5259126 5890347 168438 43.0709315 11317911 46.46729 52.044472 1.4882428
Utah 3271616 213921.87 560282 865140 62867 15.2935088 1488289 37.64605 58.129839 4.2241124
Vermont 643077 23872.56 242826 112708 15292 26.9379153 370826 65.48246 30.393770 4.1237669
Virginia 8631393 102258.16 2413568 1962430 84526 84.4078653 4460524 54.10952 43.995504 1.8949792
Washington 7705281 172118.78 2369612 1584651 133368 44.7672299 4087631 57.97030 38.766978 3.2627211
WestVirginia 1793716 62266.54 235984 545382 13286 28.8070607 794652 29.69652 68.631552 1.6719268
Wisconsin 5893718 140292.64 1630673 1610065 56614 42.0101725 3297352 49.45402 48.829030 1.7169535
Wyoming 576851 251458.15 73491 193559 9715 2.2940239 276765 26.55357 69.936228 3.5101982

En este sentido, haciendo las observaciones descriptivas acerca de las medidas sobre las tendencias electorales, considerando como unidad de análisis los Estados vemos que las observaciones centrales se acercan entre los Demócratas y los Republicanos, ofreciéndonos un indicio de lo que anteriormente insinuábamos: la concentración de las tendencias medias y medianas cuando se observan unidades político administrativas inferiores, hay una clara preferencia en el voto republicano, como indica la tabla anterior.

# --- Resúmenes de los votos que pediste ---
print("\nResumen estadístico de % Voto Democrata Estado:")
## [1] "\nResumen estadístico de % Voto Democrata Estado:"
print(summary(datos_estados_calculados$`% Voto Democrata Estado`))
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   26.55   40.13   49.36   48.62   56.80   93.67
print("\nResumen estadístico de % Voto Republicano Estado:")
## [1] "\nResumen estadístico de % Voto Republicano Estado:"
print(summary(datos_estados_calculados$`% Voto Republicano Estado`))
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   4.139  40.890  49.260  49.163  57.835  69.936
print("\nResumen estadístico de % Voto Otros Estado:")
## [1] "\nResumen estadístico de % Voto Otros Estado:"
print(summary(datos_estados_calculados$`% Voto Otros Estado`))
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.9187  1.5657  2.0016  2.2178  2.6635  4.3001

Mientras que en esta observación descriptiva observamos un estrechamiento de las medidas medias y mediana que oscilan entre 48.5 y 49.6 puntos. En el caso de las observaciones máximas y mínimas, tienden a favorecer a los demócratas con un 26 puntos en la votación de los Estados, y desfavorecer a los republicanos con menos de 1 punto. Las observaciones máximas nos ofrecen las mismas tendencias con respecto a los demócratas en contraste con los republicanos.

Estos descriptivos, comparado con los anteriores Análisis descriptivo nos ofrecen varios indicios de que la concentración de la población en ciertas zonas residenciales tienden a favorecer a los demócratas sobre los republicanos. Estas intuiciones las esperamos confirmar con un análisis de distribución de las votaciones en los Estados, pero también, con un análisis de correlación, considerando tanto la densidad de la población como la población total.

De momento, es importante realizar una descripción de la densidad de población para observar el comportamiento estadístico de la dispersión y concentración de las personas en el país, considerando, esta vez, como unidad de análisis unidades político administrativas mas grandes.

# Opcional: Resumen de las nuevas variables clave
print("\nResumen estadístico de Densidad Real del Estado:")
## [1] "\nResumen estadístico de Densidad Real del Estado:"
print(summary(datos_estados_calculados$Densidad_Real_Estado))
##     Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 
##    0.496   19.282   42.010  163.738   88.299 4355.388

Las descripciones sobre la densidad de la población nos muestra un promedio de densidad de 42 personas por km2, y una mediana de 163 personas por km2. Estas observaciones consideran diferentes Estados con dimensiones completamente contrarias en cuanto a la superficie en km2 del país. De manera que, podemos considerar que el país norteamericano es una nación densamente poblada. Como bien se observa en el siguiente gráfico

# Instalar y cargar librerías necesarias

library(ggplot2)

ggplot(datos_estados_calculados, aes(x = reorder(Estado, Densidad_Real_Estado), y = Densidad_Real_Estado)) +
  geom_bar(stat = "identity", fill = "steelblue") +
  geom_text(aes(label = round(Densidad_Real_Estado, 1)), 
            hjust = -0.1, size = 2) +  # etiquetas al final
  coord_flip() +
  labs(
    title = "Densidad Poblacional Real por Estado",
    x = "Estado",
    y = "Habitantes por km²"
  ) +
  theme_minimal() +
  theme(axis.text.y = element_text(size = 6)) +  # para mejor visibilidad
  ylim(0, max(datos_estados_calculados$Densidad_Real_Estado) * 1.1) # margen para las etiquetas
Densidad poblacional x Estado

Densidad poblacional x Estado

Pues, vemos que el top cinco de los Estados mas densos geográficamente corresponde con Estados geográficamente mas pequeños. A veces esas observaciones coinciden con el numero poblacional absoluto, como es el caso de New York, New Jersey, u otros, como se aprecia en el siguiente gráfico de barras:

ggplot(datos_estados_calculados, aes(x = reorder(Estado, Poblacion_Total_Estado), y = Poblacion_Total_Estado)) +
  geom_bar(stat = "identity", fill = "darkgreen") +
  geom_text(aes(label = round(Poblacion_Total_Estado, 1)), 
            hjust = -0.1, size = 2) +  # etiquetas al final
  coord_flip() +
  labs(
    title = "Población Total por Estado",
    x = "Estado",
    y = "Población"
  ) +
  theme_minimal() +
  theme(axis.text.y = element_text(size = 6)) +  # para mejor visibilidad
  ylim(0, max(datos_estados_calculados$Poblacion_Total_Estado) * 1.1) # margen para las etiquetas
Poblacion x Estado

Poblacion x Estado

Por otro lado, considerando el voto de los partidos, también podemos observar en el siguiente gráfico las preferencias electorales en cada uno. Estas observaciones pueden proporcionalmente respaldar nuestras hipótesis, en la que los Estados mas poblados o densamente poblados suelen tener un voto hacia los partidos democráticos, como se puede observar si contrastamos con los anteriores.

library(tidyr)

# Convertir datos a formato largo para el gráfico de porcentajes
votos_porcentajes <- datos_estados_calculados %>%
  select(
    Estado,
    `% Voto Democrata Estado`,
    `% Voto Republicano Estado`,
    `% Voto Otros Estado`
  ) %>%
  pivot_longer(
    cols = -Estado,
    names_to = "Partido",
    values_to = "Porcentaje"
  )

ggplot(votos_porcentajes, aes(x = reorder(Estado, Porcentaje), y = Porcentaje, fill = Partido)) +
  geom_bar(stat = "identity", position = "dodge") +
  coord_flip() +
  labs(
    title = "Porcentaje de Votos por Estado y Partido",
    x = "Estado",
    y = "Porcentaje (%)",
    fill = "Partido"
  ) +
  theme_minimal() +
  theme(axis.text.y = element_text(size = 6)) +  # para mejor visibilidad
  ylim(0, max(votos_porcentajes$Porcentaje) * 1.1) # margen para las etiquetas
Porcentaje de voto por Estados

Porcentaje de voto por Estados

No obstante, antes de contrastar las tablas entre si, y pecar de situaciones estadisticamente contingente, realizaremos el análisis de correlación entre las tendencias electorales y la concentración de población o la presencia absoluta de la población.

Analisis de correlacion

El análisis de correlación aspira hallar alguna relación positiva con respecto a la concentración de la población en Estados y pueblos con respecto a los votos demócratas (debido a nuestras primeras observaciones descriptivas, anteriormente planteadas, y algunas revisiones bibliográficas). Asimismo, es importante que, basados en estas contrastaciones podamos evaluar la tendencia negativa de la votación republicana con respecto a las preferencias electorales.

En el presente análisis de correlación aplicaremos un modelo de regresión simple mediante el codigo lm, como se indica en el siguiente codigo:

# Escalar variables para visualización (opcional)
datos_estados_calculados <- datos_estados_calculados %>%
  mutate(
    Densidad_Scaled = scale(Densidad_Real_Estado),
    VotoDem_Scaled = scale(`% Voto Democrata Estado`)
  )

# Ajustar modelo lineal simple
modelo <- lm(`% Voto Democrata Estado` ~ Densidad_Real_Estado, data = datos_estados_calculados)

cat("Correlación lineal simple")
## Correlación lineal simple
# Mostrar resumen del modelo
summary(modelo)
## 
## Call:
## lm(formula = `% Voto Democrata Estado` ~ Densidad_Real_Estado, 
##     data = datos_estados_calculados)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -20.1279  -6.9353   0.9373   7.6401  18.5052 
## 
## Coefficients:
##                       Estimate Std. Error t value Pr(>|t|)    
## (Intercept)          46.653903   1.419594  32.864   <2e-16 ***
## Densidad_Real_Estado  0.012004   0.002276   5.275    3e-06 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 9.782 on 49 degrees of freedom
## Multiple R-squared:  0.3622, Adjusted R-squared:  0.3491 
## F-statistic: 27.82 on 1 and 49 DF,  p-value: 2.998e-06
# Calcular correlación Pearson
correlacion <- cor(datos_estados_calculados$Densidad_Real_Estado,
                   datos_estados_calculados$`% Voto Democrata Estado`,
                   use = "complete.obs", method = "pearson")

cat("Correlación Pearson entre Densidad y % Voto Demócrata:", round(correlacion, 3), "\n")
## Correlación Pearson entre Densidad y % Voto Demócrata: 0.602

El análisis de correlación simple aplicado en los datos sobre la densidad poblacional de los datos en el nivel de los Estados nos exponen que existe una relación positiva y estadísticamente significativa entre la densidad de población de un estado y el porcentaje de voto demócrata en ese estado.

Esa relación se observa con el valor intercept, que la predicción del % Voto Demócrata Estado cuando la Densidad_Real_Estado es cero. En este contexto, significa que en estados con densidad de población nula (hipotéticamente), el porcentaje de voto demócrata promedio sería de aproximadamente 46.65%. De manera que, mientras disminuye la densidad poblacional, tiende a decrecer el voto demócrata, siendo favorable la concentración poblacional para el partido demócrata.

El signo positivo (0.012004) confirma la hipótesis de una relación positiva entre la concentración de población y el voto demócrata.

Una relación estadisticamente significativa como se expone con el p-valor tanto del intercept como de la variable independiente Densidad del Estado.

No obstante, la bondad de ajuste sugiere que con el siguiente valor 0.3491 hay una variabilidad importante no contemplada por las cuestiones demográficas. Aunque la relación es significativa, este factor explica alrededor del 36.22% de la variabilidad en el voto demócrata, lo que sugiere que hay otros factores importantes que también influyen en las preferencias electorales a nivel estatal.

colnames(datos_estados_calculados)
##  [1] "Estado"                      "Poblacion_Total_Estado"     
##  [3] "Superficie_Total_Estado_KM2" "Voto_Democrata_Estado"      
##  [5] "Voto_Republicano_Estado"     "Voto_Otros_Estado"          
##  [7] "Densidad_Real_Estado"        "Total_Votos_Estado"         
##  [9] "% Voto Democrata Estado"     "% Voto Republicano Estado"  
## [11] "% Voto Otros Estado"         "Densidad_Scaled"            
## [13] "VotoDem_Scaled"
# Escalar variables para visualización (opcional)
datos_estados_calculados <- datos_estados_calculados %>%
  mutate(
    Densidad_Scaled = scale(Densidad_Real_Estado),
    VotoDem_Scaled = scale(`% Voto Republicano Estado`)
  )

# Ajustar modelo lineal simple
modelo <- lm(`% Voto Republicano Estado` ~ Densidad_Real_Estado, data = datos_estados_calculados)

cat("Correlación lineal simple")
## Correlación lineal simple
# Mostrar resumen del modelo
summary(modelo)
## 
## Call:
## lm(formula = `% Voto Republicano Estado` ~ Densidad_Real_Estado, 
##     data = datos_estados_calculados)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -20.4010  -7.5336  -0.1929   6.9915  18.8475 
## 
## Coefficients:
##                       Estimate Std. Error t value Pr(>|t|)    
## (Intercept)          51.116113   1.418913  36.025  < 2e-16 ***
## Densidad_Real_Estado -0.011929   0.002275  -5.244 3.33e-06 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 9.778 on 49 degrees of freedom
## Multiple R-squared:  0.3595, Adjusted R-squared:  0.3464 
## F-statistic:  27.5 on 1 and 49 DF,  p-value: 3.33e-06
# Calcular correlación Pearson
correlacion <- cor(datos_estados_calculados$Densidad_Real_Estado,
                   datos_estados_calculados$`% Voto Republicano Estado`,
                   use = "complete.obs", method = "pearson")

cat("Correlación Pearson entre Densidad y % Voto Republicano", round(correlacion, 3), "\n")
## Correlación Pearson entre Densidad y % Voto Republicano -0.6

Con relación al voto republicano se observa mas bien una relación negativa entre la densidad de la población y la preferencia al voto. Esa relación se observa con el valor intercept, que la predicción del % Voto Republicano Estado cuando la Densidad_Real_Estado es cero. En el mismo contexto, significa que el porcentaje del voto republicano tiende aumentar a un 51% cuando la densidad es 0. De manera que, mientras disminuye la densidad de la población aumenta el voto republicano.

El signo negativo (-0.011929) en la estimación de la densidad población confirma la hipótesis de una relación negativa entre la concentración de población y el voto republicano.

El coeficiente de regresión para la densidad, significa que, por cada unidad de aumento en la Densidad_Real_Estado, el % Voto Republicano Estado se reduce en aproximadamente 0.011929 puntos porcentuales.

Así como en el caso anterior sobre el voto demócrata, la relación es estadisticamente significativa como se expone con el p-valor tanto del intercept como de la variable independiente Densidad del Estado.

Sin embargo, igual que en el caso anterior, la bondad de ajuste sugiere con un valor de 0.3464 esta variable solo explica un 34.46% del voto republicano, sugiriendo la necesidad de considerar otros factores en el análisis.

Graficos

Buscando ampliar las observaciones y mejorar la visualización, nos limitaremos a exponer los resultados de la regresión simple con respecto a la tendencias electorales y la densidad de población con los siguientes gráficos de barras, reservando los gráficos de dispersión para el análisis por pueblo, ampliando las observaciones y haciendo mas nítida las tendencias. Por los momentos con los siguientes gráficos de barras podremos ver una relación entre el porcentaje de voto y la densidad de población entre los Estados como se aprecia a continuación:

# Asegúrate de que ggplot2 y dplyr estén cargados
library(ggplot2)
library(dplyr)

# Asegúrate de que 'datos_estados_calculados' esté disponible y tenga las columnas correctas
# y que 'Densidad_Real_Estado' haya sido calculada correctamente en pasos anteriores.

# Ordenar los estados por su Densidad Real (de menor a mayor)
datos_estados_ordenados_densidad <- datos_estados_calculados %>%
  arrange(Densidad_Real_Estado) %>%
  # Convertir 'Estado' a un factor ordenado para que ggplot respete el orden
  mutate(Estado = factor(Estado, levels = Estado))

# Grafico de barras: % Voto Demócrata por Estado, ordenado por Densidad Real
ggplot(datos_estados_ordenados_densidad, aes(x = Estado, y = `% Voto Democrata Estado`)) +
  geom_col(fill = "steelblue", color = "black") + # geom_col es un atajo para geom_bar(stat="identity")
  labs(
    title = "% Voto Demócrata por Estado (Ordenado por Densidad Real)",
    x = "Estado",
    y = "% Voto Demócrata"
  ) +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 90, hjust = 1, vjust = 0.5, size = 8)) + # Rota las etiquetas del eje X
  scale_y_continuous(limits = c(0, 100)) # Asegura que el eje Y vaya de 0 a 100

# --- Opcional: También para el voto Republicano, para comparar ---
ggplot(datos_estados_ordenados_densidad, aes(x = Estado, y = `% Voto Republicano Estado`)) +
  geom_col(fill = "firebrick", color = "black") +
  labs(
    title = "% Voto Republicano por Estado (Ordenado por Densidad Real)",
    x = "Estado",
    y = "% Voto Republicano"
  ) +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 90, hjust = 1, vjust = 0.5, size = 8)) +
  scale_y_continuous(limits = c(0, 100))
Grafico de Poblacion x Votacion en cuanto a la densidadGrafico de Poblacion x Votacion en cuanto a la densidad

Grafico de Poblacion x Votacion en cuanto a la densidad

Analisis comparativo entre pueblo y voto democrata

Ahora bien, para ampliar los resultados del análisis de regresión simple de los Estados, incorporaremos un análisis de regresion simple pero considerando unidades político administrativas mas pequeñas, que al incorporar mas observaciones, hace de mayor utilidad la visualización de gráficos de dispersión de las tendencias electorales segun la densidad de la población.

datos_elecciones_recortado <- datos_elecciones_recortado %>%
mutate(., Poblacion_Scaled = scale(`Densidad de poblacion`), VotoDem_Scaled = scale(`Voto democrata`))

# Ajustar modelo lineal simple
modelo <- lm(`% Voto Democrata` ~ `Densidad de poblacion`, data = datos_elecciones_recortado)

cat("Correlación lineal simple con respecto a poblacion y voto democrataa")
## Correlación lineal simple con respecto a poblacion y voto democrataa
# Mostrar resumen del modelo
summary(modelo)
## 
## Call:
## lm(formula = `% Voto Democrata` ~ `Densidad de poblacion`, data = datos_elecciones_recortado)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -113.990  -11.940   -2.908    9.172   63.044 
## 
## Coefficients:
##                          Estimate Std. Error t value Pr(>|t|)    
## (Intercept)             3.278e+01  2.792e-01  117.39   <2e-16 ***
## `Densidad de poblacion` 5.988e-03  3.922e-04   15.27   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 15.48 on 3141 degrees of freedom
## Multiple R-squared:  0.06909,    Adjusted R-squared:  0.06879 
## F-statistic: 233.1 on 1 and 3141 DF,  p-value: < 2.2e-16
# Ajustar modelo lineal simple
modelo2 <- lm(`% Voto Republicano` ~ `Densidad de poblacion`, data = datos_elecciones_recortado)

cat("Correlación lineal simple con respecto a poblacion y voto republicano")
## Correlación lineal simple con respecto a poblacion y voto republicano
# Mostrar resumen del modelo
summary(modelo2)
## 
## Call:
## lm(formula = `% Voto Republicano` ~ `Densidad de poblacion`, 
##     data = datos_elecciones_recortado)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -61.246  -9.434   3.010  12.085 113.867 
## 
## Coefficients:
##                           Estimate Std. Error t value Pr(>|t|)    
## (Intercept)             65.4222297  0.2829361  231.23   <2e-16 ***
## `Densidad de poblacion` -0.0059554  0.0003974  -14.99   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 15.68 on 3141 degrees of freedom
## Multiple R-squared:  0.06673,    Adjusted R-squared:  0.06643 
## F-statistic: 224.6 on 1 and 3141 DF,  p-value: < 2.2e-16

Con el modelo de regresión simple se confirman las relaciones positiva en el voto demócrata y negativa en el voto republicano. Ademas como se observan en los valores p, las relaciones tienden a ser significativas entre la densidad de población y el voto partidario, lo cual es consistente con tus análisis a nivel estatal.

Pero es importante señalar que las observaciones con respecto al partido republicano nos muestra un mayor poder explicativo, en este caso sobre la relación negativa y la densidad de población. En el intercept, se observa que a nivel de condados y pueblos, mientras mas disminuye la concentración de la población el porcentaje del voto republicano crece. Ese porcentaje de voto republicano predicho en un pueblo o condado con densidad de población cero (hipotéticamente). En esas condiciones, el voto republicano promedio sería de aproximadamente 65.42%.

Como se muestran en los gráficos anteriores, se pude visualizar las tendencias positivas o negativas de las preferencias electorales según la densidad de población, con una pendiente positiva para el voto demócrata y una pendiente negativa para el voto republicano

library(ggplot2)
# --- Gráficos de Dispersión con Escala Logarítmica para Población ---
# Si la población total está muy sesgada, usa la escala logarítmica.
ggplot(datos_elecciones_recortado, aes(x = log1p(`Densidad de poblacion`), y = `% Voto Democrata`)) +
  geom_point(alpha = 0.5, color = "steelblue") +
  geom_smooth(method = "lm", col = "darkblue", se = FALSE) +
  labs(
    title = "Voto Demócrata vs. Log(Densidad de poblacion)",
    x = "Log(1 + Total de Población)",
    y = "Porcentaje de Voto Demócrata"
  ) +
  theme_minimal()
## `geom_smooth()` using formula = 'y ~ x'
ggplot(datos_elecciones_recortado, aes(x = log1p(`Densidad de poblacion`), y = `% Voto Republicano`)) +
  geom_point(alpha = 0.5, color = "firebrick") +
  geom_smooth(method = "lm", col = "darkred", se = FALSE) +
  labs(
    title = "Voto Republicano vs. Log(Densidad de poblacion)",
    x = "Log(1 + Total de Poblacion)",
    y = "Porcentaje de Voto Republicano"
  ) +
  theme_minimal()
## `geom_smooth()` using formula = 'y ~ x'
Gráficos de Dispersión de densidad x votacion en PueblosGráficos de Dispersión de densidad x votacion en Pueblos

Gráficos de Dispersión de densidad x votacion en Pueblos

En los gráficos de dispersión se aprecia una nube de puntos que tiende a ascender de izquierda a derecha para el caso demócrata, y a descender en el caso republicano. Esto indica una relación positiva entre la densidad de población y el porcentaje de voto demócrata. Los municipios con mayor densidad tienden a tener un mayor porcentaje de votos demócratas; así como una relación negativa entre la densidad de la población y el voto republicano. Intuiciones confirmadas con las lineas diagonales ascendentes (en el caso del gráfico de dispersión demócrata) y descendentes (en el caso del gráfico de dispersión republicano) que muestran las tendencias de la preferencia del voto en el caso de que aumente la densidad de la población (mas voto demócrata) o que disminuya (mas voto republicano)

No obstante, en el caso demócrata hay que destacar que también se observa menor poder explicativo a nivel granular. El R-squared es mucho menor (0.0691 o 6.91%) en este modelo de pueblo/condado en comparación con el modelo a nivel estatal (donde era alrededor del 36%).

Esto es un hallazgo común e importante: mientras que la densidad de población es un predictor significativo de las tendencias de voto a nivel estatal, su capacidad para explicar la variabilidad en el voto individual de pueblos o condados es mucho menor.

Esto sugiere que a un nivel más granular, otros factores (como la composición socio económica específica del pueblo, la presencia de industrias, el historial político local, etc.) juegan un papel mucho más importante en la explicación de las preferencias de voto que la densidad de población por sí sola.

Por otro lado la magnitud del Coeficiente (0.005988) es menor que el 0.012004 de la densidad a nivel estatal. Esto también es esperable, ya que la “densidad de población” se interpreta de manera diferente en la escala de un pueblo frente a la escala de un estado completo.

Tercera Parte: Conclusiones

Como ya ha sido demostrado por diversos estudios, las zonas urbanas más densas tienden a votar por el Partido Demócrata, mientras que las zonas rurales favorecen al Partido Republicano (Bishop, 2009; Gimpel & Schuknecht, 2020; Rodden, 2019). La exploración sobre el conjunto de datos de las elecciones del 2020 tienden a confirmar estos antecedentes.

Por otro lado nuestro Análisis de correlacionLa tendencia positiva entre la densidad y el voto demócrata, y una tendencia negativa entre el voto republicano y la densidad de la población. Estos sugiere que mientras mas dispersa este la población, su preferencia electoral es republicano, y contrariamente, la concentración poblacional favorece el voto demócrata.

No obstante, un importante poder explicativo de la relaciones entre la preferencia del voto y la densidad solo se conservan en el caso del partido republicano. En el caso demócrata, un hallazgo importante salta a la vista: a nivel estatal la tendencia del voto tiende a favorecer el voto demócrata, no así a nivel granular. No obstante, es importante, considerar que, esto obedece mas a un análisis de concentración y dispersión de las zonas residenciales que le ofrezca mayores detalles al análisis, que solamente restringir la variabilidad demográfica a la estructura de densidad.

Pero, nos parece adecuado señalar que esta exploración es un indicio sobre la tendencia al voto y las estructuras demográficas en los Estados Unidos. Esta relación entre urbanización y preferencia electoral también se ve mediada por la diversidad demográfica presente en las grandes ciudades (Brown & Lopez, 2020; Frey, 2018), incluyendo nivel educativo y estructura etaria (Gelman et al., 2008).

La creciente polarización territorial ha sido analizada como un fenómeno que afecta no solo las decisiones políticas sino también la cohesión social (Hochschild, 2016; Tobler, 2021).

El análisis sobre la relación entre la concentración poblacional y la preferencia de voto en Estados Unidos sugiere que las áreas urbanas densamente pobladas presentan una mayor inclinación hacia el voto demócrata, mientras que las zonas rurales, menos pobladas, tienden a favorecer al partido republicano. Este patrón ha sido identificado por múltiples estudios empíricos que destacan la influencia de la urbanización en las actitudes políticas y el comportamiento electoral (Bafumi & Shapiro, 2012; Rodden, 2019).

Además, la diversidad demográfica que caracteriza a las zonas urbanas —como la presencia de grupos raciales y étnicos diversos, niveles más altos de educación y mayor movilidad social— se asocia con una mayor probabilidad de apoyo al Partido Demócrata (Florida, 2017; Frey, 2018). En contraste, las áreas rurales tienden a ser más homogéneas en términos étnicos y educativos, lo que contribuye a la estabilidad del voto republicano (Bishop, 2009).

En consecuencia, nuestros hallazgos empíricos respaldan la hipótesis planteada: la concentración de la población, y particularmente la densidad urbana, tiene una influencia significativa sobre la distribución del voto partidista en Estados Unidos. La densidad de población tiene efectos opuestos en los porcentajes de voto demócrata y republicano a nivel de pueblo/condado. A medida que la densidad aumenta, el voto demócrata sube y el voto republicano baja.

Este patrón no solo tiene implicancias para entender las dinámicas electorales actuales, sino también para analizar cómo los cambios demográficos y los procesos de urbanización futura podrían alterar el mapa político del país (Florida, 2017; Rodden, 2019).

Referencias

Bafumi, J., & Shapiro, R. Y. (2012). A new partisan voter: The emergence of a split-partisan electorate. American Journal of Political Science, 56(2), 259–276.
Bishop, B. (2009). The big sort: Why the clustering of like-minded america is tearing us apart. Mariner Books.
Brown, A., & Lopez, M. H. (2020). Demographic trends shape political divides in the u.s. Pew Research Center. https://www.pewresearch.org
Florida, R. (2017). The new urban crisis: How our cities are increasing inequality, deepening segregation, and failing the middle class. Basic Books.
Frey, W. H. (2018). Diversity explosion: How new racial demographics are remaking america. Brookings Institution.
Gelman, A. et al. (2008). Rich state, poor state, red state, blue state: What’s the matter with connecticut? Quarterly Journal of Political Science, 3(4), 345–367.
Gimpel, J. G., & Schuknecht, J. E. (2020). Spatial dimensions of electoral polarization: Urban–rural and racial divides in 2020. Political Behavior, 42, 223–246. https://doi.org/10.1007/s11109-020-09602-3
Hochschild, A. R. (2016). Strangers in their own land: Anger and mourning on the american right. The New Press.
Rodden, J. (2019). Why cities lose: The deep roots of the urban-rural political divide. Basic Books.
Tobler, J. (2021). Cities, partisanship, and the shifting american electorate. Urban Affairs Review, 57(5), 1353–1371. https://doi.org/10.1177/1078087419893341