Dalam matematika aktuaria, Harapan Hidup Lengkap (Complete Expectation of Life) merupakan salah satu konsep fundamental dalam model survival. Konsep ini mengukur rata-rata lama waktu hidup yang masih dapat dicapai oleh seseorang pada usia tertentu. Terdapat dua pendekatan utama dalam menghitung harapan hidup, yaitu:
Model Kontinu (Complete Expectation of Life): Mengasumsikan bahwa kematian dapat terjadi pada setiap titik waktu (detik, menit, dll). Perhitungan ini menggunakan integral dari fungsi survival \({}_t p_x\). Notasi yang sering digunakan adalah \(\mathring{e}_x\).
Model Diskrit (Curtate Expectation of Life): Hanya menghitung usia bulat penuh yang dapat dicapai seseorang. Pecahan tahun tidak dihitung. Perhitungan ini menggunakan penjumlahan (sumasi) dari peluang survival Notasi yang sering digunakan adalah \(e_x\).
Selain nilai ekspektasi (rata-rata), dalam analisis risiko asuransi jiwa, kita juga perlu menghitung Variansi untuk mengukur seberapa besar penyebaran data sisa usia dari nilai rata-ratanya. Variansi ini penting untuk menghitung standar deviasi yang digunakan dalam penentuan cadangan dan premi.
\[s(x) = 1 - (0.01x)^2, \quad 0 \leq x < 100\]
Bagian ini akan menghitung harapan hidup lengkap menggunakan pendekatan integral. Kita mendefinisikan fungsi peluang survival \({}_t p_x\) berdasarkan fungsi \(s(x)\) yang diberikan, kemudian mengintegralkan dari waktu \(0\) hingga \(n\) tahun. Variansi dihitung menggunakan momen kedua dari variabel random sisa usia \(T(x)\).
Rumus harapan hidup lengkap untuk jangka waktu \(n\) tahun adalah:
\[\mathring{e}_{x:\overline{n}|} = \int_{0}^{n} {}_t p_x \, dt\] Dimana \[{}_t p_x = \frac{s(x+t)}{s(x)}\] Untuk variansi, kita menggunakan rumus: \[\text{Var}[T(x)] = E[T(x)^2] - (E[T(x)])^2 = 2 \int_{0}^{n} t \cdot {}_t p_x \, dt - (\mathring{e}_{x:\overline{n}|})^2\]
# Fungsi untuk Harapan Hidup Lengkap (Kontinu)
# age : Usia saat ini (x)
# n : Jangka waktu perhitungan (n tahun)
contoh.2.3.1a <- function(age, n){
# Definisi fungsi peluang survival _t p_x
exp.kontinu <- function(t){
(1 - (0.01 * (age + t))^2) / (1 - (0.01 * age)^2)
}
# Definisi fungsi untuk momen kedua (t * _t p_x)
exp2.kontinu <- function(t){
t * (1 - (0.01 * (age + t))^2) / (1 - (0.01 * age)^2)
}
# Menghitung Ekspektasi (e_x) menggunakan integral
output.exp.kontinu <- integrate(exp.kontinu, 0, n)$value
# Menghitung E[T(x)^2] untuk variansi (2 * integral t * _t p_x dt)
output.exp2.kontinu <- 2 * integrate(exp2.kontinu, 0, n)$value
# Menghitung Variansi
output.var.kontinu <- output.exp2.kontinu - (output.exp.kontinu^2)
# Menampilkan Output
cat("=== Hasil Harapan Hidup Lengkap (Kontinu) ===\n")
cat("Nilai Ekspektasi kontinu = ", output.exp.kontinu, "\n")
cat("Nilai (Ekspektasi^2) kontinu = ", output.exp2.kontinu, "\n")
cat("Nilai Variansi kontinu = ", output.var.kontinu, "\n")
}
# Hitung harapan hidup untuk usia 30 tahun, proyeksi 50 tahun ke depan
contoh.2.3.1a(age = 30, n = 50)
## === Hasil Harapan Hidup Lengkap (Kontinu) ===
## Nilai Ekspektasi kontinu = 37.17949
## Nilai (Ekspektasi^2) kontinu = 1607.143
## Nilai Variansi kontinu = 224.8286
Nilai Ekspektasi Kontinu: Angka ini menunjukkan rata-rata lama hidup (dalam tahun, termasuk pecahan) yang diharapkan bagi seseorang berusia 30 tahun untuk 50 tahun ke depan, sesuai dengan \(\mathring{e}_{30:\overline{50}|}\). Karena ini model kontinu, hasilnya akan lebih tinggi dibandingkan model diskrit.
Nilai \((ekspektasi^2)\) Kontinu: Ini adalah nilai momen kedua \(E[T(x)^2]\) yang dikalikan 2 sesuai dengan rumus variansi untuk distribusi kontinu, yaitu \(2 \int_{0}^{n} t \cdot {}_t p_x \, dt\). Nilai Nilai ini bukan kuadrat dari ekspektasi, melainkan komponen untuk mencari variansi.
Nilai Variansi Kontinu: Menunjukkan seberapa besar risiko penyimpangan usia kematian dari rata-rata harapan hidup, dihitung dengan \(\text{Var}[T(x)] = E[T(x)^2] - (\mathring{e}_x)^2\) Variansi yang tinggi mengindikasikan ketidakpastian usia kematian yang lebih besar.
Berbeda dengan model kontinu, model diskrit hanya menghitung tahun penuh. Dalam aktuaria, ini sering disebut sebagai Curtate Expectation of Life. Perhitungan dilakukan menggunakan penjumlahan (sumasi) peluang survival untuk setiap tahun \(k\) dari 1 sampai \(n\). Rumus variansi juga disesuaikan untuk variabel random diskrit \(K(x)\).
Rumus harapan hidup usia bulat adalah: \[e_{x:\overline{n}|} = \sum_{k=1}^{n} {}_k p_x\] Dan variansi untuk model diskrit dihitung dengan: \[\text{Var}[K(x)] = \sum_{k=1}^{n} (2k - 1) \, {}_k p_x - (e_{x:\overline{n}|})^2\]
# Fungsi untuk Harapan Hidup Usia Bulat (Diskrit)
# age : Usia saat ini (x)
# n : Jangka waktu perhitungan (n tahun)
contoh.2.3.1b <- function(age, n){
# Membuat vektor tahun k dari 1 sampai n
k <- 1:n
# Menghitung peluang survival _k p_x
exp.diskret <- (1 - (0.01 * (age + k))^2) / (1 - (0.01 * age)^2)
# Menghitung komponen untuk momen kedua (2k-1) * _k p_x
exp2.diskret <- (2 * k - 1) * (1 - (0.01 * (age + k))^2) / (1 - (0.01 * age)^2)
# Menjumlahkan untuk mendapatkan Ekspektasi
output.exp.diskret <- sum(exp.diskret)
# Menjumlahkan untuk mendapatkan komponen Variansi
output.exp2.diskret <- sum(exp2.diskret)
# Menghitung Variansi
output.var.diskret <- output.exp2.diskret - (output.exp.diskret^2)
# Menampilkan Output
cat("=== Hasil Harapan Hidup Usia Bulat (Diskrit) ===\n")
cat("Nilai Ekspektasi diskret = ", output.exp.diskret, "\n")
cat("Nilai (Ekspektasi^2) diskret = ", output.exp2.diskret, "\n")
cat("Nilai Variansi diskret = ", output.var.diskret, "\n")
}
# Hitung harapan hidup untuk usia 30 tahun, proyeksi 50 tahun ke depan
contoh.2.3.1b(age = 30, n = 50)
## === Hasil Harapan Hidup Usia Bulat (Diskrit) ===
## Nilai Ekspektasi diskret = 36.87637
## Nilai (Ekspektasi^2) diskret = 1589.799
## Nilai Variansi diskret = 229.9325
Nilai Ekspektasi Diskret: Hasil penjumlahan ini biasanya sedikit lebih kecil daripada model kontinu karena pecahan tahun diabaikan (misal: seseorang hidup 30 tahun 11 bulan, dihitung 30 tahun), sesuai dengan definisi \(e_x = \sum_{k=1}^{\infty} {}_k p_x\) Ini adalah nilai \(e_x\) yang umum digunakan dalam produk asuransi yang membayar manfaat pada akhir tahun kematian.
Nilai \((ekspektasi^2)\) Diskret: Merupakan hasil penjumlahan dari komponen \((2k - 1) \cdot {}_k p_x\). Ini mewakili momen kedua dari variabel random diskrit sisa usia.
Nilai Variansi Diskret: Mengukur risiko pada model diskrit menggunakan rumus \(\text{Var}[K(x)] = \sum_{k=1}^{n} (2k - 1) \, {}_k p_x - (e_{x:\overline{n}|})^2\). Biasanya variansi diskrit akan berbeda dengan variansi kontinu karena perbedaan definisi variabel randomnya \(K(X)\) vs \(T(x)\).
Selain menghitung untuk satu usia tertentu, aktuaris sering membutuhkan Tabel Mortalita (Life Table) yang memuat informasi lengkap untuk semua usia dari 0 hingga usia maksimum \((ω)\). Bagian ini akan membuat fungsi untuk menghasilkan tabel tersebut secara otomatis, termasuk kolom harapan hidup \((e_x)\) yang dihitung menggunakan metode rekursi mundur (backward recursion).
Metode rekursi digunakan karena nilai harapan hidup pada usia \(x\) bergantung pada harapan hidup pada usia \(x+1\), dengan rumus: \(e_x = p_x + p_x \cdot e_{x+1}\)
# Fungsi membuat Life Table termasuk Harapan Hidup (ex)
# expr : Ekspresi fungsi survival s(x)
# omega : Usia maksimum
# l0 : Jumlah awal kohort (misal 100000)
buat_life_table <- function(expr, omega, l0){
age <- 0:omega
# Hitung s(x)
sx <- eval({x = age; expr})
# Hitung lx
lx <- l0 * sx
# Hitung dx, px, qx
dx <- px <- qx <- NULL
n <- length(age)
for(i in 1:(n-1)){
dx[i] <- lx[i] - lx[i+1]
px[i] <- lx[i+1] / lx[i]
qx[i] <- 1 - px[i]
}
# Handle nilai terakhir
dx[n] <- NA; px[n] <- NA; qx[n] <- NA
# Hitung (Harapan Hidup)
ex <- NULL
ex[n] <- 0 # Pada usia omega, harapan hidup 0
for(i in 1:(n-1)){
idx <- n - i
ex[idx] <- px[idx] + (px[idx] * ex[idx + 1])
}
# Membuat Data Frame
tabel <- data.frame(age = age, qx = qx, px = px, lx = lx, dx = dx, sx = sx, ex = ex)
return(tabel)
}
# Contoh menggunakan s(x) = 1 - (0.01x)^2
expr <- expression(1 - (0.01 * x)^2)
tabel_hasil <- buat_life_table(expr, omega = 99, l0 = 100000)
# Tampilkan beberapa baris pertama termasuk kolom ex (Harapan Hidup)
print(head(tabel_hasil[, c("age", "px", "ex")], 10))
## age px ex
## 1 0 0.9999000 66.16500
## 2 1 0.9997000 65.17162
## 3 2 0.9994998 64.19118
## 4 3 0.9992994 63.22330
## 5 4 0.9990986 62.26763
## 6 5 0.9988972 61.32381
## 7 6 0.9986953 60.39151
## 8 7 0.9984926 59.47040
## 9 8 0.9982890 58.56019
## 10 9 0.9980845 57.66055
Struktur Tabel: Output akan menampilkan data frame yang berisi kolom \(age\) (usia), \(px\) (peluang hidup satu tahun), dan \(ex\) (harapan hidup).
Kolom \(px\): Menunjukkan peluang seseorang berusia tertentu untuk bertahan hidup hingga usia berikutnya, dihitung sebagai \(p_x = \frac{l_{x+1}}{l_x}\). Nilai ini akan menurun seiring bertambahnya usia.
Kolom \(ex\): Ini adalah hasil perhitungan rekursi \(e_x = p_x + p_x \cdot e_{x+1}\). Perhatikan bahwa pada usia muda, nilai \(ex\) akan besar karena peluang hidup \((px)\) masih tinggi dan sisa usia potensial masih panjang. Pada usia mendekati \(ω\) (99 tahun), nilai ex akan mendekati 0.