1. Tema

Discriminación hacia las mujeres lesbianas en el mercado laboral en México.

2. Planeacion del tema

En el siguiente trabajo, utilicé los datos de la Encuesta Nacional sobre Diversidad Sexual y de Género (ENDISEG) 2021, realizada por el Instituto Nacional de Estadística y Geografía (INEGI), con el fin de conocer aspectos relacionados con las características sexuales, identidad de género y orientación sexual de la población de 15 años y más. A partir de esta encuesta también se abordó la discriminación en los ámbitos laboral y privado, temas que analizaremos a continuación:

3. Explicación de los variables

Variable Pregunta Respuesta
P9_1 Usted se considera 1- hombre, 2- mujer, 3-tanto hombre como mujer, 3-ni hombre, ni mujer, 5-de otro género
P8_1A Usted considera que su orientación es: 1 lesbiana, 2 gay homosexual, 3 bisexual, 4 otra, por ejemplo: pansexual, asexual, b-blanco

Discriminación laboral

Variable Pregunta Respuesta
P11_4_1 Durante los últimos 12 meses, de agosto de 2020 a la fecha, ¿en el trabajo recibió comentarios ofensivos o burlas? 1-Si, 2-No, 3-No aplica, b-blanco
P11_4_2 Durante los últimos 12 meses, de agosto de 2020 a la fecha, ¿en el trabajo le excluyeron de eventos o actividades sociales? 1-Si, 2-No, 3-No aplica, b-blanco
P11_4_3 Durante los últimos 12 meses, de agosto de 2020 a la fecha, ¿en el trabajo le molestaron o acosaron? 1-Si, 2-No, 3-No aplica, b-blanco
P11_4_4 Durante los últimos 12 meses, de agosto de 2020 a la fecha, ¿en el trabajo recibió un trato desigual respecto a los beneficios, prestaciones laborales o ascensos? 1-Si, 2-No, 3-No aplica, b-blanco
P11_4_5 Durante los últimos 12 meses, de agosto de 2020 a la fecha, ¿en el trabajo le pegaron, agredieron o amenazaron? 1-Si, 2-No, 3-No aplica, b-blanco
P11_5_7 En los últimos cinco años, de agosto de 2016 a la fecha, ¿le han negado injustificadamente el empleo o la oportunidad de trabajar? 1-Si, 2-No, 3-No aplica, b-blanco

Discriminación general

Variable Pregunta Respuesta
P11_6_11 En los últimos 12 meses, de agosto de 2020 a la fecha, ¿ha sido discriminada(o), o menospreciada(o), por su preferencia sexual? 1-Si, 2-no, 9-no especificado
P11_8_1 ¿Usted no toma de la mano a su pareja o le muestra su afecto en público por miedo a sufrir agresión o violencia? 1-Si, 2-No se declaró como opción afirmativa
P11_8_2 ¿Usted no toma de la mano a su pareja o le muestra su afecto en público por ser mal visto socialmente? 1-Si, 2-No se declaró como opción afirmativa
P11_8_3 ¿Usted no toma de la mano a su pareja o le muestra su afecto en público por pena o vergüenza? 1-Si, 2-No se declaró como opción afirmativa
P11_8_4 ¿Usted no toma de la mano a su pareja o le muestra su afecto en público por temor a ser discriminada(o)? 1-Si, 2-No se declaró como opción afirmativa
P11_8_5 ¿Usted no toma de la mano a su pareja o le muestra su afecto en público por falta de costumbre? 1-Si, 2-No se declaró como opción afirmativa

Aquí vemos la distribución de la identidad de género.

table(disc_lab$P9_1)
## 
##     1     2     3     4     5 
## 20005 23932   143    47    62
table(disc_lab$P8_1A)
## 
##    1    2    3    4 
##  241  599 1107  223
View(disc_lab)
ggplot(disc_lab) +
  aes(x = P8_1A) +
  geom_histogram(bins = 30L, fill = "#760492") +
  labs(
    x = "Orientación Sexual",
    y = "Frecuencia",
    title = "Orientación Sexual"
  ) +
  theme_minimal()
## Warning: Removed 42019 rows containing non-finite outside the scale range
## (`stat_bin()`).

table(disc_lab$P8_1A)
## 
##    1    2    3    4 
##  241  599 1107  223
ggplot(disc_lab) +
  aes(x = P9_1) +
  geom_histogram(bins = 30L, fill = "#4682B4") +
  labs(
    x = "Identidad de Género",
    y = "Frecuencia",
    title = "Identidad de Género"
  ) +
  theme_minimal()

table(disc_lab$P9_1)
## 
##     1     2     3     4     5 
## 20005 23932   143    47    62

y de la orientación sexual

table(disc_lab$P8_1A)
## 
##    1    2    3    4 
##  241  599 1107  223

Para considerar más identidades de género y orientación sexual que no sean heterosexuales, la filtración incluye a personas que se consideran mujeres y lesbianas, gays/homosexuales, bisexuales, u otras identidades como pansexuales o asexuales. La filtración es para eliminar a todas las personas que se consideran cis-hombres y heterosexuales.

