Publié le :

Exemple de documentation pour PROC HPNLMOD

Ce code est également disponible en : Deutsch English Español
En attente de validation
Le script commence par la création d'un jeu de données 'a' en utilisant des données en ligne (datalines). Ce jeu de données contient les variables 'y' (réponse) et 'x' (prédicteur). Ensuite, la procédure HPNLMOD est utilisée pour ajuster un modèle non linéaire segmenté aux données de 'a', en produisant un jeu de données de sortie 'b' contenant les prédictions. Le modèle définit un point de jonction 'x0' et applique une logique conditionnelle pour calculer la valeur prédite 'yp' avant et après ce point de jonction, assurant la continuité. Des estimations pour le point de jonction et la valeur de plateau sont également calculées. Enfin, PROC SGPLOT est utilisée pour visualiser les données observées et les valeurs prédites, en incluant des lignes de référence pour le plateau et le point de jonction afin de faciliter l'interprétation du modèle.
Analyse des données

Type : CREATION_INTERNE


Toutes les données utilisées dans ce script sont créées en interne via une étape DATA avec des 'datalines'.

1 Bloc de code
DATA STEP Data
Explication :
Ce bloc DATA STEP crée un jeu de données temporaire nommé 'a'. Les variables 'y' et 'x' sont lues à partir des lignes de données fournies (datalines). Ces données constituent l'ensemble d'observations sur lesquelles le modèle sera ajusté.
Copié !
1DATA a;
2 INPUT y x;
3 DATALINES;
4.46 1 .47 2 .57 3 .61 4 .62 5 .68 6 .69 7
5.78 8 .70 9 .74 10 .77 11 .78 12 .74 13 .80 13
6.80 15 .78 16
7 ;
2 Bloc de code
PROC HPNLMOD Data
Explication :
Cette procédure ajuste un modèle non linéaire segmenté aux données du jeu de données 'a'. Elle initialise les paramètres 'alpha', 'beta' et 'gamma'. Un point de jonction 'x0' est calculé. La variable prédite 'yp' est déterminée par une fonction quadratique avant 'x0' et par une constante après 'x0' (valeur de plateau), assurant la continuité. Le modèle 'y ~ residual(yp)' est spécifié. Des déclarations 'estimate' sont utilisées pour obtenir les estimations du 'join point' et de la 'plateau value'. Les déclarations 'predict' sauvegardent les valeurs prédites 'yp' ainsi que les valeurs observées 'y' et 'x' dans le jeu de données de sortie 'b'.
Copié !
1PROC HPNLMOD DATA=a out=b;
2 parms alpha=.45 beta=.05 gamma=-.0025;
3 
4 x0 = -.5*beta / gamma;
5 
6 IF (x < x0) THEN
7 yp = alpha + beta*x + gamma*x*x;
8 ELSE
9 yp = alpha + beta*x0 + gamma*x0*x0;
10 
11 model y ~ residual(yp);
12 
13 estimate 'join point' -beta/2/gamma;
14 estimate 'plateau value c' alpha - beta**2/(4*gamma);
15 predict 'predicted' yp pred=yp;
16 predict 'response' y pred=y;
17 predict 'x' x pred=x;
18RUN;
3 Bloc de code
PROC SGPLOT
Explication :
Cette procédure génère un graphique de haute qualité pour visualiser les résultats du modèle. Elle utilise le jeu de données 'b' (produit par PROC HPNLMOD). L'axe Y est étiqueté 'Observed or Predicted'. Deux lignes de référence sont ajoutées : une horizontale pour le 'Plateau' (valeur y=0.7775) et une verticale pour le 'Join point' (valeur x=12.7477). Un nuage de points ('scatter') affiche les données observées ('y' vs 'x'), et une série de lignes ('series') représente les valeurs prédites ('yp' vs 'x'), permettant une comparaison visuelle entre les observations et l'ajustement du modèle segmenté.
Copié !
1PROC SGPLOT DATA=b noautolegend;
2 yaxis label='Observed or Predicted';
3 refline 0.7775 / axis=y label="Plateau" labelpos=min;
4 refline 12.7477 / axis=x label="Join point" labelpos=min;
5 scatter y=y x=x;
6 series y=yp x=x;
7RUN;
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.
Informations de Copyright : S A S S A M P L E L I B R A R Y