### Example : KaplanMeierEstimates

The following example is taken from Kalbfleisch and Prentice (1980, page 1). The first column in `x` contains the death/censoring times for rats suffering from vaginal cancer. The second column contains information as to which of two forms of treatment were provided, while the third column contains the censoring code. Finally, the fourth column contains the frequency of each observation. The product-limit estimates of the survival probabilities are computed for both groups along with their standard error estimates. Tables containing these values along with other statistics are printed.
```
import java.text.*;
import com.imsl.stat.*;

public class KaplanMeierEstimatesEx1 {

public static void main(String args[]) {
double[][] x = {
{143, 5, 0, 1}, {164, 5, 0, 1}, {188, 5, 0, 2}, {190, 5, 0, 1},
{192, 5, 0, 1}, {206, 5, 0, 1}, {209, 5, 0, 1}, {213, 5, 0, 1},
{216, 5, 0, 1}, {220, 5, 0, 1}, {227, 5, 0, 1}, {230, 5, 0, 1},
{234, 5, 0, 1}, {246, 5, 0, 1}, {265, 5, 0, 1}, {304, 5, 0, 1},
{216, 5, 1, 1}, {244, 5, 1, 1}, {142, 7, 0, 1}, {156, 7, 0, 1},
{163, 7, 0, 1}, {198, 7, 0, 1}, {205, 7, 0, 1}, {232, 7, 0, 2},
{233, 7, 0, 4}, {239, 7, 0, 1}, {240, 7, 0, 1}, {261, 7, 0, 1},
{280, 7, 0, 2}, {296, 7, 0, 2}, {323, 7, 0, 1}, {204, 7, 1, 1},
{344, 7, 1, 1}
};
int nobs = x.length, censorIndex = 2, frequencyIndex = 3;
int stratumIndex = 1, responseIndex = 0;
int i, groupValue;

// Get Kaplan-Meir Estimates
KaplanMeierEstimates km = new KaplanMeierEstimates(x);
km.setCensorColumn(censorIndex);
km.setFrequencyColumn(frequencyIndex);
km.setStratumColumn(stratumIndex);
int[] atRisk = km.getNumberAtRisk();
int[] nFailing = km.getNumberOfFailures();
double[] prob = km.getSurvivalProbabilities();
double[] se = km.getStandardErrors();

// Print Results
NumberFormat nf = NumberFormat.getInstance();
nf.setMaximumFractionDigits(4);
nf.setMinimumFractionDigits(4);
i = 0;
while (i < nobs) {
groupValue = (int) x[i][stratumIndex];
System.out.println("\n       Kaplan-Meier Survival Probabilities");
System.out.println("               For Group Value = "
+ groupValue);
System.out.println("\nNumber     Number"
+ "                Survival     Estimated");
System.out.println("at risk    Failing     Time"
+ "     Probability   Std. Error");
while (i < nobs && ((int) x[i][stratumIndex] == groupValue)) {
if ((int) x[i][censorIndex] != 1) {
System.out.println("  " + atRisk[i] + "          "
+ nFailing[i] + "" + "         "
+ ((int) x[i][responseIndex]) + "       "
+ nf.format(prob[i]) + "        "
+ nf.format(se[i]));
}
i++;
}
System.out.println("\nTotal number in group = "
+ km.getGroupTotal(groupValue));
System.out.println("Total number failing = "
+ km.getTotalNumberOfFailures(groupValue));
System.out.println("Product Limit likelihood = "
+ nf.format(km.getLogLikelihood(groupValue)));
}
System.out.println("\nThe number of rows of x with missing values is "
+ km.getNumberOfRowsMissing());
}
}
```

#### Output

```
Kaplan-Meier Survival Probabilities
For Group Value = 5

Number     Number                Survival     Estimated
at risk    Failing     Time     Probability   Std. Error
19          1         143       0.9474        0.0512
18          1         164       0.8947        0.0704
17          2         188       0.7895        0.0935
15          1         190       0.7368        0.1010
14          1         192       0.6842        0.1066
13          1         206       0.6316        0.1107
12          1         209       0.5789        0.1133
11          1         213       0.5263        0.1145
10          1         216       0.4737        0.1145
8          1         220       0.4145        0.1145
7          1         227       0.3553        0.1124
6          1         230       0.2961        0.1082
5          1         234       0.2368        0.1015
3          1         246       0.1579        0.0934
2          1         265       0.0789        0.0728
1          1         304       0.0000        ?

Total number in group = 19
Total number failing = 17
Product Limit likelihood = -49.1692

Kaplan-Meier Survival Probabilities
For Group Value = 7

Number     Number                Survival     Estimated
at risk    Failing     Time     Probability   Std. Error
21          1         142       0.9524        0.0465
20          1         156       0.9048        0.0641
19          1         163       0.8571        0.0764
18          1         198       0.8095        0.0857
16          1         205       0.7589        0.0941
15          2         232       0.6577        0.1053
13          4         233       0.4554        0.1114
9          1         239       0.4048        0.1099
8          1         240       0.3542        0.1072
7          1         261       0.3036        0.1031
6          2         280       0.2024        0.0902
4          2         296       0.1012        0.0678
2          1         323       0.0506        0.0493

Total number in group = 21
Total number failing = 19
Product Limit likelihood = -50.4277

The number of rows of x with missing values is 0
```