Depende del grupo, pero en el caso del lesbianismo se entiende que la mayoría son personas que se consideran mujeres, aunque la identificación puede variar entre lesbiana, gay/homosexual, bisexual o pansexual/asexual, es decir, cualquier orientación que no sea heterosexual.

quer_les <- dplyr::filter(
  disc_lab,
  P9_1 %in% c(2, 3, 4, 5),    # Prüft, ob P9_1 in den Werten 2, 3, 4, 5 enthalten ist
  P8_1A %in% c(1, 2, 3, 4),   # Prüft, ob P8_1A in den Werten 1, 2, 3, 4 enthalten ist
  P11_5_7 != 9,               # Prüft, ob P11_5_7 nicht gleich 9 ist
  P11_6_11 != 9,              # Prüft, ob P11_6_11 nicht gleich 9 ist
  P11_8_1 != 9                # Prüft, ob P11_8_1 nicht gleich 9 ist
)



table(quer_les$P8_1A)
## 
##  1  2  3  4 
## 49 19 93 18
ggplot(quer_les) +
  aes(x = P8_1A) +
  geom_histogram(bins = 30L, fill = "#75098F") +
  labs(
    x = "Orientación sexual (no hombres cis)",
    y = "Frecuencia",
    title = "Orientación sexual (no hombres cis)"
  ) +
  theme_minimal()

table(quer_les$P8_1A)
## 
##  1  2  3  4 
## 49 19 93 18

4. Discriminierung laboral

variables <- c("dicriminacion_lab1", "dicriminacion_lab2", "dicriminacion_lab3", 
               "dicriminacion_lab4", "dicriminacion_lab5", "dicriminacion_lab6")

# Berechne die Häufigkeit der '1'-Werte (sí) für jede Variable
freq_si <- sapply(variables, function(var) sum(quer_les[[var]] == 1, na.rm = TRUE))

# Erstelle ein Balkendiagramm
barplot(freq_si, 
        names.arg = variables,  # Namen der Variablen auf der X-Achse
        col = "lightblue",      # Farbe für die Balken
        main = "Confirmación de la experiencia de discriminación laboral de lesbianas", 
        xlab = "Variable", 
        ylab = "Respuestas 'Sí' (1)", 
        ylim = c(0, max(freq_si) + 10))  # Y-Achse dynamisch basierend auf den Häufigkeiten

# Variablen und die entsprechenden Fragen
variables <- c("dicriminacion_lab1", "dicriminacion_lab2", "dicriminacion_lab3", 
               "dicriminacion_lab4", "dicriminacion_lab5", "dicriminacion_lab6")

questions <- c(
  "¿en el trabajo recibió comentarios ofensivos o burlas?",
  "¿en el trabajo le excluyeron de eventos o actividades sociales?",
  "¿en el trabajo le molestaron o acosaron?",
  "¿en el trabajo recibió un trato desigual respecto a los beneficios, prestaciones laborales o ascensos?",
  "¿en el trabajo le pegaron, agredieron o amenazaron?",
  "¿le han negado injustificadamente el empleo o la oportunidad de trabajar?"
)

# Berechne die Häufigkeit der '1'-Werte (sí) und der '0'-Werte (no) für jede Variable
freq_si <- sapply(variables, function(var) sum(quer_les[[var]] == 1, na.rm = TRUE))
freq_no <- sapply(variables, function(var) sum(quer_les[[var]] == 0, na.rm = TRUE))

# Berechne die Gesamtzahl und die Prozente
total_responses <- freq_si + freq_no
percent_si <- round((freq_si / total_responses) * 100, 1)
percent_no <- round((freq_no / total_responses) * 100, 1)

# Kombiniere die Prozente in einer Matrix
percent_matrix <- rbind(percent_si, percent_no)

# Erstelle Tortendiagramme für jede Variable
par(mfrow = c(2, 3), mar = c(5, 5, 2, 2))  # Setze Ränder für bessere Sichtbarkeit
for (i in 1:length(variables)) {
  # Erstelle das Tortendiagramm
  pie(
    percent_matrix[, i], 
    labels = paste(c("Sí", "No"), ": ", percent_matrix[, i], "%"), 
    col = c("lightblue", "salmon"), 
    main = strwrap(questions[i], width = 40),  # Umbrüche einfügen
    cex.main = 0.8  # Verkleinerung der Schriftgröße des Titels
  )
}

# Variablen und die entsprechenden Fragen
variables <- c("dicriminacion_lab1", "dicriminacion_lab2", "dicriminacion_lab3", 
               "dicriminacion_lab4", "dicriminacion_lab5", "dicriminacion_lab6")

questions <- c(
  "¿en el trabajo recibió comentarios ofensivos o burlas?",
  "¿en el trabajo le excluyeron de eventos o actividades sociales?",
  "¿en el trabajo le molestaron o acosaron?",
  "¿en el trabajo recibió un trato desigual respecto a los beneficios, prestaciones laborales o ascensos?",
  "¿en el trabajo le pegaron, agredieron o amenazaron?",
  "¿le han negado injustificadamente el empleo o la oportunidad de trabajar?"
)

# Berechne die Häufigkeit der '1'-Werte (sí) und der '0'-Werte (no) für jede Variable
freq_si <- sapply(variables, function(var) sum(quer_les[[var]] == 1, na.rm = TRUE))
freq_no <- sapply(variables, function(var) sum(quer_les[[var]] == 0, na.rm = TRUE))

# Kombiniere die Häufigkeiten in einer Matrix
freq_matrix <- rbind(freq_si, freq_no)

# Erstelle Tortendiagramme für jede Variable
par(mfrow = c(2, 3), mar = c(5, 5, 2, 2))  # Setze Ränder für bessere Sichtbarkeit
for (i in 1:length(variables)) {
  # Erstelle das Tortendiagramm
  pie(freq_matrix[, i], 
      labels = paste(c("Sí", "No"), ": ", freq_matrix[, i]), 
      col = c("lightblue", "salmon"), 
      main = strwrap(questions[i], width = 40),  # Umbrüche einfügen
      cex.main = 0.8)  # Verkleinerung der Schriftgröße des Titels
}

# Variable und entsprechende Fragen
variables <- c("dicriminacion_lab1", "dicriminacion_lab2", "dicriminacion_lab3", 
               "dicriminacion_lab4", "dicriminacion_lab5", "dicriminacion_lab6")

questions <- c(
  "¿en el trabajo recibió comentarios ofensivos o burlas?",
  "¿en el trabajo le excluyeron de eventos o actividades sociales?",
  "¿en el trabajo le molestaron o acosaron?",
  "¿en el trabajo recibió un trato desigual respecto a los beneficios, prestaciones laborales o ascensos?",
  "¿en el trabajo le pegaron, agredieron o amenazaron?",
  "¿le han negado injustificadamente el empleo o la oportunidad de trabajar?"
)

# Berechne die Häufigkeit der '1'-Werte (sí) und der '0'-Werte (no) für jede Variable
freq_si <- sapply(variables, function(var) sum(quer_les[[var]] == 1, na.rm = TRUE))
freq_no <- sapply(variables, function(var) sum(quer_les[[var]] == 0, na.rm = TRUE))

# Berechne die Gesamtanzahl der Beobachtungen für jede Variable
total <- freq_si + freq_no

# Berechne die prozentuale Häufigkeit
percent_si <- (freq_si / total) * 100
percent_no <- (freq_no / total) * 100

# Kombiniere die Prozentangaben in einer Matrix
percent_matrix <- rbind(percent_si, percent_no)

# Erstelle Tortendiagramme für jede Variable
par(mfrow = c(2, 3), mar = c(5, 5, 2, 2))  # Setze Ränder für bessere Sichtbarkeit
for (i in 1:length(variables)) {
  # Erstelle das Tortendiagramm
  pie(percent_matrix[, i], 
      labels = paste(c("Sí", "No"), ": ", round(percent_matrix[, i], 1), "%"), 
      col = c("lightblue", "salmon"), 
      main = strwrap(questions[i], width = 40),  # Umbrüche aAdding interpretable line breaks Haupttitel
      cex.main = 0.8)  # Verkleinerung der Schriftgröße des Titels
}

table(quer_les$dicriminacion_lab1)
## 
##  0  1 
## 89 20
variables <- c("dicriminacion_lab1", "dicriminacion_lab2", "dicriminacion_lab3", 
               "dicriminacion_lab4", "dicriminacion_lab5", "dicriminacion_lab6")


freq_si <- sapply(variables, function(var) sum(quer_les[[var]] == 1, na.rm = TRUE))
freq_no <- sapply(variables, function(var) sum(quer_les[[var]] == 0, na.rm = TRUE))


freq_matrix <- rbind(freq_no, freq_si)  


barplot(freq_matrix, 
        beside = TRUE,  
        col = c("salmon", "lightblue"),  
        names.arg = variables,  
        main = "Comparación de los porcentajes de 'Sí' (1) y 'No' (0)",  
        xlab = "Variable", 
        ylab = "Frecuencia", 
        legend.text = c("No", "Sí"),  
        ylim = c(0, max(freq_matrix) + 50))  

5. Discriminación general

Aunque la investigación se centra en la discriminación hacia las mujeres lesbianas, también se considera importante mostrar cómo es el mundo, donde existe discriminación contra las mujeres no heterosexuales en general.

# Variablen, die du vergleichen möchtest
variables <- c("dicriminacion1", "dicriminacion2", "dicriminacion3", 
               "dicriminacion4", "dicriminacion5", "dicriminacion6")

# Berechne die Häufigkeit der '1'-Werte (Sí) und '0'-Werte (No) für jede Variable
freq_si <- sapply(variables, function(var) sum(quer_les[[var]] == 1, na.rm = TRUE))
freq_no <- sapply(variables, function(var) sum(quer_les[[var]] == 0, na.rm = TRUE))

# Berechne die Verhältnisse (prozentuale Anteile) für Sí und No
total_responses <- freq_si + freq_no
ratio_si <- freq_si / total_responses
ratio_no <- freq_no / total_responses

# Erstelle eine Matrix mit den Verhältnissen
ratio_matrix <- rbind(ratio_no, ratio_si)

# Erstelle das Balkendiagramm der Verhältnisse
barplot(ratio_matrix, 
        beside = TRUE,  # Nebeneinander darstellen
        col = c("salmon", "lightblue"),  # Farben für No und Sí
        names.arg = variables,  # Variablennamen auf der x-Achse
        main = "Comparación de los porcentajes de 'Sí' (1) y 'No' (0)",  # Titel
        xlab = "Variable", 
        ylab = "Relación", 
        legend.text = c("No", "Sí"),  # Legende
        ylim = c(0, 1))  # Y-Achse für Verhältnisse zwischen 0 und 1

# Variablen, die du vergleichen möchtest
variables <- c("dicriminacion1", "dicriminacion2", "dicriminacion3", 
               "dicriminacion4", "dicriminacion5", "dicriminacion6")

# Berechne die Häufigkeit der '1'-Werte (Sí) für jede Variable
freq_si <- sapply(variables, function(var) sum(quer_les[[var]] == 1, na.rm = TRUE))

# Erstelle das Balkendiagramm nur für die Sí-Antworten
barplot(freq_si, 
        col = "lightblue",  # Farbe für Sí-Antworten
        names.arg = variables,  # Variablennamen auf der x-Achse
        main = "Confirmación de la experiencia de discriminación laboral de lesbianas",  # Titel
        xlab = "Variable", 
        ylab = "Respuestas Si (1)", 
        ylim = c(0, max(freq_si) + 50))  # Y-Achse dynamisch basierend auf den Häufigkeiten

# Variablen und die zugehörigen Fragen
questions <- c(
  "¿ha sido discriminada(o), o menospreciada(o), por su preferencia sexual?", 
  "¿Usted no toma de la mano a su pareja o le muestra su afecto en público por miedo a sufrir agresión o violencia?", 
  "¿Usted no toma de la mano a su pareja o le muestra su afecto en público por ser mal visto socialmente?", 
  "¿Usted no toma de la mano a su pareja o le muestra su afecto en público por pena o vergüenza?", 
  "¿Usted no toma de la mano a su pareja o le muestra su afecto en público por temor a ser discriminada(o)?", 
  "¿Usted no toma de la mano a su pareja o le muestra su afecto en público por falta de costumbre?"
)

# Variablen, die du vergleichen möchtest
variables <- c("dicriminacion1", "dicriminacion2", "dicriminacion3", 
               "dicriminacion4", "dicriminacion5", "dicriminacion6")

# Erstelle eine Funktion, um für jede Variable ein Tortendiagramm zu erstellen
par(mfrow = c(2, 3))  # Zwei Reihen und drei Spalten für die Diagramme

for (i in 1:length(variables)) {
  var <- variables[i]
  question <- questions[i]
  
  # Breche die Frage in mehrere Zeilen
  wrapped_question <- strwrap(question, width = 40)  # 40 Zeichen pro Zeile
  
  # Berechne die Häufigkeit der '1' (Sí) und '0' (No) für jede Variable
  freq <- table(quer_les[[var]])
  
  # Erstelle das Tortendiagramm für jede Variable
  pie(freq, 
      main = paste(wrapped_question, collapse = "\n"),  # Frage in mehreren Zeilen als Titel
      col = c("lightblue", "salmon"),  # Farben für Sí (1) und No (0)
      labels = paste(c("No", "Sí"), "\n", round(100 * freq / sum(freq), 1), "%"),  # Prozentsätze anzeigen
      cex.main = 0.8)  # Verkleinere die Schriftgröße des Titels (Fragen)
}

#install.packages("sf")
#install.packages("ggplot2")
#install.packages("dplyr")
# Benötigte Bibliotheken laden
library(sf)
## Warning: Paket 'sf' wurde unter R Version 4.4.2 erstellt
## Linking to GEOS 3.12.2, GDAL 3.9.3, PROJ 9.4.1; sf_use_s2() is TRUE
library(ggplot2)
library(dplyr)

# Shapefile lesen
mexmex <- st_read("C:/Master/3. Semester/R/Dataset/gadm41_MEX.gpkg", layer = "ADM_ADM_1")
## Reading layer `ADM_ADM_1' from data source 
##   `C:\Master\3. Semester\R\Dataset\gadm41_MEX.gpkg' using driver `GPKG'
## Simple feature collection with 32 features and 11 fields
## Geometry type: MULTIPOLYGON
## Dimension:     XY
## Bounding box:  xmin: -118.3665 ymin: 14.53507 xmax: -86.71074 ymax: 32.71863
## Geodetic CRS:  WGS 84
# Daten zur Einführung der Ehe für alle
matrimonio_data <- data.frame(
  estado = c("Ciudad de Mexico", "Quintana Roo", "Coahuila", "Chihuahua", "Nayarit", 
             "Campeche", "Michoacán", "Morelos", "Colima", "Chiapas", "Nuevo León", 
             "San Luis Potosí", "Hidalgo", "Baja California Sur", "Oaxaca", "Puebla", 
             "Tlaxcala", "Sinaloa", "Baja California", "Yucatán", "Querétaro", "Sonora", 
             "Zacatecas", "Guanajuato", "Jalisco", "Veracruz", "Durango", "Estado de México", 
             "Tabasco", "Guerrero", "Tamaulipas"),
  jahr = c(2010, 2012, 2014, 2015, 2015, 2016, 2016, 2016, 2016, 2017, 2019, 2019, 2019, 
           2019, 2019, 2020, 2020, 2021, 2021, 2021, 2021, 2021, 2021, 2021, 2022, 2022, 
           2022, 2022, 2022, 2022, 2022)
)

