Ce script illustre un concept fondamental mais souvent ignoré en modélisation : l'influence de la paramétrisation sur la convergence et la validité de l'inférence. Bien que les trois modèles ajustés par la PROC NLIN soient mathématiquement équivalents (ils décrivent la même courbe sigmoïde), leurs propriétés statistiques diffèrent radicalement.
En régression non linéaire, ne vous contentez pas d'une convergence réussie. Si le biais de Hougaard d'un paramètre dépasse 0.25, l'intervalle de confiance est suspect. Dans ce cas, changer la paramétrisation (comme passer de gamma à LD50) est souvent plus efficace que d'ajouter des données, car cela redresse la géométrie de la fonction de perte.
Type : CREATION_INTERNE
Les données sont générées directement dans le code via une étape DATA et des instructions DATALINES.
| 1 | DATA logistic; |
| 2 | INPUT dose y; |
| 3 | logdose = log(dose); |
| 4 | DATALINES; |
| 5 | 0.009 106.56 |
| 6 | 0.035 94.12 |
| 7 | 0.07 89.76 |
| 8 | 0.15 60.21 |
| 9 | 0.20 39.95 |
| 10 | 0.28 21.88 |
| 11 | 0.50 7.46 |
| 12 | ; |
| 1 | PROC SGPLOT DATA=logistic; |
| 2 | scatter y=y x=dose; |
| 3 | xaxis type=log logstyle=linear; |
| 4 | RUN; |
| 1 | PROC NLIN DATA=logistic bias hougaard nlinmeasures; |
| 2 | parameters alpha=100 beta=3 gamma=300; |
| 3 | delta = 0; |
| 4 | Switch = 1/(1+gamma*exp(beta*log(dose))); |
| 5 | model y = delta + (alpha - delta)*Switch; |
| 6 | RUN; |
| 1 | PROC NLIN DATA=logistic bias hougaard; |
| 2 | parameters alpha=100 beta=3 LD50=0.15; |
| 3 | delta = 0; |
| 4 | Switch = 1/(1+exp(beta*log(dose/LD50))); |
| 5 | model y = delta + (alpha - delta)*Switch; |
| 6 | OUTPUT out=nlinout pred=p lcl=lcl ucl=ucl; |
| 7 | RUN; |
| 1 | PROC NLIN DATA=logistic bias hougaard nlinmeasures; |
| 2 | parameters alpha=100 mustar=20 LD50=0.15; |
| 3 | delta = 0; |
| 4 | xstar = 0.3; |
| 5 | beta = log((alpha - mustar)/(mustar - delta)) / log(xstar/LD50); |
| 6 | Switch = 1/(1+exp(beta*log(dose/LD50))); |
| 7 | model y = delta + (alpha - delta)*Switch; |
| 8 | OUTPUT out=nlinout pred=p lcl=lcl ucl=ucl; |
| 9 | RUN; |