25.2: Ejemplo de delitos de odio
- Page ID
- 150803
Ahora veremos los datos de delitos de odio del paquete de cincotreinta y ocho
. Primero necesitamos preparar los datos deshaciéndonos de los valores de NA y creando abreviaturas para los estados. Para hacer esto último, utilizamos las variables state.abb
y state.name
que vienen con R junto con la función match ()
que hará coincidir los nombres de estado en la variable hate_crimes
con los de la lista.
hateCrimes <-
hate_crimes %>%
mutate(state_abb = state.abb[match(state,state.name)]) %>%
drop_na(avg_hatecrimes_per_100k_fbi, gini_index)
# manually fix the DC abbreviation
hateCrimes$state_abb[hateCrimes$state=="District of Columbia"] <- 'DC'
##
## Pearson's product-moment correlation
##
## data: hateCrimes$avg_hatecrimes_per_100k_fbi and hateCrimes$gini_index
## t = 3, df = 48, p-value = 0.001
## alternative hypothesis: true correlation is greater than 0
## 95 percent confidence interval:
## 0.21 1.00
## sample estimates:
## cor
## 0.42
Recuerda que también podemos calcular el valor p usando aleatorización. A esto, barajamos el orden de una de las variables, de manera que rompemos el vínculo entre las variables X e Y —haciendo efectivamente cierta la hipótesis nula (que la correlación es menor o igual a cero). Aquí primero crearemos una función que tome en dos variables, baraja el orden de una de ellas (sin reemplazo) y luego devuelve la correlación entre esa variable barajada y la copia original de la segunda variable.
Ahora tomamos la distribución de las correlaciones observadas después del barajado y las comparamos con nuestra correlación observada, para obtener la probabilidad empírica de nuestros datos observados bajo la hipótesis nula.
mean(shuffleDist$cor >corr_results$estimate )
## [1] 0.0066
Este valor es bastante cercano (aunque un poco más grande) al obtenido usando cor.test ()
.