| Kontak | \(\downarrow\) |
| valensiusjimy27@gmail.com | |
| https://www.instagram.com/valjimy_/ | |
| RPubs | https://rpubs.com/valensiusjimy/ |
1 Pendahuluan
Setelah melaksanakan 7 pertemuan dalam mata kuliah Pemodelan dan Teori Risiko, kemudian pada pertemuan ke-8 dilaksanakan Ujian Tengah Semester atau UTS sebagai tolak ukur proses pembelajaran mahasiswa Statistika angkatan 2021. Ucapan terima kasih dihaturkan kepada dosen pengajar dalam mata kuliah ini sekaligus ketua program studi Statistika Universitas Matana, yaitu bapak Bakti Siregar, S.Si., M.Sc. Pada bagian selanjutnya merupakan pelaporan tugas untuk memenuhi penilaian UTS, harapannya lewat tugas ini bukan hanya mendapatkan nilai terbaik oleh penulis, tetapi dapat menjadi manfaat bagi pembaca.
Dalam mata kuliah ini berkaitan erat dengan proses analisis risiko dan bagaimana cara mitigasi risiko tersebut karena khususnya dalam aspek kehidupan terdapat sifat yang kompleks, misalnya dalam aspek ekonomi pemahaman tentang risiko menjadi sangat penting bagi para investor dan perusahaan. Risiko dapat memiliki dampak yang signifikan terhadap keputusan investasi, perencanaan keuangan, dan pengelolaan portofolio. Oleh karena itu, pemodelan dan teori risiko menjadi topik yang sangat relevan dalam konteks analisis keuangan.
Pemodelan risiko memungkinkan kita untuk mengidentifikasi, mengukur, dan mengelola risiko dengan lebih efektif. Salah satu pendekatan yang umum digunakan dalam pemodelan risiko adalah analisis diversifikasi, yang bertujuan untuk mengurangi risiko portofolio dengan menggabungkan aset yang berbeda. Selain itu, optimisasi portofolio adalah proses yang penting dalam mencari kombinasi optimal dari aset-aset yang tersedia dengan tujuan memaksimalkan return yang diharapkan untuk tingkat risiko tertentu.
Dalam konteks asuransi, risiko juga merupakan hal yang signifikan. Asuransi memberikan perlindungan finansial dari risiko yang tidak diinginkan, dan premi asuransi adalah biaya yang harus dibayar oleh pemegang polis untuk mendapatkan perlindungan tersebut. Oleh karena itu, pemahaman tentang klaim premi asuransi dan cara mengelolanya menjadi kunci dalam industri asuransi.
Dalam tugas ini akan mengeksplorasi dua kasus yang berhubungan dengan analisis risiko, diversifikasi, dan optimisasi portofolio saham, serta klaim premi asuransi. Kami akan menggunakan pemrograman R untuk menganalisis data, menghitung metrik risiko, dan mengoptimalkan portofolio saham dengan mempertimbangkan berbagai faktor risiko. Harapannya adalah lewat hasil laporan tugas ini akan memberikan manfaat bagi penulis dan juga pembaca untuk menentukan langkah kedepannya dan menjadikan bahan referensi dalam berinvestasi dan berhubungan dengan asuransi. Selamat Menikmati!
2 Kasus Pertama
Investasi dalam pasar saham adalah keputusan penting yang dihadapi oleh para investor. Salah satu strategi umum yang digunakan dalam membangun portofolio investasi adalah diversifikasi, yaitu dengan menggabungkan berbagai saham dari sektor-sektor yang berbeda. Diversifikasi bertujuan untuk mengurangi risiko portofolio dengan membagi investasi di antara aset-aset yang memiliki korelasi rendah atau negatif.
Tujuan utama dari analisis ini adalah untuk mengkaji manfaat diversifikasi dalam mengurangi risiko portofolio. Dengan menggabungkan saham-saham dari sektor-sektor yang berbeda, kita dapat melihat bagaimana perubahan harga pada satu saham dapat dipengaruhi oleh perubahan pada saham lainnya. Analisis ini akan membantu investor untuk memahami apakah portofolio mereka terlalu terpapar terhadap risiko dari satu sektor tertentu atau tidak, serta sejauh mana diversifikasi dapat mengurangi risiko secara keseluruhan.
2.1 Memanggil Library
Langkah awal dalam kasus pertama ini adalah menentukan dan
memanggil library atau paket yang disediakan oleh Rstudio
untuk digunakan sebagai penyelesaian kasus. Adapun untuk paket yang
digunakan adalah sebagai berikut:
2.2 Mengunduh Data Saham
Selanjutnya adalah mengunduh data 5 saham Indonesia dari 5 sektor
berbeda menggunakan paket quantmod, dimana pada kesempatan
kali ini saya akan mengambil data yang dimulai pada 1 Januari 2021
hingga 20 Maret 2024. Berikut adalah langkahnya:
saham <- c("TLKM.JK", "BBCA.JK", "UNVR.JK", "PGAS.JK", "SIDO.JK")
getSymbols(saham, src = "yahoo", from = "2021-01-01", to = Sys.Date())## [1] "TLKM.JK" "BBCA.JK" "UNVR.JK" "PGAS.JK" "SIDO.JK"
Catatan:
* Saham TLKM atau PT. Telkom Indonesia adalah
saham yang bergerak di sektor Infrastruktur.
* Saham BBCA atau PT.
Bank Central Asia Tbk adalah saham yang bergerak di sektor Keuangan.
* Saham UNVR atau Unilever Indonesia Tbk adalah saham yang bergerak
di sektor Barang Konsumen Primer.
* Saham PGAS atau Perusahaan Gas
Negara Tbk adalah saham yang bergerak di sektor Energi, Industri: Minyak
dan Gas.
* Saham SIDO atau PT Industri Jamu dan Farmasi Sido Tbk
adalah saham yang bergerak di sektor Kesehatan.
2.3 Return Saham
Kemudian, dilakukan proses mendefinisikan fungsi
calculate_returns() untuk menentukan besaran return atau
keuntungan yang diterima dari 5 saham sebelumnya. Nilai return ini
didapatkan berdasarkan harga penutupan di bursa saham, berikut adalah
langkahnya:
calculate_returns <- function(saham) {
returns <- dailyReturn(Ad(saham))
colnames(returns) <- "Returns"
returns <- na.omit(returns)
return(returns)
}
return <- lapply(saham, function(stock) calculate_returns(get(stock))) Proses di atas adalah implementasi dari fungsi
calculate_returns() yang telah didefinisikan sebelumnya.
Fungsi ini menerima data harga saham sebagai input dan menghasilkan
return harian dari harga penutupan saham.
2.4 Membuat DataFrame Nilai Return
Setelah menghitung nilai return dari masing-masing saham yang ada, selanjutnya nilai return tersebut akan ditampilkan dalam bentuk dataframe seperti berikut:
## TLKM.JK BBCA.JK UNVR.JK PGAS.JK SIDO.JK
## 2021-01-04 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000
## 2021-01-05 -0.005730633 0.037307956 -0.013377852 0.038961038 0.018867933
## 2021-01-06 -0.028818553 -0.020451328 -0.023728899 -0.024999939 -0.012345597
## 2021-01-07 0.005934774 0.002879626 0.000000000 0.006410194 -0.006250091
## 2021-01-08 0.053097436 0.012203922 -0.003472203 0.044586017 -0.012578533
## 2021-01-11 0.008403207 0.041844044 0.003484301 -0.009146385 -0.012738768
## 2021-01-12 -0.024999929 -0.025187273 -0.013888737 -0.009230814 0.000000000
## 2021-01-13 -0.008547010 -0.005586459 -0.010563548 0.003105605 0.000000000
## 2021-01-14 0.005747101 -0.014045045 -0.003558623 0.120743081 -0.012903412
## 2021-01-15 -0.005714260 -0.009259224 -0.007142817 -0.019337029 -0.026143618
## ...
## 2024-03-05 -0.017766497 0.005128205 0.000000000 0.000000000 0.000000000
## 2024-03-06 0.007751938 0.015306122 0.007490637 -0.004464286 -0.016129032
## 2024-03-07 0.000000000 0.017587940 0.014869888 0.000000000 0.016393443
## 2024-03-08 -0.010256410 0.002469136 -0.025641026 0.017937220 0.008064516
## 2024-03-13 0.010362694 -0.014778325 0.022556391 0.026431718 -0.008000000
## 2024-03-14 0.015384615 0.032500000 -0.011029412 0.025751073 -0.008064516
## 2024-03-15 0.002525253 -0.016949153 -0.018587361 0.033472803 -0.016260163
## 2024-03-18 -0.012594458 0.000000000 0.049242424 0.004048583 -0.008264463
## 2024-03-19 0.005102041 0.002463054 -0.010830325 0.032258065 0.008333333
## 2024-03-20 -0.002538071 -0.004914005 0.007299270 0.003906250 0.041322314
Berdasarkan hasil di atas, diketahui nilai return harian untuk setiap saham yang ingin dianalisis pada kesempatan kali ini dan diketahui bahwa UNVR mengalami mines pada periode terakhirnya. Kemudian, nilai rata-rata return dari setiap saham adalah berikut ini:
## TLKM.JK BBCA.JK UNVR.JK PGAS.JK SIDO.JK
## 4.319757e-04 6.669813e-04 -9.356402e-04 2.312873e-04 3.602163e-05
2.5 Nilai dan Visualisasi Matriks Korelasi Berdasarkan Return Saham
Pada proses ini, dilakukan perhitungan matriks korelasi dari return menggunakan fungsi cor(). Fungsi ini akan menghasilkan matriks korelasi yang menunjukkan seberapa erat hubungan antara return saham-saham dalam portofolio.
Dimana, korelasi merupakan suatu ukuran statistik yang mengukur sejauh mana dua variabel bergerak bersama-sama. Dalam konteks ini, korelasi antara return saham-saham menggambarkan sejauh mana perubahan harga saham-saham tersebut bergerak bersama-sama. Korelasi yang tinggi antara dua saham menunjukkan bahwa perubahan harga keduanya cenderung bergerak ke arah yang sama, sedangkan korelasi yang rendah menunjukkan bahwa perubahan harga keduanya cenderung bergerak secara independen.
Matriks korelasi ini sangat penting dalam analisis diversifikasi karena membantu investor memahami sejauh mana portofolio mereka telah terdiversifikasi. Dengan memperhatikan korelasi antara return saham-saham, investor dapat mengidentifikasi apakah portofolio mereka terlalu terpapar pada risiko dari satu sektor tertentu atau tidak, serta mengukur seberapa efektif diversifikasi mereka dalam mengurangi risiko secara keseluruhan.
## TLKM.JK BBCA.JK UNVR.JK PGAS.JK SIDO.JK
## TLKM.JK 1.00000000 0.26218459 0.05626705 0.11769905 0.04052578
## BBCA.JK 0.26218459 1.00000000 0.14031663 0.14637843 0.02869236
## UNVR.JK 0.05626705 0.14031663 1.00000000 0.09366931 0.07133272
## PGAS.JK 0.11769905 0.14637843 0.09366931 1.00000000 0.08106708
## SIDO.JK 0.04052578 0.02869236 0.07133272 0.08106708 1.00000000
Matriks korelasi di atas menunjukkan hubungan antara return harian dari lima saham dalam portofolio. Sebagai contoh, korelasi antara return saham TLKM.JK dan BBCA.JK adalah sekitar 0.26, menunjukkan adanya hubungan positif yang lemah antara kedua saham tersebut. Hal serupa juga terjadi pada saham TLKM.JK dan PGAS.JK, serta TLKM.JK dan UNVR.JK, dengan korelasi masing-masing sekitar 0.12 dan 0.06, menunjukkan hubungan positif yang lemah antara keduanya. Namun, korelasi antara TLKM.JK dan SIDO.JK hanya sekitar 0.04, menunjukkan hubungan yang sangat lemah antara kedua saham tersebut. Informasi tentang korelasi antara return saham-saham dalam portofolio memberikan gambaran tentang seberapa terdiversifikasi portofolio tersebut. Semakin rendah korelasi antara return saham-saham, semakin efektif diversifikasi dalam mengurangi risiko portofolio secara keseluruhan. Oleh karena itu, pemahaman terhadap matriks korelasi ini penting bagi investor dalam membuat keputusan investasi yang lebih cerdas dan efisien.
Berdasarkan hasil di atas, mungkin akan membuat orang awam sangat
sulit memahami dan membaca hasil tersebut. Oleh karena itu lebih mudah
dan menarik, jikalau divisualisasikan dalam bentuk yang lebih menarik
agar mudah dipahami. Berikut adalah langkah dalam menyajikan visualisasi
yang menggunakan corrplot() dari nilai korelasi return
saham tersebut:
col <- colorRampPalette(c("white", "black"))(10)
col <- colorRampPalette(c("#16FFCE", "#0726F4"))(100)
corrplot(korelasi, method = "color", col = col, col.text = "black", cl.cex = 0.8)## Warning in text.default(pos.xlabel[, 1], pos.xlabel[, 2], newcolnames, srt =
## tl.srt, : "col.text" is not a graphical parameter
## Warning in text.default(pos.ylabel[, 1], pos.ylabel[, 2], newrownames, col =
## tl.col, : "col.text" is not a graphical parameter
## Warning in title(title, ...): "col.text" is not a graphical parameter
Berdasarkan hasil visualisasi menggunakan corrplot()
di atas didapatkan kesimpulan bahwa semakin gelap warna kotaknya, maka
korelasi antara saham semakin kuat atau tinggi. Namun, menurut saya
visualisasi ini kurang menarik, sehingga saya membuat tambahan heatmap
dari paket plotly seperti berikut:
heatmap_plot <- plot_ly(z = korelasi,
colorscale = "YlGnBu",
type = "heatmap",
colorbar = list(title = "Nilai Korelasi"),
hoverinfo = "z",
x = colnames(korelasi),
y = colnames(korelasi)) %>%
layout(title = "Heatmap Korelasi Saham")
heatmap_plotHasilnya lebih menarik dan interaktif, selain itu untuk pembaca juga dapat langsung mengetahui nilai korelasi dari setiap hubungan antar saham. Pada visualisasi tersebut, untuk menentukan korelasi yang tinggi dapat dilihat dari warnanya yang semakin terang.
2.6 Perhitungan Return Portofolio dan Standar Deviasi
Proses ini merupakan perhitungan return dan standar deviasi portofolio berdasarkan bobot yang sama untuk setiap saham. Bobot yang sama berarti bahwa setiap saham memiliki kontribusi yang sama terhadap nilai total portofolio.
Langkah ini dilakukan untuk mengukur kinerja portofolio dan tingkat risiko yang terkait dengan portofolio tersebut. Dengan menghitung return portofolio, kita dapat mengetahui seberapa baik portofolio tersebut berperforma dalam mencapai return yang diharapkan. Sedangkan dengan menghitung standar deviasi portofolio, kita dapat mengukur tingkat volatilitas atau risiko portofolio. Standar deviasi yang lebih rendah menunjukkan bahwa portofolio memiliki risiko yang lebih rendah.
# Menentukan Matriks Kovariansi
covariance_mat <- cov(return_saham) * 252 # Nilai 252 dari total hari kerja di bursa Saham
covariance_mat## TLKM.JK BBCA.JK UNVR.JK PGAS.JK SIDO.JK
## TLKM.JK 0.060470448 0.013597690 0.004519945 0.010052114 0.002700737
## BBCA.JK 0.013597690 0.044480816 0.009667250 0.010722013 0.001639955
## UNVR.JK 0.004519945 0.009667250 0.106712395 0.010627169 0.006315032
## PGAS.JK 0.010052114 0.010722013 0.010627169 0.120621781 0.007630215
## SIDO.JK 0.002700737 0.001639955 0.006315032 0.007630215 0.073444403
Nilai 240 hari saya ambil berdasarkan laman dari Bursa Efek Indonesia yang mengumumkan bahwa total hari aktif dalam perdagangan saham di Indonesia sebanyak 252 hari. Selanjutnya, dilakukan proses perhitungan untuk besaran pengembalian yang didapat dan besaran risiko dari portofolio yang ada.
set.seed(123)
wts <- runif(n = length(saham))
wts <- wts/sum(wts)
port_returns <- (sum(wts * mean_ret) + 1)^252 - 1
port_risk <- sqrt(t(wts) %*% (covariance_mat %*% wts))
diver_ratio <- port_returns/port_risk## [1] 0.03924944
## [,1]
## [1,] 0.1576703
## [,1]
## [1,] 0.2489336
Berdasarkan hasil di atas dapat diketahui bahwa nilai return yang didapatkan dari seluruh saham yang dimiliki adalah sebesar 0.03924944, besaran return tersebut menurut saya sangatlah kecil jika berinvestasi mulai dari tahun 2021 hingga saat ini, bahkan diketahui nilai risiko lebih tinggi dibandingkan nilai besaran returnnya, yaitu sebesar 0.1576703 dan berdasarkan hasil tersebut juga diketahui bahwa secara keseluruhan kinerja dari portofolio ini dinilai sebesar 0.2489336 atau 24%.
2.7 Bobot Portofolio
Pada tahap ini, saya akan membuat fungsi objektif untuk menentukan portofolio untuk memastikan lebih detail sejauh mana investasi ini dikatakan signifikan. Langkahnya seperti berikut:
num_port <- 5000
all_wts <- matrix(nrow = num_port,
ncol = length(saham))
port_returns <- vector('numeric', length = num_port)
port_risk <- vector('numeric', length = num_port)
sharpe_ratio <- vector('numeric', length = num_port)
for (i in seq_along(port_returns)) {
wts <- runif(length(saham))
wts <- wts/sum(wts)
all_wts[i,] <- wts
port_ret <- sum(wts * mean_ret)
port_ret <- ((port_ret + 1)^252) - 1
port_returns[i] <- port_ret
port_sd <- sqrt(t(wts) %*% (covariance_mat %*% wts))
port_risk[i] <- port_sd
sr <- port_ret/port_sd
sharpe_ratio[i] <- sr
}portfolio_values <- tibble(Return = port_returns,
Risk = port_risk,
SharpeRatio = sharpe_ratio)
all_wts <- tk_tbl(all_wts)## Warning in tk_tbl.data.frame(as.data.frame(data), preserve_index, rename_index,
## : Warning: No index to preserve. Object otherwise converted to tibble
## successfully.
colnames(all_wts) <- colnames(return_saham)
portfolio_values <- tk_tbl(cbind(all_wts, portfolio_values))## Warning in tk_tbl.data.frame(cbind(all_wts, portfolio_values)): Warning: No
## index to preserve. Object otherwise converted to tibble successfully.
2.8 Portofolio Optimal
min_var <- portfolio_values[which.min(portfolio_values$Risk),]
p <- min_var %>%
gather(TLKM.JK:SIDO.JK, key = Asset,
value = Weights) %>%
mutate(Asset = as.factor(Asset)) %>%
ggplot(aes(x = fct_reorder(Asset,Weights), y = Weights, fill = Asset)) +
geom_bar(stat = 'identity') +
theme_minimal() +
labs(x = 'Aset',
y = 'Bobot',
title = "Bobot Portofolio dengan Variansi Minimum") +
scale_y_continuous(labels = scales::percent) +
theme(legend.position="none")
ggplotly(p)Berdasarkan hasil plot tersebut diketahui bahwa mayoritas portofolio diinvestasikan pada saham BBCA dan SIDO.
2.9 Visualisasi
max_sr <- portfolio_values[which.max(portfolio_values$SharpeRatio),]
p <- max_sr %>%
gather(TLKM.JK:SIDO.JK, key = Asset,
value = Weights) %>%
mutate(Asset = as.factor(Asset)) %>%
ggplot(aes(x = fct_reorder(Asset,Weights), y = Weights, fill = Asset)) +
geom_bar(stat = 'identity') +
theme_minimal() +
labs(x = 'Aset',
y = 'Bobot',
title = "Bobot Portofolio Tangensi (Maksimum Sharpe Ratio)") +
scale_y_continuous(labels = scales::percent)+
theme(legend.position="none")
ggplotly(p)Terlihat bahwa untuk masing-masing saham, ternyata BBCA yang memiliki sharpe ratio tertinggi.
p <- portfolio_values %>%
ggplot(aes(x = Risk, y = Return, color = SharpeRatio)) +
geom_point() +
theme_classic() +
scale_y_continuous(labels = scales::percent) +
scale_x_continuous(labels = scales::percent) +
labs(x = 'Risiko Tahunan',
y = 'Pengembalian Tahunan',
title = "Optimasi Portofolio & Perbatasan yang Efisien") +
geom_point(aes(x = Risk, y = Return), data = min_var, color = 'red') +
geom_point(aes(x = Risk, y = Return), data = max_sr, color = 'red') +
annotate('text', x = 0.31, y = 0.31, label = "Portofolio Tangensi") +
annotate('text', x = 0.24, y = 0.11, label = "Portofolio Varians minimum") +
annotate(geom = 'segment', x = 0.3023, xend = 0.3023, y = 0.23,
yend = 0.29, color = 'red', arrow = arrow(type = "open")) +
annotate(geom = 'segment', x = 0.25, xend = 0.25, y = 0.015,
yend = 0.10, color = 'red', arrow = arrow(type = "open"))
ggplotly(p)2.10 Nilai Harapan Return dan Voltalitas
optimal_weights <- as.vector(portfolio_values[which.max(portfolio_values$SharpeRatio), 1:length(saham)])
mean_ret <- as.numeric(mean_ret)
optimal_weights <- as.numeric(optimal_weights)
expected_return_optimal <- sum(optimal_weights * mean_ret)
volatility_optimal <- sqrt(t(optimal_weights) %*% covariance_mat %*% optimal_weights)## [1] 0.0005559059
## [,1]
## [1,] 0.1718606
Berdasarkan hasil tersebut diketahui bahwa nilai harapan untuk return yang diterima sangatlah kecil, yaitu hanya sebesar 0.0005559058 dan hal ini terjadi karena memang harga dari saham tersebut mengalami penurunan. Kemudian, untuk risiko sangatlah besar, yaitu 0.1718605 dan berdasarkan hasil tersebut dapat disimpulkan bahwa risiko menginvestasikan ke saham-saham tersebut sangatlah tinggi risiko.
3 Kasus Kedua
Sebagai seorang Aktuaris di sebuah Perusahaan Asuransi, pemahaman mendalam tentang risiko yang terkait dengan portofolio asuransi sangat penting. Dalam kasus ini, tujuan utama adalah untuk menganalisis risiko asuransi dengan membuat simulasi data klaim dan premi untuk sekelompok kebijakan asuransi.
Dalam industri asuransi, risiko diukur dengan berbagai metrik, termasuk loss ratio. Loss ratio adalah perbandingan antara total klaim yang diajukan oleh nasabah dengan total premi yang diterima oleh perusahaan. Rasio ini memberikan gambaran tentang seberapa besar perusahaan harus membayar klaim dibandingkan dengan jumlah premi yang diterima, sehingga memberikan petunjuk tentang profitabilitas portofolio asuransi.
Dalam konteks ini, langkah-langkah yang dilakukan adalah:
- Simulasi Data: Membuat data simulasi untuk premi dan klaim asuransi. Ini dilakukan dengan menggunakan distribusi acak untuk mencerminkan variasi dalam premi dan klaim yang mungkin terjadi.
- Analisis Frekuensi dan Jumlah Klaim: Dalam model ini, kita memperkirakan frekuensi dan jumlah klaim untuk setiap kebijakan asuransi. Ini membantu dalam memahami pola klaim dan seberapa sering klaim dapat diajukan.
*Perhitungan Loss Ratio: Loss ratio dihitung sebagai indikator utama dalam menilai risiko asuransi. Rasio ini memberikan pemahaman tentang seberapa besar klaim yang dibayarkan oleh perusahaan dibandingkan dengan premi yang diterima. Semakin tinggi rasio ini, semakin besar risiko yang terkait dengan portofolio asuransi.
- Analisis dan Visualisasi: Data loss ratio dianalisis dan divisualisasikan menggunakan histogram untuk memahami distribusi risiko di antara kebijakan asuransi.
3.1 Mempersiapkan Data
Pada bagian awal kali ini, saya akan mempersiapkan data untuk 10000 kebijakan selama 15 tahun yang kemudian juga membuat data random untuk jumlah klaim dati setiap tahun dengan mean = 5005, sd = 2005. Selanjutnya, digunakan distribusi poisson untuk menentukan frekuensi klaim dengan nilai lambda atau rata-rata sebesar 0.1
set.seed(123)
policies <- 10000
years <- 15
lambda <- 0.1
claims_data <- data.frame(
PolicyID = integer(),
Year = integer(),
Claims = numeric(),
ClaimAmount = numeric()
)
for (policy_id in 1:policies) {
for (year in 1:years) {
num_claims <- rpois(1, lambda)
if (num_claims > 0) {
claim_amounts <- rnorm(num_claims, 5005, 2005)
claims_data <- rbind(claims_data, data.frame(
PolicyID = rep(policy_id, num_claims),
Year = rep(year, num_claims),
Claims = num_claims,
ClaimAmount = claim_amounts
))
}
}
}
head(claims_data)## PolicyID Year Claims ClaimAmount
## 1 1 5 1 1617.441
## 2 1 9 1 4769.930
## 3 2 1 1 7459.284
## 4 2 3 1 5808.547
## 5 2 8 1 7601.000
## 6 6 2 1 7497.052
3.2 Menentukan Besaran Premi
Selanjutnya akan ditentukan besara premi dengan nilai mean = 1005 dan sd = 2005
set.seed(123)
premiums <- abs(rnorm((nrow(claims_data)), mean = 1005, sd = 2005))
claims_data$Premiums = premiums
head(claims_data)## PolicyID Year Claims ClaimAmount Premiums
## 1 1 5 1 1617.441 118.7537
## 2 1 9 1 4769.930 543.4941
## 3 2 1 1 7459.284 4130.2102
## 4 2 3 1 5808.547 1146.3693
## 5 2 8 1 7601.000 1264.2219
## 6 6 2 1 7497.052 4443.7053
Berdasarkan hasil tersebut telah menjawab bagian pertanyaan untuk a, b, c dan d.
3.3 Menghitung Loss Ratio
Selanjutnya, menghitung besaran loss ratio yang mana Loss ratio adalah ukuran yang digunakan dalam industri asuransi untuk mengevaluasi kinerja keuangan sebuah perusahaan asuransi. Loss ratio mengukur seberapa besar klaim yang diajukan oleh nasabah dibandingkan dengan premi yang diterima oleh perusahaan asuransi.
Secara matematis, loss ratio dihitung dengan membagi total jumlah klaim yang diajukan oleh nasabah dengan total premi yang diterima oleh perusahaan. Umumnya, loss ratio dinyatakan dalam bentuk persentase.
Loss ratio penting karena memberikan gambaran tentang seberapa efisien dan berkelanjutan operasi bisnis perusahaan asuransi. Semakin rendah loss ratio, semakin baik kinerja perusahaan asuransi karena menunjukkan bahwa perusahaan dapat menghasilkan premi yang cukup untuk menutupi klaim nasabahnya. Sebaliknya, loss ratio yang tinggi dapat menandakan adanya risiko keuangan yang besar bagi perusahaan asuransi.
Dengan memantau loss ratio secara teratur, perusahaan asuransi dapat mengidentifikasi tren dan pola yang mungkin mempengaruhi kinerja keuangan mereka, serta mengambil tindakan yang tepat untuk mengelola risiko dan meningkatkan profitabilitas.
total_claim_amounts <- tapply(claims_data$ClaimAmount, claims_data$PolicyID, sum)
total_premiums <- tapply(claims_data$Premiums, claims_data$PolicyID, sum)
loss_ratios <- total_claim_amounts / total_premiums
# Display the first few loss ratios
ratio = data.frame(loss_ratios)
head(ratio)## loss_ratios
## 1 9.644986
## 2 3.190562
## 6 1.687117
## 7 3.178135
## 8 2.598449
## 11 9.887550
Berdasarkan hasil loss ratio yang beragam antara kebijakan asuransi yang berbeda, dapat disimpulkan bahwa terdapat variasi signifikan dalam kinerja keuangan dan risiko di antara kebijakan tersebut. Loss ratio yang tinggi menunjukkan risiko yang lebih besar atau klaim yang lebih besar dibandingkan dengan premi yang diterima, sementara loss ratio yang rendah menunjukkan bahwa perusahaan menerima premi yang lebih tinggi dibandingkan dengan klaim yang diajukan oleh nasabah. Variasi ini mempengaruhi profitabilitas dan stabilitas keuangan perusahaan asuransi, dan perusahaan perlu memantau loss ratio secara teratur untuk mengidentifikasi tren, mengelola risiko, dan meningkatkan profitabilitasnya.
3.4 Visualisasi
3.4.1 Histogram Sebaran Loss Ratio
ggplot(ratio, aes(x = loss_ratios)) +
geom_histogram(bins = 100, fill = "skyblue", color = "black") +
labs(title = "Distribution of Loss Ratios",
x = "Loss Ratio",
y = "Frequency") +
theme_minimal()3.4.2 Sebaran Plot
total_claim_amounts <- tapply(claims_data$ClaimAmount, claims_data$PolicyID, sum)
total_premiums <- tapply(claims_data$Premiums, claims_data$PolicyID, sum)
premium_claim_data <- data.frame(TotalClaims = total_claim_amounts,
TotalPremiums = total_premiums)
ggplot(premium_claim_data, aes(x = TotalPremiums, y = TotalClaims)) +
geom_point(color = "lightgreen") +
labs(title = "Total Claims vs. Total Premiums",
x = "Total Premiums",
y = "Total Claims") +
theme_minimal()3.5 Ringkasan Statistik
mean_loss_ratio <- mean(loss_ratios)
median_loss_ratio <- median(loss_ratios)
p95_loss_ratio <- quantile(loss_ratios, probs = 0.95)## Mean Loss Ratio: 7.595356
## Median Loss Ratio: 2.958643
## 95th Percentile of Loss Ratios: 17.81987
Dari hasil perhitungan statistik pada loss ratios, ditemukan bahwa rata-rata (mean) loss ratio adalah sekitar 7.595, sementara median loss ratio adalah sekitar 2.959. Hal ini menunjukkan adanya kemungkinan adanya pencilan (outliers) yang mempengaruhi rata-rata secara signifikan, sehingga nilai median lebih tepat merepresentasikan “nilai tengah” dari distribusi. Selain itu, nilai persentil ke-95 dari loss ratios adalah sekitar 17.81987 , yang menunjukkan bahwa sebagian kecil dari kebijakan memiliki loss ratio yang sangat tinggi. Informasi ini dapat memberikan wawasan yang berharga bagi perusahaan asuransi dalam mengevaluasi risiko dan mengelola portofolio polis asuransi mereka dengan lebih efektif.