# Daten mit Shapefile verbinden
mexmex <- mexmex %>%
  left_join(matrimonio_data, by = c("NAME_1" = "estado"))

# Karte erstellen
ggplot(data = mexmex) +
  geom_sf(aes(fill = jahr)) +
  scale_fill_viridis_c(option = "plasma", na.value = "grey50", name = "Ehe für alle") +
  labs(
    title = "Einführung der Ehe für alle in Mexiko",
    subtitle = "Jahr der Einführung in den Bundesstaaten",
    caption = "Datenquelle: INEGI"
  ) +
  theme_minimal()

Matrimonio igualitario

# Erstelle eine Datenstruktur für die verschiedenen Jahre und dazugehörigen Staaten
matrimonio_igualitario <- data.frame(
  Jahr = c(2010, 2012, 2014, 2015, 2016, 2017, 2019, 2020, 2021, 2022),
  Estados = c(
    "Ciudad de México",
    "Quintana Roo",
    "Coahuila",
    "Chihuahua, Nayarit",
    "Campeche, Michoacán, Morelos, Colima",
    "Chiapas",
    "Nuevo León, San Luis Potosí, Hidalgo, Baja California Sur, Aguascalientes, Oaxaca",
    "Puebla, Tlaxcala",
    "Sinaloa, Baja California, Yucatán, Querétaro, Sonora, Zacatecas, Guanajuato",
    "Jalisco, Veracruz, Durango, Estado de México, Tabasco, Guerrero, Tamaulipas"
  )
)

# Tabelle anzeigen
print(matrimonio_igualitario)
##    Jahr
## 1  2010
## 2  2012
## 3  2014
## 4  2015
## 5  2016
## 6  2017
## 7  2019
## 8  2020
## 9  2021
## 10 2022
##                                                                              Estados
## 1                                                                   Ciudad de México
## 2                                                                       Quintana Roo
## 3                                                                           Coahuila
## 4                                                                 Chihuahua, Nayarit
## 5                                               Campeche, Michoacán, Morelos, Colima
## 6                                                                            Chiapas
## 7  Nuevo León, San Luis Potosí, Hidalgo, Baja California Sur, Aguascalientes, Oaxaca
## 8                                                                   Puebla, Tlaxcala
## 9        Sinaloa, Baja California, Yucatán, Querétaro, Sonora, Zacatecas, Guanajuato
## 10       Jalisco, Veracruz, Durango, Estado de México, Tabasco, Guerrero, Tamaulipas
# Benötigte Bibliotheken laden
library(sf)
library(ggplot2)
library(dplyr)

# Shapefile lesen
mexmex <- st_read("C:/Master/3. Semester/R/Dataset/gadm41_MEX.gpkg", layer = "ADM_ADM_1")
## Reading layer `ADM_ADM_1' from data source 
##   `C:\Master\3. Semester\R\Dataset\gadm41_MEX.gpkg' using driver `GPKG'
## Simple feature collection with 32 features and 11 fields
## Geometry type: MULTIPOLYGON
## Dimension:     XY
## Bounding box:  xmin: -118.3665 ymin: 14.53507 xmax: -86.71074 ymax: 32.71863
## Geodetic CRS:  WGS 84
# Daten zur Einführung der Ehe für alle
matrimonio_data <- data.frame(
  estado = c("Ciudad de Mexico", "Quintana Roo", "Coahuila", "Chihuahua", "Nayarit", 
             "Campeche", "Michoacán", "Morelos", "Colima", "Chiapas", "Nuevo León", 
             "San Luis Potosí", "Hidalgo", "Baja California Sur", "Oaxaca", "Puebla", 
             "Tlaxcala", "Sinaloa", "Baja California", "Yucatán", "Querétaro", "Sonora", 
             "Zacatecas", "Guanajuato", "Jalisco", "Veracruz", "Durango", "Estado de México", 
             "Tabasco", "Guerrero", "Tamaulipas"),
  jahr = c(2010, 2012, 2014, 2015, 2015, 2016, 2016, 2016, 2016, 2017, 2019, 2019, 2019, 
           2019, 2019, 2020, 2020, 2021, 2021, 2021, 2021, 2021, 2021, 2021, 2022, 2022, 
           2022, 2022, 2022, 2022, 2022)
)

# Daten mit Shapefile verbinden
mexmex <- mexmex %>%
  left_join(matrimonio_data, by = c("NAME_1" = "estado"))

# Farben definieren
farben <- c("2010" = "#f7fbff", "2012" = "#deebf7", "2014" = "#c6dbef", "2015" = "#9ecae1",
            "2016" = "#6baed6", "2017" = "#4292c6", "2019" = "#2171b5", "2020" = "#08519c",
            "2021" = "#08306b", "2022" = "#08306b")

# Karte erstellen
ggplot(data = mexmex) +
  geom_sf(aes(fill = as.factor(jahr)), color = "black") +
  scale_fill_manual(values = farben, na.value = "grey50", name = "Ehe für alle") +
  labs(
    title = "Einführung der Ehe für alle in Mexiko",
    subtitle = "Jahr der Einführung in den Bundesstaaten",
    caption = "Datenquelle: INEGI",
    fill = "Jahr"
  ) +
  theme_minimal() +
  theme(legend.position = "bottom",
        plot.title = element_text(hjust = 0.5, size = 16, face = "bold"),
        plot.subtitle = element_text(hjust = 0.5, size = 12))

# Benötigte Bibliotheken laden
library(sf)
library(ggplot2)
library(dplyr)

# Shapefile lesen
mexmex <- st_read("C:/Master/3. Semester/R/Dataset/gadm41_MEX.gpkg", layer = "ADM_ADM_1")
## Reading layer `ADM_ADM_1' from data source 
##   `C:\Master\3. Semester\R\Dataset\gadm41_MEX.gpkg' using driver `GPKG'
## Simple feature collection with 32 features and 11 fields
## Geometry type: MULTIPOLYGON
## Dimension:     XY
## Bounding box:  xmin: -118.3665 ymin: 14.53507 xmax: -86.71074 ymax: 32.71863
## Geodetic CRS:  WGS 84
# Daten zur Einführung der Ehe für alle
matrimonio_data <- data.frame(
  estado = c("Ciudad de Mexico", "Quintana Roo", "Coahuila", "Chihuahua", "Nayarit", 
             "Campeche", "Michoacán", "Morelos", "Colima", "Chiapas", "Nuevo León", 
             "San Luis Potosí", "Hidalgo", "Baja California Sur", "Oaxaca", "Aguascalientes",
             "Puebla", "Tlaxcala", "Sinaloa", "Baja California", "Yucatán", "Querétaro", 
             "Sonora", "Zacatecas", "Guanajuato", "Jalisco", "Veracruz", "Durango", 
             "Estado de México", "Tabasco", "Guerrero", "Tamaulipas"),
  jahr = c(2010, 2012, 2014, 2015, 2015, 2016, 2016, 2016, 2016, 2017, 2019, 2019, 2019, 
           2019, 2019, 2019, 2020, 2020, 2021, 2021, 2021, 2021, 2021, 2021, 2021, 2022, 
           2022, 2022, 2022, 2022, 2022, 2022)
)

# Daten mit Shapefile verbinden
mexmex <- mexmex %>%
  left_join(matrimonio_data, by = c("NAME_1" = "estado"))

# Farben definieren
farben <- c("2010" = "#FFD700", "2012" = "#FFA500", "2014" = "#800080", "2015" = "#FF0000",
            "2016" = "#FF69B4", "2017" = "#0000FF", "2019" = "#008000", "2020" = "#FFFF00",
            "2021" = "#FF6347", "2022" = "#6A5ACD")

# Karte erstellen
ggplot(data = mexmex) +
  geom_sf(aes(fill = as.factor(jahr)), color = "black") +
  scale_fill_manual(values = farben, na.value = "grey50", name = "Ehe für alle") +
  labs(
    title = "Einführung der Ehe für alle in Mexiko",
    subtitle = "Jahr der Einführung in den Bundesstaaten",
    caption = "Datenquelle: INEGI",
    fill = "Jahr"
  ) +
  theme_minimal() +
  theme(legend.position = "bottom",
        plot.title = element_text(hjust = 0.5, size = 16, face = "bold"),
        plot.subtitle = element_text(hjust = 0.5, size = 12))

# Tabelle der Korrelationen erstellen
# install.packages("viridisLite")
library(viridisLite)
## Warning: Paket 'viridisLite' wurde unter R Version 4.4.2 erstellt
# install.packages("dplyr")
library(dplyr)

# Daten zur Einführung der Ehe für alle
correlation_data_ecofis <- data.frame(
  state_abbreviation = c("AGS", "BC", "BCS", "CAM", "CHIS", "CHIH", "COAH", 
                         "COL", "DGO", "GTO", "GRO", "HGO", "JAL", "MEX", 
                         "CDMX", "MICH", "MOR", "NAY", "NL", "OAX", "PUE", 
                         "QRO", "QR", "SLP", "SIN", "SON", "TAB", "TAMPS", 
                         "TLAX", "VER", "YUC", "ZAC"),
  correlation_ecofis_value = c(2019, 2021, 2019, 2016, 2017, 2015, 2014, 2016, 2022, 2021, 2022, 2019, 2022, 2022, 2010, 2016, 2016, 2015, 2019, 2019, 2020, 2021, 2012, 2019, 2021, 2021, 2022, 2022, 2020, 2022, 2021, 2021)
)

# Bundesstaaten-Namen anpassen
correlation_data_ecofis <- correlation_data_ecofis %>%
  dplyr::mutate(NAME_1 = dplyr::case_when(
    state_abbreviation == "AGS" ~ "Aguascalientes",
    state_abbreviation == "BC" ~ "Baja California",
    state_abbreviation == "BCS" ~ "Baja California Sur",
    state_abbreviation == "CAM" ~ "Campeche",
    state_abbreviation == "CHIS" ~ "Chiapas",
    state_abbreviation == "CHIH" ~ "Chihuahua",
    state_abbreviation == "COAH" ~ "Coahuila",
    state_abbreviation == "COL" ~ "Colima",
    state_abbreviation == "DGO" ~ "Durango",
    state_abbreviation == "GTO" ~ "Guanajuato",
    state_abbreviation == "GRO" ~ "Guerrero",
    state_abbreviation == "HGO" ~ "Hidalgo",
    state_abbreviation == "JAL" ~ "Jalisco",
    state_abbreviation == "MEX" ~ "Estado de México",
    state_abbreviation == "CDMX" ~ "Ciudad de Mexico",
    state_abbreviation == "MICH" ~ "Michoacán",
    state_abbreviation == "MOR" ~ "Morelos",
    state_abbreviation == "NAY" ~ "Nayarit",
    state_abbreviation == "NL" ~ "Nuevo León",
    state_abbreviation == "OAX" ~ "Oaxaca",
    state_abbreviation == "PUE" ~ "Puebla",
    state_abbreviation == "QRO" ~ "Querétaro",
    state_abbreviation == "QR" ~ "Quintana Roo",
    state_abbreviation == "SLP" ~ "San Luis Potosí",
    state_abbreviation == "SIN" ~ "Sinaloa",
    state_abbreviation == "SON" ~ "Sonora",
    state_abbreviation == "TAB" ~ "Tabasco",
    state_abbreviation == "TAMPS" ~ "Tamaulipas",
    state_abbreviation == "TLAX" ~ "Tlaxcala",
    state_abbreviation == "VER" ~ "Veracruz",
    state_abbreviation == "YUC" ~ "Yucatán",
    state_abbreviation == "ZAC" ~ "Zacatecas"
  ))

# Benötigte Bibliotheken laden
library(dplyr)
library(sf)
library(ggplot2)
library(viridis)  # viridis Bibliothek laden
## Warning: Paket 'viridis' wurde unter R Version 4.4.2 erstellt
# Geodaten laden
mexmex <- st_read("C:/Master/3. Semester/R/Dataset/gadm41_MEX.gpkg", layer = "ADM_ADM_1")
## Reading layer `ADM_ADM_1' from data source 
##   `C:\Master\3. Semester\R\Dataset\gadm41_MEX.gpkg' using driver `GPKG'
## Simple feature collection with 32 features and 11 fields
## Geometry type: MULTIPOLYGON
## Dimension:     XY
## Bounding box:  xmin: -118.3665 ymin: 14.53507 xmax: -86.71074 ymax: 32.71863
## Geodetic CRS:  WGS 84
# Geodaten mit Korrelationen verbinden
mexmex <- mexmex %>%
  left_join(correlation_data_ecofis, by = c("NAME_1" = "NAME_1"))

# Überprüfen, ob die Zusammenführung erfolgreich war
missing_values <- mexmex %>% filter(is.na(correlation_ecofis_value))
print(paste("Bundesstaaten ohne Korrelation:", missing_values$NAME_1))
## [1] "Bundesstaaten ohne Korrelation: Distrito Federal"
## [2] "Bundesstaaten ohne Korrelation: México"
# Karte erstellen
ggplot(mexmex) +
  geom_sf(aes(fill = correlation_ecofis_value)) +
  scale_fill_viridis_c(option = "plasma") +  # Farbschema ändern
  labs(
    title = "Matrimonio igualitario en México",
    subtitle = "Año de introducción por estado",
    caption = "Fuente: Cálculos propios basados en datos de la encuesta del INEGI",
    fill = "Año"
  ) +
  theme_minimal() +
  theme(
    plot.title = element_text(hjust = 0.5, size = 15),  # Titel zentrieren und Größe anpassen
    plot.subtitle = element_text(hjust = 0.5, size = 10),  # Untertitel zentrieren und Größe anpassen
    plot.caption = element_text(hjust = 0.5, size = 8)  # Quellenangabe zentrieren und Größe anpassen
  )

# Tabelle der Korrelationen erstellen
#install.packages("viridisLite")
library(viridisLite)

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

# Daten zur Einführung der Ehe für alle
correlation_data_ecofis <- data.frame(
  state_abbreviation = c("AGS", "BC", "BCS", "CAM", "CHIS", "CHIH", "COAH", 
                         "COL", "DGO", "GTO", "GRO", "HGO", "JAL", "MEX", 
                         "CDMX", "MICH", "MOR", "NAY", "NL", "OAX", "PUE", 
                         "QRO", "QR", "SLP", "SIN", "SON", "TAB", "TAMPS", 
                         "TLAX", "VER", "YUC", "ZAC"),
  correlation_ecofis_value = c(2019, 2021, 2019, 2016, 2017, 2015, 2014, 2016, 2022, 2021, 2022, 2019, 2022, 2022, 2010, 2016, 2016, 2015, 2019, 2019, 2020, 2021, 2012, 2019, 2021, 2021, 2022, 2022, 2020, 2022, 2021, 2021)
)

