Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ---
- title: "Racismo"
- author: "Jorge Moreno"
- date: "2024-01-11"
- output: pdf_document
- ---
- ```{r setup, include=FALSE}
- knitr::opts_chunk$set(echo = TRUE)
- ```
- ```{r}
- library(readxl)
- library(ggplot2)
- library(plotly)
- library(dplyr)
- detenidos=read_excel("D:/Descargas/DATABASES/detenidos.xlsx")
- robos=read_excel("D:/Descargas/DATABASES/robos.xlsx")
- goneppl=read_excel("D:/Descargas/DATABASES/goneppl.xlsx")
- #Eliminar edades sin dato para que no estorben
- detenidos2=detenidos[detenidos$edad!="SIN DATO",]
- #El libro solo habla de clasificación en 2 categorías, así que sorry intersexuales
- detenidos2=detenidos2[detenidos2$sexo!="INTERSEXUAL",]
- detenidos2=detenidos2[,c(5,6,10)]
- detenidos2$sexo<-as.factor(detenidos2$sexo)
- detenidos2$edad=as.numeric(detenidos2$edad)
- detenidos2$numero_detenciones=as.numeric(detenidos2$numero_detenciones)
- #ggplot(data=detenidos,aes(edad,numero_detenciones,color=sexo))+geom_point()+theme_classic()
- Hombres=filter(detenidos2,sexo=="HOMBRE")
- Mujeres=filter(detenidos2,sexo=="MUJER")
- mediaH=apply(Hombres[,-2],2,mean)
- mediaM=apply(Mujeres[,-2],2,mean)
- covH=cov(Hombres[,-2])
- covM=cov(Mujeres[,-2])
- nH=length(Hombres)
- nM=length(Mujeres)
- spooled=(((nH-1)/(nH+nM-2))*covH)+(((nM-1)/(nH+nM-2))*covM)
- spooled
- spooledinv<-solve(spooled)
- spooledinv
- haty<-(mediaH-mediaM)%*%spooledinv
- haty
- bary1<-(haty)%*%mediaH
- bary1
- bary2<-(haty)%*%mediaM
- bary2
- x<-c(bary1,bary2)
- meany<-mean(x)
- meany
- clas=function(group,vector,crit){
- data=as.matrix(group[,c(1,3)])
- n=length(data[,1])
- v=matrix(c(rep(vector[1], n), rep(vector[2], n)), nrow = 2,byrow=T)
- critval=diag(data%*%v)
- critval2=critval>crit
- return(critval2)
- #TRUE significa va a la población 1. FALSE A LA 2
- }
- #Selección de muestra para clasificar:
- HombresMuestra=Hombres[sample(100),]
- MujeresMuestra=Mujeres[sample(100),]
- muestra=rbind(HombresMuestra,MujeresMuestra)
- for (i in 1:nrow(muestra)){
- verdad=clas(muestra[i,],haty,meany)
- if(verdad){
- muestra[i,2]="HOMBRE"
- } else{
- muestra[i,2]="MUJER"
- }
- }
- ggplot(data=muestra,aes(edad,numero_detenciones,color=sexo))+geom_point()+theme_classic()
- ```
- El comportamiento discriminante probablemente se debe a que los hombres suelen ser más sospechosos al momento de detener a una persona, además de ser más propensos a cometer actos delictivos, lo que lleva a un mayor número de detenciones que las mujeres.
- # Conglomerados
- Se ha decidido agrupar a las provincias por el número de detenidos que lleven armas. Por ello, dos provincias serán más parecidas mientras menor sea el valor absoluto de la diferencia del número de individuos que lleven armas.
- ```{r}
- #Clusters
- #Eliminar detenciones en mar territorial, pues no son de una provincia:
- detenidos3=detenidos[detenidos$nombre_provincia!="MAR TERRITORIAL",]
- #Conservar solo observaciones que usen armas:
- detenidos3=detenidos3[detenidos3$tipo_arma!="NINGUNA",]
- detProv=table(detenidos3$nombre_provincia)
- names(detProv)=c("AZU","BOL","CAÑ","CAR","CHI","COT","ORO","ESM","GAL","GUA","IMB","LOJ","RIO","MAN","MOR","NAP","ORE","PAS","PIC","SEL","SDO","SUC","TUN","ZAM")
- matrizR=matrix(0,nrow=length(detProv),ncol=length(detProv),dimnames=list(names(detProv),names(detProv)))
- for (i in 1:length(detProv)) {
- for (j in 1:length(detProv)) {
- matrizR[i,j]=abs(detProv[i]- detProv[j])
- }
- }
- matrizRE=scale(matrizR)
- distR=as.dist(matrizRE)
- clusterado=hclust(distR,method="complete")
- plot(clusterado,hang=0.5,main="Provincias por peligro",xlab="Provincias",ylab="Distancia")
- rect.hclust(clusterado, k = 5, border = "red")
- ```
- A continuación, se agrupan distritos de Guayaquil de acuerdo a los robos a unidades económicas. Dos distritos son más parecidos mientras menor sea la diferencia entre sus cantidades de robos a unidades económicas.
- ```{r}
- #Cluster robos
- #Conservar solo observaciones de robos a unidades económicas:
- robos2=robos[robos$`Subtipo de Incidente`=="Robo a unidades económicas",]
- robDist=table(robos2$Distrito)
- matrizR2=matrix(0,nrow=length(robDist),ncol=length(robDist),dimnames=list(names(robDist),names(robDist)))
- for (i in 1:length(robDist)) {
- for (j in 1:length(robDist)) {
- matrizR2[i,j]=abs(robDist[i]-robDist[j])
- }
- }
- matrizRE2=scale(matrizR2)
- distR2=as.dist(matrizRE2)
- clusterado2=hclust(distR2,method="average")
- plot(clusterado2,hang=0.5,main="Distritos más peligrosos para negocios",xlab="Distritos",ylab="Distancia")
- rect.hclust(clusterado, k = 4, border = "blue")
- ```
- Para los desaparecidos, se agrupará los mese de acuerdo al número de personas encontradas. Se considera que dos meses son similares mientras menor sea la diferencia entre sus cantidades de personas encontradas.
- ```{r}
- #cluster goneppl
- #Quitar motivos sin dato
- goneppl2=goneppl[goneppl$`Motivo Desaparción`!="SIN _DATO",]
- #Conservar solo los encontrados:
- goneppl2=goneppl2[goneppl2$`Situación Actual`=="ENCONTRADO",]
- gonemotif=table(goneppl2$`Motivo Desaparción`)
- names(gonemotif)=c("Discapacidades","Extravío","Detención","Perdido","Prob. Econ.","Prob. Acad.","Prob. Fam.","Prob. Psic.","Prob. Soc.")
- matrizR3=matrix(0,nrow=length(gonemotif),ncol=length(gonemotif),dimnames=list(names(gonemotif),names(gonemotif)))
- for (i in 1:length(gonemotif)) {
- for (j in 1:length(gonemotif)) {
- matrizR3[i,j]=abs(gonemotif[i]-gonemotif[j])
- }
- }
- matrizRE3=scale(matrizR3)
- distR3=as.dist(matrizRE3)
- clusterado3=hclust(distR3,method="complete")
- plot(clusterado3,hang=0.5,main="Motivos con los que más se encuentra al desaparecido",xlab="Motivos",ylab="Distancia")
- rect.hclust(clusterado, k = 4, border = "green")
- ```
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement