#file.choose()
seguros <- read.csv("C:\\Users\\danyc\\OneDrive - Instituto Tecnologico y de Estudios Superiores de Monterrey\\Desktop\\Excel y CSV\\seguros.csv")
resumen <- summary(seguros)
resumen
## ClaimID TotalPaid TotalReserves TotalRecovery
## Min. : 777632 Min. : 0 Min. : 0 Min. : 0.00
## 1st Qu.: 800748 1st Qu.: 83 1st Qu.: 0 1st Qu.: 0.00
## Median : 812128 Median : 271 Median : 0 Median : 0.00
## Mean : 1864676 Mean : 10404 Mean : 3368 Mean : 66.05
## 3rd Qu.: 824726 3rd Qu.: 1122 3rd Qu.: 0 3rd Qu.: 0.00
## Max. :62203364 Max. :4527291 Max. :1529053 Max. :100000.00
##
## IndemnityPaid OtherPaid TotalIncurredCost ClaimStatus
## Min. : 0 Min. : 0 Min. : -10400 Length:31619
## 1st Qu.: 0 1st Qu.: 80 1st Qu.: 80 Class :character
## Median : 0 Median : 265 Median : 266 Mode :character
## Mean : 4977 Mean : 5427 Mean : 13706
## 3rd Qu.: 0 3rd Qu.: 1023 3rd Qu.: 1098
## Max. :640732 Max. :4129915 Max. :4734750
##
## IncidentDate IncidentDescription ReturnToWorkDate ClaimantOpenedDate
## Length:31619 Length:31619 Length:31619 Length:31619
## Class :character Class :character Class :character Class :character
## Mode :character Mode :character Mode :character Mode :character
##
##
##
##
## ClaimantClosedDate EmployerNotificationDate ReceivedDate
## Length:31619 Length:31619 Length:31619
## Class :character Class :character Class :character
## Mode :character Mode :character Mode :character
##
##
##
##
## IsDenied Transaction_Time Procesing_Time ClaimantAge_at_DOI
## Min. :0.00000 Min. : 0 Min. : 0.00 Min. :14.0
## 1st Qu.:0.00000 1st Qu.: 211 1st Qu.: 4.00 1st Qu.:33.0
## Median :0.00000 Median : 780 Median : 10.00 Median :42.0
## Mean :0.04463 Mean : 1004 Mean : 62.99 Mean :41.6
## 3rd Qu.:0.00000 3rd Qu.: 1440 3rd Qu.: 24.00 3rd Qu.:50.0
## Max. :1.00000 Max. :16428 Max. :11558.00 Max. :94.0
## NA's :614
## Gender ClaimantType InjuryNature BodyPartRegion
## Length:31619 Length:31619 Length:31619 Length:31619
## Class :character Class :character Class :character Class :character
## Mode :character Mode :character Mode :character Mode :character
##
##
##
##
## BodyPart AverageWeeklyWage1 ClaimID1 BillReviewALE
## Length:31619 Min. : 100.0 Min. : 777632 Min. : -448.0
## Class :character 1st Qu.: 492.0 1st Qu.: 800748 1st Qu.: 16.0
## Mode :character Median : 492.0 Median : 812128 Median : 24.0
## Mean : 536.5 Mean : 1864676 Mean : 188.7
## 3rd Qu.: 492.0 3rd Qu.: 824726 3rd Qu.: 64.1
## Max. :8613.5 Max. :62203364 Max. :46055.3
## NA's :14912
## Hospital PhysicianOutpatient Rx
## Min. : -12570.4 Min. : -549.5 Min. : -160.7
## 1st Qu.: 210.5 1st Qu.: 105.8 1st Qu.: 22.9
## Median : 613.9 Median : 218.0 Median : 61.5
## Mean : 5113.2 Mean : 1813.2 Mean : 1695.2
## 3rd Qu.: 2349.1 3rd Qu.: 680.6 3rd Qu.: 189.0
## Max. :2759604.0 Max. :1219766.6 Max. :631635.5
## NA's :19655 NA's :2329 NA's :20730
Paso 1. Definir el área del negocio que buscamos impactar o mejorar y su KPI Dentro de los seguros, se busca el eficientizar o buscar mejorar el manejo de gastos que la aseguradora incurre al subsidiar los gastos de hospitales.
Los KPI´s a impactar son:
a. Gasto promedio del cliente/paciente
b. Estadía promedio de cliente hospitalizado
Paso 2. Seleccionar plantilla(-s) para crear valor a partir de los datos de los clientes. Visión / Segmentación / Personalización / Contextualización
Paso 3. Generar ideas o conceptos específicos. Generar un modelo de negocios predictivo que defina cuanto se está gastando actualmente en que lesiones y ver como es que se puede disminuir ese costo.
Paso 4. Reunir los datos requeridos. Necesito: Tipo de lesión, genero, parte del cuerpo, hospital, entre otros.
Paso 5. Plan de ejecución. Trabajar una base de datos o un CRM donde se recopile información continuamente y se busquen nuevos proveedores de la salúd para variar los precios y que la aseguradora pueda ganar un porcentaje de lo que gasta en promedio por paciente sin dejar de dar la atención necesaria para lo cual se contrata a la hora del siniestro/accidente.
Después de limpiar la base de datos, se vuelve a correr el resumen para ver los cambios.
#library("janitor")
#clean_names(seguros)
resumen <- summary(seguros)
resumen
## ClaimID TotalPaid TotalReserves TotalRecovery
## Min. : 777632 Min. : 0 Min. : 0 Min. : 0.00
## 1st Qu.: 800748 1st Qu.: 83 1st Qu.: 0 1st Qu.: 0.00
## Median : 812128 Median : 271 Median : 0 Median : 0.00
## Mean : 1864676 Mean : 10404 Mean : 3368 Mean : 66.05
## 3rd Qu.: 824726 3rd Qu.: 1122 3rd Qu.: 0 3rd Qu.: 0.00
## Max. :62203364 Max. :4527291 Max. :1529053 Max. :100000.00
##
## IndemnityPaid OtherPaid TotalIncurredCost ClaimStatus
## Min. : 0 Min. : 0 Min. : -10400 Length:31619
## 1st Qu.: 0 1st Qu.: 80 1st Qu.: 80 Class :character
## Median : 0 Median : 265 Median : 266 Mode :character
## Mean : 4977 Mean : 5427 Mean : 13706
## 3rd Qu.: 0 3rd Qu.: 1023 3rd Qu.: 1098
## Max. :640732 Max. :4129915 Max. :4734750
##
## IncidentDate IncidentDescription ReturnToWorkDate ClaimantOpenedDate
## Length:31619 Length:31619 Length:31619 Length:31619
## Class :character Class :character Class :character Class :character
## Mode :character Mode :character Mode :character Mode :character
##
##
##
##
## ClaimantClosedDate EmployerNotificationDate ReceivedDate
## Length:31619 Length:31619 Length:31619
## Class :character Class :character Class :character
## Mode :character Mode :character Mode :character
##
##
##
##
## IsDenied Transaction_Time Procesing_Time ClaimantAge_at_DOI
## Min. :0.00000 Min. : 0 Min. : 0.00 Min. :14.0
## 1st Qu.:0.00000 1st Qu.: 211 1st Qu.: 4.00 1st Qu.:33.0
## Median :0.00000 Median : 780 Median : 10.00 Median :42.0
## Mean :0.04463 Mean : 1004 Mean : 62.99 Mean :41.6
## 3rd Qu.:0.00000 3rd Qu.: 1440 3rd Qu.: 24.00 3rd Qu.:50.0
## Max. :1.00000 Max. :16428 Max. :11558.00 Max. :94.0
## NA's :614
## Gender ClaimantType InjuryNature BodyPartRegion
## Length:31619 Length:31619 Length:31619 Length:31619
## Class :character Class :character Class :character Class :character
## Mode :character Mode :character Mode :character Mode :character
##
##
##
##
## BodyPart AverageWeeklyWage1 ClaimID1 BillReviewALE
## Length:31619 Min. : 100.0 Min. : 777632 Min. : -448.0
## Class :character 1st Qu.: 492.0 1st Qu.: 800748 1st Qu.: 16.0
## Mode :character Median : 492.0 Median : 812128 Median : 24.0
## Mean : 536.5 Mean : 1864676 Mean : 188.7
## 3rd Qu.: 492.0 3rd Qu.: 824726 3rd Qu.: 64.1
## Max. :8613.5 Max. :62203364 Max. :46055.3
## NA's :14912
## Hospital PhysicianOutpatient Rx
## Min. : -12570.4 Min. : -549.5 Min. : -160.7
## 1st Qu.: 210.5 1st Qu.: 105.8 1st Qu.: 22.9
## Median : 613.9 Median : 218.0 Median : 61.5
## Mean : 5113.2 Mean : 1813.2 Mean : 1695.2
## 3rd Qu.: 2349.1 3rd Qu.: 680.6 3rd Qu.: 189.0
## Max. :2759604.0 Max. :1219766.6 Max. :631635.5
## NA's :19655 NA's :2329 NA's :20730
Agregar columna de días de incapacidad en Excel (ReturnToWorkDate-IncidentDate).
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
#count(seguros, IncidentDescription, sort=TRUE)
#count(seguros, ClaimantType, sort=TRUE)
#count(seguros, InjuryNature, sort=TRUE)
#count(seguros, BodyPartRegion, sort=TRUE)
#count(seguros, AverageWeeklyWage1, sort=TRUE)
#regresion <- lm (TotalIncurredCost ~ ClaimantAge_at_DOI + Gender + ClaimantType + InjuryNature + BodyPartRegion + BodyPart + AverageWeeklyWage1 + BillReviewALE + Hospital + PhysicianOutpatient + Rx , data=seguros)
#summary (regresion)
#regresion <- lm (TotalIncurredCost ~ ClaimantAge_at_DOI + Gender + ClaimantType + InjuryNature + BodyPartRegion + BodyPart + AverageWeeklyWage1 , data=seguros)
#summary (regresion)
datos_nuevos <-data.frame(ClaimantAge_at_DOI = c(20,30,40,50,60,70,80,90), Gender= "Male", ClaimantType= "Medical Only", InjuryNature = "Amputation", BodyPartRegion = "Multiple Body Parts", BodyPart= "Brain", AverageWeeklyWage1=537)
predict(regresion,datos_nuevos)
## Warning in predict.lm(regresion, datos_nuevos): prediction from a rank-deficient
## fit may be misleading
## 1 2 3 4 5 6 7 8
## 673115.3 674677.3 676239.3 677801.3 679363.3 680925.3 682487.3 684049.4
Según los datos recabados en la regresión líneal, se pudo ver que realmente en lo que se necesitaba poner más atención o que tenía una variable más dependiente eran las de tipos de genero, tipo de siniestro, naturaleza de lesión, región de cuerpo, parte del cuerpo y el promedio del pago semanal de la escuela junto con la edad. Esto puesto a que son las áreas en las que dependiendo de lo que sea, se gasta más y puede significar un gasto extra para la aseguradora lo cual de igual manera le podría afectar si es que no incrementa la prima que se le cobra a los asegurados cada que se accidentan dependiendo de sus comorbilidades, edad y historial vitalicio dentro de la vida del asegurado, ya que según nuestra regresión se puede ver que entre más edad, significa un mayor gasto justamente por la reduntante comorbilidad de la edad y propensión a accidentes que aquí marca una diferencia de un poco más de $10,000 dolares que se va incrementando entre el primer grupo y el último.
La regresión líneal en general, nos sirve para saber la dependencia de una variable para que afecte a otras y es bueno saber como usarlo en R, ya que se puede desarrollar de manera más gráfica si así lo quisieramos presentar al adicionar nuestro codigo con un ggplot y ver el crecimiento de los años para presentarselos a nuestro cliente.