# Bundesstaaten-Namen anpassen
correlation_data_ecofis <- correlation_data_ecofis %>%
  dplyr::mutate(NAME_1 = dplyr::case_when(
    state_abbreviation == "AGS" ~ "Aguascalientes",
    state_abbreviation == "BC" ~ "Baja California",
    state_abbreviation == "BCS" ~ "Baja California Sur",
    state_abbreviation == "CAM" ~ "Campeche",
    state_abbreviation == "CHIS" ~ "Chiapas",
    state_abbreviation == "CHIH" ~ "Chihuahua",
    state_abbreviation == "COAH" ~ "Coahuila",
    state_abbreviation == "COL" ~ "Colima",
    state_abbreviation == "DGO" ~ "Durango",
    state_abbreviation == "GTO" ~ "Guanajuato",
    state_abbreviation == "GRO" ~ "Guerrero",
    state_abbreviation == "HGO" ~ "Hidalgo",
    state_abbreviation == "JAL" ~ "Jalisco",
    state_abbreviation == "MEX" ~ "Estado de México",
    state_abbreviation == "CDMX" ~ "Ciudad de Mexico",
    state_abbreviation == "MICH" ~ "Michoacán",
    state_abbreviation == "MOR" ~ "Morelos",
    state_abbreviation == "NAY" ~ "Nayarit",
    state_abbreviation == "NL" ~ "Nuevo León",
    state_abbreviation == "OAX" ~ "Oaxaca",
    state_abbreviation == "PUE" ~ "Puebla",
    state_abbreviation == "QRO" ~ "Querétaro",
    state_abbreviation == "QR" ~ "Quintana Roo",
    state_abbreviation == "SLP" ~ "San Luis Potosí",
    state_abbreviation == "SIN" ~ "Sinaloa",
    state_abbreviation == "SON" ~ "Sonora",
    state_abbreviation == "TAB" ~ "Tabasco",
    state_abbreviation == "TAMPS" ~ "Tamaulipas",
    state_abbreviation == "TLAX" ~ "Tlaxcala",
    state_abbreviation == "VER" ~ "Veracruz",
    state_abbreviation == "YUC" ~ "Yucatán",
    state_abbreviation == "ZAC" ~ "Zacatecas"
  ))

# Benötigte Bibliotheken laden
library(dplyr)
library(sf)
library(ggplot2)
library(viridis)  # viridis Bibliothek laden

# Geodaten laden
mexmex <- st_read("C:/Master/3. Semester/R/Dataset/gadm41_MEX.gpkg", layer = "ADM_ADM_1")
## Reading layer `ADM_ADM_1' from data source 
##   `C:\Master\3. Semester\R\Dataset\gadm41_MEX.gpkg' using driver `GPKG'
## Simple feature collection with 32 features and 11 fields
## Geometry type: MULTIPOLYGON
## Dimension:     XY
## Bounding box:  xmin: -118.3665 ymin: 14.53507 xmax: -86.71074 ymax: 32.71863
## Geodetic CRS:  WGS 84
# Geodaten mit Korrelationen verbinden
mexmex <- mexmex %>%
  left_join(correlation_data_ecofis, by = c("NAME_1" = "NAME_1"))

# Überprüfen, ob die Zusammenführung erfolgreich war
missing_values <- mexmex %>% filter(is.na(correlation_ecofis_value))
print(paste("Bundesstaaten ohne Korrelation:", missing_values$NAME_1))
## [1] "Bundesstaaten ohne Korrelation: Distrito Federal"
## [2] "Bundesstaaten ohne Korrelation: México"
# Farben definieren
farben <- c("2012" = "#FFA500", "2010" = "#FF69B4","2014" = "#800080", "2015" = "#FF0000",
            "2016" = "#FFD700", "2017" = "#0000FF", "2019" = "#008000", "2020" = "#FFFF00",
            "2021" = "#FF6347", "2022" = "#C71585")

# Karte erstellen
ggplot(mexmex) +
  geom_sf(aes(fill = as.factor(correlation_ecofis_value)), color = "black") +
  scale_fill_manual(values = farben, name = "Año") +
  labs(
    title = "Matrimonio igualitario en México",
    subtitle = "Año de introducción por estado",
    caption = "Fuente: Cálculos propios basados en datos de la encuesta del INEGI",
    fill = "Año"
  ) +
  theme_minimal() +
  theme(
    legend.position = "bottom",
    plot.title = element_text(hjust = 0.5, size = 15),  # Titel zentrieren und Größe anpassen
    plot.subtitle = element_text(hjust = 0.5, size = 10),  # Untertitel zentrieren und Größe anpassen
    plot.caption = element_text(hjust = 0.5, size = 8)  # Quellenangabe zentrieren und Größe anpassen
  )