Usando una muestra de distintos perfiles de personas, donde se toma en cWuenta una variedad de características tanto demográficas como socioeconómicas, el objetivo del presente proyecto es predecir si cada una de estas personas son perfiles válidos de aprobación para un seguro de vida laboral. Los datos se recolectaron a través de entrevistas.
| Sexo | Embarazo | Familia | Propensión Hijos | Enfermedad Actual | Accidente Trabajo | Enfermedad Trabajo | Muerte Trabajo | Adultez | Deudas | Capital | Resultado |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 0 | 0 | 2 | 5 | 0 | 6 | 3 | 0 | 0 | 2 | -1 |
| 1 | 1 | 1 | 2 | 0 | 6 | 0 | 0 | 0 | 2 | 6 | -1 |
| 1 | 1 | 0 | 0 | 7 | 2 | 4 | 8 | 1 | 3 | 0 | 1 |
| 0 | 0 | 1 | 4 | 0 | 5 | 0 | 2 | 0 | 1 | 0 | 1 |
| 0 | 1 | 1 | 0 | 0 | 5 | 5 | 6 | 0 | 1 | 0 | 1 |
| 1 | 1 | 0 | 4 | 4 | 0 | 0 | 0 | 1 | 3 | 0 | -1 |
| 0 | 0 | 1 | 0 | 0 | 4 | 0 | 4 | 0 | 0 | 3 | -1 |
| 1 | 0 | 1 | 5 | 5 | 0 | 0 | 0 | 1 | 0 | 3 | -1 |
A continuación, se detallará la naturaleza y el significado del conjunto de datos.
## [1] "Sexo : integer : 1: Mujer | 0: Hombre"
## [1] "Embarazo : integer : 1: Embarazada o pareja emabarazada | 0: No Embarazada ni pareja embarazada"
## [1] "Familia : integer : 1 - 10: Indica la propensión a tener accidentes en el trabajo | 0: No es propensa a tener accidentes en el trabajo"
## [1] "Propensión Hijos : integer : 1 - 10: Indica la propensión o deseo de tener hijos | 0: Persona no propensa a tener hijos"
## [1] "Enfermedad Actual : integer : 1 - 10: Indica la gravedad de sus enfermedades actuales | 0: No tiene enfermedades significativas"
## [1] "Accidente Trabajo : integer : 1 - 10: Indica la propensión a tener accidentes en el trabajo | 0: No es propensa a tener accidentes en el trabajo"
## [1] "Enfermedad Trabajo : integer : 1 - 10: Indica la propensión a contraer enfermedades en el trabajo | 0: No es propensa a contraer enfermedades en el trabajo"
## [1] "Muerte Trabajo : integer : 1 - 10: Indica la propensión a morir en el trabajo | 0: No es propensa a morir en el trabajo"
## [1] "Adultez : integer : 1: Persona mayor a 60 años | 0: Persona menor de 60 años"
## [1] "Deudas : integer : 1 - 10: Indica la gravedad de sus deudas | 0: No tiene deudas"
## [1] "Capital : integer : 1 - 10: Indica la medida de posesión de capital | 0: No tiene capital"
## [1] "Resultado : integer : 1: Persona apta para conseguir seguro | -1: Persona no apta para conseguir seguro"
Variables cualitativas: Sexo, Embarazo, Familia, Adultez, Resultado
Variables cuantitativas: Propensión Hijos, Enfermedad Actual, Accidente Trabajo, Enfermedad Trabajo, Muerte Trabajo, Deudas, Capital
Variable objetivo: Resultado
## Propensión Hijos Enfermedad Actual Accidente Trabajo
## 1.35 1.80 2.35
## Enfermedad Trabajo Muerte Trabajo Deudas
## 1.30 1.90 1.90
## Capital
## 3.05
## Propensión Hijos Enfermedad Actual Accidente Trabajo
## 0.0 0.0 1.0
## Enfermedad Trabajo Muerte Trabajo Deudas
## 0.0 0.0 0.5
## Capital
## 2.5
## Propensión Hijos Enfermedad Actual Accidente Trabajo
## 3.081579 6.694737 7.186842
## Enfermedad Trabajo Muerte Trabajo Deudas
## 4.010526 6.094737 6.410526
## Capital
## 9.944737
## Propensión Hijos Enfermedad Actual Accidente Trabajo
## 1.755443 2.587419 2.680829
## Enfermedad Trabajo Muerte Trabajo Deudas
## 2.002630 2.468752 2.531902
## Capital
## 3.153528
## Propensión Hijos Enfermedad Actual Accidente Trabajo
## 0% 0.00 0.00 0
## 25% 0.00 0.00 0
## 50% 0.00 0.00 1
## 75% 2.25 4.25 5
## 100% 5.00 7.00 7
## Enfermedad Trabajo Muerte Trabajo Deudas Capital
## 0% 0.00 0.00 0.00 0.00
## 25% 0.00 0.00 0.00 0.00
## 50% 0.00 0.00 0.50 2.50
## 75% 2.25 3.25 3.25 5.25
## 100% 6.00 8.00 8.00 9.00
## Warning in chisq.test(t): Chi-squared approximation may be incorrect
## Warning in chisq.test(t): Chi-squared approximation may be incorrect
## Warning in chisq.test(t): Chi-squared approximation may be incorrect
## Warning in chisq.test(t): Chi-squared approximation may be incorrect
## Warning in chisq.test(t): Chi-squared approximation may be incorrect
Variables que no muestran tendencia respecto al target: Sexo, Embarazo, Familia, Adultez
## Propensión Hijos Enfermedad Actual Accidente Trabajo
## Propensión Hijos 1.000000000 0.09733573 0.006151108
## Enfermedad Actual 0.097335728 1.00000000 -0.088017409
## Accidente Trabajo 0.006151108 -0.08801741 1.000000000
## Enfermedad Trabajo -0.285951535 0.31690826 0.116660444
## Muerte Trabajo -0.197956549 0.15325516 0.148710445
## Deudas -0.086444181 0.10122863 -0.289227335
## Capital -0.174461327 -0.07611408 -0.139141995
## Enfermedad Trabajo Muerte Trabajo Deudas
## Propensión Hijos -0.2859515 -0.1979565 -0.08644418
## Enfermedad Actual 0.3169083 0.1532552 0.10122863
## Accidente Trabajo 0.1166604 0.1487104 -0.28922733
## Enfermedad Trabajo 1.0000000 0.4854372 -0.21175274
## Muerte Trabajo 0.4854372 1.0000000 -0.23744946
## Deudas -0.2117527 -0.2374495 1.00000000
## Capital -0.1775124 -0.3981874 -0.18391075
## Capital
## Propensión Hijos -0.17446133
## Enfermedad Actual -0.07611408
## Accidente Trabajo -0.13914200
## Enfermedad Trabajo -0.17751239
## Muerte Trabajo -0.39818745
## Deudas -0.18391075
## Capital 1.00000000
Variables que no muestran tendencia respecto al target: Propensión Hijos, Enfermedad Actual, Accidente Trabajo, Enfermedad Trabajo, Muerte Trabajo, Capital
Como hemos podido observar el presente dataset tiene 11 inputs, 4 cualitativas y 7 cuantitativas. Hemos decidido utilizar una sola red neuronal y aplicar el algoritmo perceptron para lograr clasificar los datos.
Para lograrlo hemos introducido dos nuevos inputs, que serán los usados directamente por la neurona:
Factor_Demografico
Factor_Socioeconomico
Estos dos inputs serán computados, utilizando los atributos ya existentes, a continuación sus respectivas fórmulas
Factor_Demográfico = (Sexo + 1) * (Embarazo + 1) + (Familia + Adulto + Propenso_Hijos) * (Enfermedad + 1)
Factor_Socioeconomico = (Accidente_Trabajo*0.2 + Enfermedad_Trabajo*0.2 + Muerte_Trabajo*0.6 + 1) * (Capital*0.6 - Deudas*0.4 + 1)
| Factor_Demografico | Factor_Socioeconomico |
|---|---|
| 14 | 8.80 |
| 7 | 8.36 |
| 12 | -1.40 |
| 6 | 1.92 |
| 3 | 3.96 |
| 29 | -0.20 |
| 2 | 11.76 |
| 44 | 2.80 |
Al aplicar el algoritmo de perceptron, podemos apreciar una pendiente que nos ayuda a clasificar dos grupos de datos: No Aptos y Aptos
Pesos Actualizados:
## [1] -4.00 -8.84
Bias:
## [1] -4.00 -8.84
Gráfico:
Gráfico de Error:
Como parte de nuestro aprendizaje y primer intento/contacto con el problema, el intentar resolverlo con una sola neurona por definición no es una buena idea. Se puede evidenciar en el gráfico de error y el de la clasificación que los datos están muy dispersos. Otro problema evidente, es que el dataset utilizado es muy pequeño. Como siguiente paso dentro de la solución de este problema utilizaremos perceptron multicapas.