Harapan Hidup Lengkap

Aktuaria

Fathir Rizwa

Pendahuluan: Konsep Harapan Hidup dalam Aktuaria

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.

Contoh 2.3.1 Menggunakan Fungsi Survival

\[s(x) = 1 - (0.01x)^2, \quad 0 \leq x < 100\]

1. Perhitungan Harapan Hidup Lengkap Model Kontinu

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\]

Implementasi pada R

# 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.

2. Perhitungan Harapan Hidup Usia Bulat (Model Diskrit)

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\]

Implementasi R

# 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)\).

3. Pembuatan Tabel Mortalita dan Harapan Hidup (Life Table)

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}\)

Implementasi R

# 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.