This example uses a data set on a study of the analgesic effects of treatments on elderly patients with neuralgia. The purpose
of this example is to show how PROC PLM behaves under different situations when BY-group processing is present. Two test treatments
and a placebo are compared to test whether the patient reported pain or not. For each patient, the information of age, gender,
and the duration of complaint before the treatment began were recorded. The following DATA step creates the data set named
`Neuralgia`

:

Data Neuralgia; input Treatment $ Sex $ Age Duration Pain $ @@; datalines; P F 68 1 No B M 74 16 No P F 67 30 No P M 66 26 Yes B F 67 28 No B F 77 16 No A F 71 12 No B F 72 50 No B F 76 9 Yes A M 71 17 Yes A F 63 27 No A F 69 18 Yes B F 66 12 No A M 62 42 No P F 64 1 Yes A F 64 17 No P M 74 4 No A F 72 25 No P M 70 1 Yes B M 66 19 No B M 59 29 No A F 64 30 No A M 70 28 No A M 69 1 No B F 78 1 No P M 83 1 Yes B F 69 42 No B M 75 30 Yes P M 77 29 Yes P F 79 20 Yes A M 70 12 No A F 69 12 No B F 65 14 No B M 70 1 No B M 67 23 No A M 76 25 Yes P M 78 12 Yes B M 77 1 Yes B F 69 24 No P M 66 4 Yes P F 65 29 No P M 60 26 Yes A M 78 15 Yes B M 75 21 Yes A F 67 11 No P F 72 27 No P F 70 13 Yes A M 75 6 Yes B F 65 7 No P F 68 27 Yes P M 68 11 Yes P M 67 17 Yes B M 70 22 No A M 65 15 No P F 67 1 Yes A M 67 10 No P F 72 11 Yes A F 74 1 No B M 80 21 Yes A F 69 3 No ;

The data set contains five variables. `Treatment`

is a classification variable that has three levels: A and B represent the two test treatments, and P represents the placebo
treatment. `Sex`

is a classification variable that indicates each patient’s gender. `Age`

is a continuous variable that indicates the age in years of each patient when a treatment began. `Duration`

is a continuous variable that indicates the duration of complaint in months. The last variable `Pain`

is the response variable with two levels: ‘Yes’ if pain was reported, ‘No’ if no pain was reported.

Suppose there is some preliminary belief that the dependency of `pain`

on the explanatory variables is different for male and female patients, leading to separate models between genders. You believe
there might be redundant information for predicting the probability of `Pain`

. Thus, you want to perform model selection to eliminate unnecessary effects. You can use the following statements:

proc sort data=Neuralgia; by sex; run; proc logistic data=Neuralgia; class Treatment / param=glm; model pain = Treatment Age Duration / selection=backward; by sex; store painmodel; title 'Logistic Model on Neuralgia'; run;

PROC SORT is called to sort the data by variable `Sex`

. The LOGISTIC procedure is then called to fit the probability of no pain. Three variables are specified for the full model:
`Treatment`

, `Age`

, and `Duration`

. Backward elimination is used as the model selection method. The BY statement fits separate models for male and female patients.
Finally, the STORE statement specifies that the fitted results be saved to an item store named `painmodel`

.

Output 69.5.1 lists parameter estimates from the two models after backward elimination is performed. From the model for female patients,
`Treatment`

is the only factor that affects the probability of no pain, and `Treatment`

A and B have the same positive effect in predicting the probability of no pain. From the model for male patients, both `Treatment`

and `Age`

are included in the selected model. `Treatment`

A and B have different positive effects, while `Age`

has a negative effect in predicting the probability of no pain.

Output 69.5.1: Parameter Estimates for Male and Female Patients

Logistic Model on Neuralgia |

The LOGISTIC Procedure

Analysis of Maximum Likelihood Estimates | ||||||
---|---|---|---|---|---|---|

Parameter | DF | Estimate | Standard Error |
Wald Chi-Square |
Pr > ChiSq | |

Intercept | 1 | -0.4055 | 0.6455 | 0.3946 | 0.5299 | |

Treatment | A | 1 | 2.6027 | 1.2360 | 4.4339 | 0.0352 |

Treatment | B | 1 | 2.6027 | 1.2360 | 4.4339 | 0.0352 |

Treatment | P | 0 | 0 | . | . | . |

Analysis of Maximum Likelihood Estimates | ||||||
---|---|---|---|---|---|---|

Parameter | DF | Estimate | Standard Error |
Wald Chi-Square |
Pr > ChiSq | |

Intercept | 1 | 20.6178 | 9.1638 | 5.0621 | 0.0245 | |

Treatment | A | 1 | 3.9982 | 1.7333 | 5.3208 | 0.0211 |

Treatment | B | 1 | 4.5556 | 1.9252 | 5.5993 | 0.0180 |

Treatment | P | 0 | 0 | . | . | . |

Age | 1 | -0.3416 | 0.1408 | 5.8869 | 0.0153 |

Now the fitted models are saved to the item store `painmodel`

. Suppose you want to use it to score several new observations. The following DATA steps create three data sets for scoring:

data score1; input Treatment $ Sex $ Age; datalines; A F 20 B F 30 P F 40 A M 20 B M 30 P M 40 ; data score2; set score1(drop=sex); run; data score3; set score2(drop=Age); run;

The first score data set `score1`

contains six observations and all the variables that are specified in the full model. The second score data set `score2`

is a duplicate of `score1`

except that `Sex`

is dropped. The third score data set `score3`

is a duplicate of `score2`

except that `Age`

is dropped. You can use the following statements to score the three data sets:

proc plm restore=painmodel; score data=score1 out=score1out predicted; score data=score2 out=score2out predicted; score data=score3 out=score3out predicted; run;

Output 69.5.2 lists the store information that PROC PLM reads from the item store `painmodel`

. The “Model Effects” entry lists all three variables that are specified in the full model before the BY-group processing.

Output 69.5.2: Item Store Information for `painmodel`

Logistic Model on Neuralgia |

The PLM Procedure

Store Information | |
---|---|

Item Store | WORK.PAINMODEL |

Data Set Created From | WORK.NEURALGIA |

Created By | PROC LOGISTIC |

Date Created | 13JUN12:12:38:48 |

By Variable | Sex |

Response Variable | Pain |

Link Function | Logit |

Distribution | Binary |

Class Variables | Treatment Pain |

Model Effects | Intercept Treatment Age Duration |

With the three SCORE statements, three data sets are thus produced: `score1out`

, `score2out`

, and `score3out`

. They contain the linear predictors in addition to all original variables. The data set `score1out`

contains the values shown in Output 69.5.3.

Output 69.5.3: Values of Data Set `score1out`

Logistic Model on Neuralgia |

Obs | Treatment | Sex | Age | Predicted |
---|---|---|---|---|

1 | A | F | 20 | 2.1972 |

2 | B | F | 30 | 2.1972 |

3 | P | F | 40 | -0.4055 |

4 | A | M | 20 | 17.7850 |

5 | B | M | 30 | 14.9269 |

6 | P | M | 40 | 6.9557 |

Linear predictors are computed for all six observations. Because the BY variable `Sex`

is available in `score1`

, PROC PLM uses separate models to score observations of male and female patients. So an observation with the same `Treatment`

and `Age`

has different linear predictors for different genders.

The data set `score2out`

contains the values shown in Output 69.5.4.

Output 69.5.4: Values of Data Set `score2out`

Logistic Model on Neuralgia |

Obs | Sex | Treatment | Age | Predicted |
---|---|---|---|---|

1 | F | A | 20 | 2.1972 |

2 | F | B | 30 | 2.1972 |

3 | F | P | 40 | -0.4055 |

4 | F | A | 20 | 2.1972 |

5 | F | B | 30 | 2.1972 |

6 | F | P | 40 | -0.4055 |

7 | M | A | 20 | 17.7850 |

8 | M | B | 30 | 14.9269 |

9 | M | P | 40 | 6.9557 |

10 | M | A | 20 | 17.7850 |

11 | M | B | 30 | 14.9269 |

12 | M | P | 40 | 6.9557 |

The second score data set `score2`

does not contain the BY variable `Sex`

. PROC PLM continues to score the full data set two times. Each time the scoring is based on the fitted model for each corresponding
BY-group. In the output data set, `Sex`

is added at the first column as the BY-group indicator. The first six entries correspond to the model for female patients,
and the next six entries correspond to the model for male patients. `Age`

is not included in the first model, and `Treatment`

A and B have the same parameter estimates, so observations 1, 2, 4, and 5 have the same linear predicted value.

The data set `score3out`

contains the values shown in Output 69.5.5.

Output 69.5.5: Values of Data Set `score3out`

Logistic Model on Neuralgia |

Obs | Sex | Treatment | Predicted |
---|---|---|---|

1 | F | A | 2.19722 |

2 | F | B | 2.19722 |

3 | F | P | -0.40547 |

4 | F | A | 2.19722 |

5 | F | B | 2.19722 |

6 | F | P | -0.40547 |

7 | M | A | . |

8 | M | B | . |

9 | M | P | . |

10 | M | A | . |

11 | M | B | . |

12 | M | P | . |

The third score data set `score3`

does not contain the BY variable `Sex`

. PROC PLM scores the full data twice with separate models. Furthermore, it does not contain the variable `Age`

, which is a selected variable for predicting the probability of no pain for male patients. Thus, PROC PLM computes linear
predictor values for `score3`

by using the first model for female patients, and sets the linear predictor to missing when using the second model for male
patients to score the data set.