In de aangeleverde bestanden zitten gegevens over schades. Hierbij gaat het over de volgende bestanden: - Algemenene schadegegevens - Schadeagenda’s - Betalingen op schade - Reservering(mutaties) op schade - Archief documenten (meta record)
Het doel van deze exercitie is om tot een logfile te komen waar de gegevens van een event behorende bij een schade in geclusterd zijn. Deze events zijn nu verborgen in de verschillende bestanden. In het document “Analyse van schadegegevens” is beschreven hoe de verschillende events vanuit de bovenstaande bestanden bepaald kunnen worden.
Hieronder wordt eerst het schadebestand ingelezen. Vervolgens worden er drie events uit gehaald: - Het ontstaan van de schade - Het melden van de schade - Het afleggen van de schade
URLfile <- "C:/Users/menno_000/Documents/R/Schadeproces/schades.csv"
Algschade <- read.csv(URLfile, sep = ";")
## Printen dimensies
cat("het aantal schaderegels :", dim(Algschade)[[1]], "\n")
## het aantal schaderegels : 149669
cat("het aantal variabelen :", dim(Algschade)[[2]])
## het aantal variabelen : 12
rm(URLfile)
## Datumvelden omzetten
Algschade$schadedatum <- as.Date(Algschade$schadedatum, format = "%d-%m-%Y")
Algschade$datum.afgehandeld <- as.Date(Algschade$datum.afgehandeld, format = "%d-%m-%Y")
De eerste twee velden (bedrijfsnummer en schadenummer) zijn gezamenlijk de sleutel. Aangezien dit voor andere bestandenook geldt, wordt hiervoor een functie gebouwd.
Sleutelmaken <- function (sleutelbestand) {
#sleutelbestand$sleutel <- paste(sleutelbestand$bedrijfsnummer, sleutelbestand$schadenummer, sep = ".")
within(sleutelbestand, sleutel <- paste(bedrijfsnummer, schadenummer, sep='.'))
}
Algschade <- Sleutelmaken(Algschade)
## Printen dimensies
cat("het aantal schaderegels :", dim(Algschade)[[1]], "\n")
## het aantal schaderegels : 149669
cat("het aantal variabelen :", dim(Algschade)[[2]])
## het aantal variabelen : 13
Hier wordt een logregel gemaakt voor het ontstaan van de schade waarbij als medewerker “Verzekeringsnemer” wordt ingevoerd.
## Aanmaken van logbestand
variabelen <- c("sleutel", "schadedatum")
log_ontstaan <- as.data.frame(Algschade[ , variabelen])
log_ontstaan$event <- "Ontstaan schade"
log_ontstaan$medewerker <- 1
colnames(log_ontstaan) <- c("sleutel", "eventdatum", "event", "medewerker")
## Printen dimensies
cat("het aantal logregels :", dim(log_ontstaan)[[1]], "\n")
## het aantal logregels : 149669
cat("het aantal variabelen:", dim(log_ontstaan)[[2]])
## het aantal variabelen: 4
Later toe te voegen
Hier wordt een logregel gemaakt voor het ontstaan van de schade waarbij als medewerker “Verzekeringsnemer” wordt ingevoerd.
## Aanmaken van logbestand
variabelen <- c("sleutel", "datum.afgehandeld")
log_afsluit <- as.data.frame(Algschade[ , variabelen])
log_afsluit <- log_afsluit[!is.na(Algschade$datum.afgehandeld), ]
log_afsluit$event <- "Gereedmelden schade"
log_afsluit$medewerker <- 0
colnames(log_afsluit) <- c("sleutel", "eventdatum", "event", "medewerker")
## Printen dimensies
cat("het aantal logregels :", dim(log_afsluit)[[1]], "\n")
## het aantal logregels : 138748
cat("het aantal variabelen :", dim(log_afsluit)[[2]], "\n")
## het aantal variabelen : 4
cat("het aantal niet openstaande schades:", dim(log_ontstaan)[[1]]-dim(log_afsluit)[[1]], "\n")
## het aantal niet openstaande schades: 10921
rm(Algschade, variabelen)
URLfile <- "C:/Users/menno_000/Documents/R/Schadeproces/schade_agenda.csv"
Agendaschade <- read.csv(URLfile, sep = ";")
## Printen dimensies
cat("het aantal agendaregels :", dim(Agendaschade)[[1]], "\n")
## het aantal agendaregels : 44075
cat("het aantal variabelen :", dim(Agendaschade)[[2]])
## het aantal variabelen : 15
rm(URLfile)
Agendaschade <- Sleutelmaken(Agendaschade)
## Aanmaken van logbestand
variabelen <- c("sleutel", "afwerkdatum", "omschrijving.reden", "afgelegd.door", "medewerker")
log_agenda <- as.data.frame(Agendaschade[ , variabelen])
lengte <- dim(log_agenda)[[1]]
for (i in 1: lengte){
if (!log_agenda[i, ]$afgelegd.door == 0){
log_agenda[i, ]$medewerker <- log_agenda[i, ]$afgelegd.door
}
}
## Omzetten logbestand naar definitieve logbestand
log_agenda <- log_agenda[ , c(1,2,3,5)]
colnames(log_agenda) <- c("sleutel", "eventdatum", "event", "medewerker")
log_agenda$eventdatum <- as.Date(log_agenda$eventdatum, format = "%d-%m-%Y")
log_agenda$event <- as.character(log_agenda$event)
log_agenda$medewerker <- as.numeric(log_agenda$medewerker)
## Verwijderen nog niet uitgevoerde agenda's
log_agenda <- log_agenda[!is.na(log_agenda$eventdatum), ]
## Printen dimensies
cat("het aantal logregels :", dim(log_agenda)[[1]], "\n")
## het aantal logregels : 40340
cat("het aantal variabelen :", dim(log_agenda)[[2]], "\n")
## het aantal variabelen : 4
rm(Agendaschade, variabelen, i, lengte)
URLfile <- "C:/Users/menno_000/Documents/R/Schadeproces/schade_uitk.csv"
Uitkeringen <- read.csv(URLfile, sep = ";")
## Printen dimensies
cat("het aantal uitkeringsregels :", dim(Uitkeringen)[[1]], "\n")
## het aantal uitkeringsregels : 167758
cat("het aantal variabelen :", dim(Uitkeringen)[[2]])
## het aantal variabelen : 6
rm(URLfile)
Uitkeringen <- Sleutelmaken(Uitkeringen)
## Aanmaken van logbestand
variabelen <- c("sleutel", "boekdatum")
log_uitkering <- as.data.frame(Uitkeringen[ , variabelen])
log_uitkering$event <- "Uitkering aanmaken"
log_uitkering$medewerker <- 0
colnames(log_uitkering) <- c("sleutel", "eventdatum", "event", "medewerker")
log_uitkering$eventdatum <- as.Date(log_uitkering$eventdatum, format = "%d-%m-%Y")
## Printen dimensies
cat("het aantal logregels :", dim(log_uitkering)[[1]], "\n")
## het aantal logregels : 167758
cat("het aantal variabelen :", dim(log_uitkering)[[2]], "\n")
## het aantal variabelen : 4
rm(Uitkeringen, variabelen)
log_totaal <- log_ontstaan
## Printen dimensies
cat("het aantal logregels :", dim(log_totaal)[[1]], "\n")
## het aantal logregels : 149669
cat("het aantal variabelen :", dim(log_totaal)[[2]], "\n")
## het aantal variabelen : 4
log_totaal <- bind_rows(log_totaal, log_afsluit)
## Printen dimensies
cat("het aantal logregels :", dim(log_totaal)[[1]], "\n")
## het aantal logregels : 288417
cat("het aantal variabelen :", dim(log_totaal)[[2]], "\n")
## het aantal variabelen : 4
log_totaal <- bind_rows(log_totaal, log_uitkering)
## Printen dimensies
cat("het aantal logregels :", dim(log_totaal)[[1]], "\n")
## het aantal logregels : 456175
cat("het aantal variabelen :", dim(log_totaal)[[2]], "\n")
## het aantal variabelen : 4
Indien agenda nog niet in de log staat, moet deze worden toegevoegd. Indien de medewerker in het record dat in de log staat nog niet gevuld is, moet de medewerker uit de agenda worden overgenomen.
lengte <- dim(log_agenda)[[1]]
for (i in 1: lengte){
sleutelwaarde <- log_agenda$sleutel[i]
event_datum <- log_agenda$eventdatum[i]
regels <- filter(log_totaal, log_totaal$sleutel == sleutelwaarde & log_totaal$eventdatum == event_datum)
if(dim(regels)[[1]] == 0){
log_totaal[nrow(log_totaal) + 1,] <- log_agenda[i,]
}else{
lengte2 <- dim(regels)[[1]]
for (i2 in 1 : lengte2) {
if (regels$medewerker[i2] == 0){
log_totaal <- mutate(log_totaal,
medewerker=ifelse(sleutel == sleutelwaarde & eventdatum == event_datum, log_agenda$medewerker[i], log_totaal$medewerker))
}
}
}
}
## Printen dimensies
cat("het aantal logregels :", dim(log_totaal)[[1]], "\n")
## het aantal logregels : 475872
cat("het aantal variabelen :", dim(log_totaal)[[2]], "\n")
## het aantal variabelen : 4
barplot(table(log_totaal$sleutel), main = "Frequentie per bedrijf-schadenummer")
## Frequentie casussen per aantal activiteiten
Freqtabel <- head(table(table(log_totaal$sleutel)), 20)
barplot(Freqtabel, main = "Frequency activities of cases (max = 20)", xlab= "activities in a case")
## Schrijven CSV bestand
URLfile <- "C:/Users/menno_000/Documents/R/Schadeproces/logtotaal.csv"
write.csv(log_totaal, URLfile)
## Schrijven snelle variant (RDS)
URLfile <- "C:/Users/menno_000/Documents/R/Schadeproces/logtotaal.rds"
save(log_totaal, ascii=FALSE, file = URLfile)