library(readxl)
datauas <- read_excel("uas.xlsx")
datauas$Kerugian = as.numeric(datauas$Kerugian)
datauas$Rata_Kerugian = datauas$Kerugian/datauas$Kejadian

datauas <- as.data.frame(datauas)
datauas
##    Tahun    Kerugian Kejadian Rata_Kerugian
## 1   2000 13555298411       11    1232299856
## 2   2001 11029916950       12     919159746
## 3   2002 15975856773       13    1228912059
## 4   2003 15410902354       17     906523668
## 5   2004 18985203519       19     999221238
## 6   2005 17557268712       18     975403817
## 7   2006 10848969106       10    1084896911
## 8   2007 17395018451       11    1581365314
## 9   2008 17187708350       14    1227693454
## 10  2009 19927948832       20     996397442
## 11  2010 30431913006       22    1383268773
## 12  2011 19079543271       21     908549680
## 13  2012 18862604189       22     857391099
## 14  2013  8834824848       23     384122819
## 15  2014 13231795220       23     575295444
## 16  2015 23703573276       25     948142931
## 17  2016 15743863220       31     507866555
## 18  2017 17353216867       34     510388731
## 19  2018 22655839743       25     906233590
## 20  2019 23433580385       19    1233346336
## 21  2020 21056987988       26     809884153
shapiro.test(datauas$Kerugian)
## 
##  Shapiro-Wilk normality test
## 
## data:  datauas$Kerugian
## W = 0.97089, p-value = 0.7527
shapiro.test(datauas$Kejadian)
## 
##  Shapiro-Wilk normality test
## 
## data:  datauas$Kejadian
## W = 0.96026, p-value = 0.5214
shapiro.test(datauas$Rata_Kerugian)
## 
##  Shapiro-Wilk normality test
## 
## data:  datauas$Rata_Kerugian
## W = 0.96158, p-value = 0.5484

1 Tentukan distribusi dari masing-masing data kejadian dan kerugian bencana alam

# Soal nomor 1

require(scales) 
## Loading required package: scales
## Warning: package 'scales' was built under R version 4.2.3
library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.2.3
## Warning: package 'ggplot2' was built under R version 4.2.3
## Warning: package 'tibble' was built under R version 4.2.3
## Warning: package 'tidyr' was built under R version 4.2.3
## Warning: package 'readr' was built under R version 4.2.3
## Warning: package 'purrr' was built under R version 4.2.3
## Warning: package 'dplyr' was built under R version 4.2.3
## Warning: package 'stringr' was built under R version 4.2.3
## Warning: package 'forcats' was built under R version 4.2.3
## Warning: package 'lubridate' was built under R version 4.2.3
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.2     ✔ readr     2.1.4
## ✔ forcats   1.0.0     ✔ stringr   1.5.0
## ✔ ggplot2   3.4.2     ✔ tibble    3.2.1
## ✔ lubridate 1.9.2     ✔ tidyr     1.3.0
## ✔ purrr     1.0.1
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ readr::col_factor() masks scales::col_factor()
## ✖ purrr::discard()    masks scales::discard()
## ✖ dplyr::filter()     masks stats::filter()
## ✖ dplyr::lag()        masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
ggplot(datauas,aes(Tahun,Rata_Kerugian))+
  geom_bar(stat='identity',fill="#FF9980", colour="black"[128])+
  scale_y_continuous(labels = comma) + 
  geom_text(aes(label = Kerugian), vjust = -0.75, size =2.5)

2 Tentukan statistika deskriptif (Ekspektasi dan Variansi) dari masing-masing data kejadian dan kerugian bencana alam

# Soal nomor 2

a = mean(datauas$Kerugian)
b = mean(datauas$Kejadian)
c= var(datauas$Kerugian)
d = var(datauas$Kejadian)

print(paste("Mean dari Kerugian bencana alam ", a ))
## [1] "Mean dari Kerugian bencana alam  17726753974.7452"
print(paste("Mean dari Kejadian bencana alam ", b ))
## [1] "Mean dari Kejadian bencana alam  19.8095238095238"
print(paste("Var dari Kerugian bencana alam ", c ))
## [1] "Var dari Kerugian bencana alam  2.4819999294599e+19"
print(paste("Var dari Kejadian bencana alam ", d ))
## [1] "Var dari Kejadian bencana alam  42.7619047619048"

3 Tentukan risiko kolektif dari data bencana alam

# Soal nomor 3

mean = a*b #Mean Resiko Kolektif

print(paste("Mean dari Resiko Kolektif S(t)", mean ))
## [1] "Mean dari Resiko Kolektif S(t) 351158554928.287"
var = ((b*c) + (d*(a^2))) # Variance Resiko Kolektif

print(paste("Variansi dari Resiko Kolektif S(t)", var ))
## [1] "Variansi dari Resiko Kolektif S(t) 1.39290795203153e+22"

4 Tentukan premi asuransi bencana menggunakan prinsip standar deviasi atau prinsip

variansi dengan berdasarkan risiko kolektif (gunakan loading factor 1%-10%)

# Premi Murni dengan metode Standar Deviasi 

# Loading Factor 1-10% 

p1 = ((mean + sqrt(var)*0.01))
p2 = ((mean + sqrt(var)*0.02))
p3 = ((mean + sqrt(var)*0.03))
p4 = ((mean + sqrt(var)*0.04))
p5 = ((mean + sqrt(var)*0.05))
p6 = ((mean + sqrt(var)*0.06))
p7 = ((mean + sqrt(var)*0.07))
p8 = ((mean + sqrt(var)*0.08))
p9 = ((mean + sqrt(var)*0.09))
p10 = ((mean + sqrt(var)*0.1))

Loadingfact = c('1%', '2%','3%','4%', '5%', '6%', '7%', '8%', '9%', '10%' )
Premi_Murni = c(p1, p2, p3, p4, p5, p6, p7, p8, p9,p10)
datapremi =  data.frame(Loadingfact, Premi_Murni)

datapremix = datapremi
datapremix$Premi_Murni =  paste(format(round(datapremi$Premi_Murni / 1e9, 2), trim = TRUE), "Milyar")

datapremix
##    Loadingfact   Premi_Murni
## 1           1% 352.34 Milyar
## 2           2% 353.52 Milyar
## 3           3% 354.70 Milyar
## 4           4% 355.88 Milyar
## 5           5% 357.06 Milyar
## 6           6% 358.24 Milyar
## 7           7% 359.42 Milyar
## 8           8% 360.60 Milyar
## 9           9% 361.78 Milyar
## 10         10% 362.96 Milyar

5 Buatkan garifik dari premi asuransi untuk loading factor dari 1%-10%

library(ggplot2)
library(plotly)
## Warning: package 'plotly' was built under R version 4.2.3
## 
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
## 
##     last_plot
## The following object is masked from 'package:stats':
## 
##     filter
## The following object is masked from 'package:graphics':
## 
##     layout
library(gapminder)
## Warning: package 'gapminder' was built under R version 4.2.3
p <- datapremi %>%
  ggplot( aes(reorder(Loadingfact, Premi_Murni), Premi_Murni)) +
  geom_line(colour="black") +
  geom_point(colour="red") +
  theme_bw() +
  xlab("Loading Factor") +
  ylab("Premi Murni")

ggplotly(p)