Advertisement
kukis03

Análisis discriminante

Jan 11th, 2024
22
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.25 KB | None | 0 0
  1. ```{r}
  2. library(readxl)
  3. library(ggplot2)
  4. library(plotly)
  5. library(dplyr)
  6. library(MVN)
  7.  
  8. detenidos=read_excel("D:/Descargas/DATABASES/detenidos.xlsx")
  9. robos=read_excel("D:/Descargas/DATABASES/robos.xlsx")
  10. goneppl=read_excel("D:/Descargas/DATABASES/goneppl.xlsx")
  11.  
  12. #Eliminar edades sin dato para que no estorben
  13. detenidos2=detenidos[detenidos$edad!="SIN DATO",]
  14. #El libro solo habla de clasificación en 2 categorías, así que sorry intersexuales
  15. detenidos2=detenidos2[detenidos2$sexo!="INTERSEXUAL",]
  16.  
  17. detenidos2=detenidos2[,c(5,6,10)]
  18.  
  19. detenidos2$sexo<-as.factor(detenidos2$sexo)
  20. detenidos2$edad=as.numeric(detenidos2$edad)
  21. detenidos2$numero_detenciones=as.numeric(detenidos2$numero_detenciones)
  22.  
  23. #ggplot(data=detenidos,aes(edad,numero_detenciones,color=sexo))+geom_point()+theme_classic()
  24.  
  25.  
  26. Hombres=filter(detenidos2,sexo=="HOMBRE")
  27. Mujeres=filter(detenidos2,sexo=="MUJER")
  28.  
  29. mediaH=apply(Hombres[,-2],2,mean)
  30. mediaM=apply(Mujeres[,-2],2,mean)
  31.  
  32. covH=cov(Hombres[,-2])
  33. covM=cov(Mujeres[,-2])
  34.  
  35. nH=length(Hombres)
  36. nM=length(Mujeres)
  37.  
  38. spooled=(((nH-1)/(nH+nM-2))*covH)+(((nM-1)/(nH+nM-2))*covM)
  39. spooled
  40. spooledinv<-solve(s.pooled)
  41. spooledinv
  42.  
  43. haty<-(mediaH-mediaM)%*%spooledinv
  44. haty
  45.  
  46. bary1<-(haty)%*%mediaH
  47. bary1
  48.  
  49. bary2<-(haty)%*%mediaM
  50. bary2
  51.  
  52. x<-c(bary1,bary2)
  53. meany<-mean(x)
  54. meany
  55.  
  56. clas=function(group,vector,crit){
  57. data=as.matrix(group[,c(1,3)])
  58. n=length(data[,1])
  59. v=matrix(c(rep(vector[1], n), rep(vector[2], n)), nrow = 2,byrow=T)
  60. critval=diag(data%*%v)
  61. critval2=critval>crit
  62. return(critval2)
  63. #TRUE significa va a la población 1. FALSE A LA 2
  64. }
  65.  
  66. #Selección de muestra para clasificar:
  67. HombresMuestra=Hombres[sample(100),]
  68.  
  69. MujeresMuestra=Mujeres[sample(100),]
  70.  
  71. muestra=rbind(HombresMuestra,MujeresMuestra)
  72.  
  73. for (i in 1:nrow(muestra)){
  74. verdad=clas(muestra[i,],haty,meany)
  75. if(verdad){
  76. muestra[i,2]="HOMBRE"
  77. } else{
  78. muestra[i,2]="MUJER"
  79. }
  80. }
  81.  
  82. ggplot(data=muestra,aes(edad,numero_detenciones,color=sexo))+geom_point()+theme_classic()
  83. ```
  84.  
  85. 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.
  86.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement