Example: Life Tables
This example is taken from Chiang (1968). The cohort life table has thirteen equally spaced intervals, so age[0] is set to -5.0. Similarly, the probabilities of death prior to the middle of the interval are all taken to be 0.5, so a[0] is set to -1.0.
import com.imsl.stat.*;
import com.imsl.math.PrintMatrix;
import com.imsl.math.PrintMatrixFormat;
public class LifeTablesEx1 {
public static void main(String args[]) {
int[] nCohort = {270, 268, 264, 261, 254, 251,
248, 232, 166, 130, 76, 34, 13};
double[] age = new double[nCohort.length + 1];
double[] a = new double[nCohort.length];
age[0] = -5.0;
a[0] = -1.0;
LifeTables lt = new LifeTables(nCohort, age, a);
double[][] table = lt.getLifeTable();
PrintMatrixFormat pmf = new PrintMatrixFormat();
String[] cols = {"Age", "PDHALF", "Alive", "Deaths", "Death Rate",
"P(D)", "Std(P(D))", "P(S)", "Std(P(S))", "Lifetime",
"Std(Life)", "Time Units"};
pmf.setColumnLabels(cols);
pmf.setNumberFormat(new java.text.DecimalFormat("0.0####"));
PrintMatrix pm = new PrintMatrix("Life Table");
pm.setPageWidth(40);
pm.print(pmf,table);
}
}
Output
Life Table
Age PDHALF Alive Deaths
0 0.0 0.5 270.0 2.0
1 5.0 0.5 268.0 4.0
2 10.0 0.5 264.0 3.0
3 15.0 0.5 261.0 7.0
4 20.0 0.5 254.0 3.0
5 25.0 0.5 251.0 3.0
6 30.0 0.5 248.0 16.0
7 35.0 0.5 232.0 66.0
8 40.0 0.5 166.0 36.0
9 45.0 0.5 130.0 54.0
10 50.0 0.5 76.0 42.0
11 55.0 0.5 34.0 21.0
12 60.0 0.5 13.0 13.0
Death Rate P(D) Std(P(D)) P(S)
0 ? 0.00741 0.00522 1.0
1 ? 0.01493 0.00741 0.99259
2 ? 0.01136 0.00652 0.97778
3 ? 0.02682 0.01 0.96667
4 ? 0.01181 0.00678 0.94074
5 ? 0.01195 0.00686 0.92963
6 ? 0.06452 0.0156 0.91852
7 ? 0.28448 0.02962 0.85926
8 ? 0.21687 0.03199 0.61481
9 ? 0.41538 0.04322 0.48148
10 ? 0.55263 0.05704 0.28148
11 ? 0.61765 0.08334 0.12593
12 ? 1.0 0.0 0.04815
Std(P(S)) Lifetime Std(Life) Time Units
0 0.0 43.18519 0.69929 1345.0
1 0.00522 38.48881 0.67074 1330.0
2 0.00897 34.03409 0.62303 1312.5
3 0.01092 29.39655 0.59401 1287.5
4 0.01437 25.1378 0.54028 1262.5
5 0.01557 20.40837 0.52367 1247.5
6 0.01665 15.625 0.51485 1200.0
7 0.02116 11.53017 0.49815 995.0
8 0.02962 10.12048 0.46017 740.0
9 0.03041 7.23077 0.4328 515.0
10 0.02737 5.59211 0.43607 275.0
11 0.02019 4.41176 0.41671 117.5
12 0.01303 2.5 0.0 32.5
Link to Java source.