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é.
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é !
proc hpnlmod data=a out=b;
parms alpha=.45 beta=.05 gamma=-.0025;
x0 = -.5*beta / gamma;
if (x < x0) then
yp = alpha + beta*x + gamma*x*x;
else
yp = alpha + beta*x0 + gamma*x0*x0;
model y ~ residual(yp);
estimate 'join point' -beta/2/gamma;
estimate 'plateau value c' alpha - beta**2/(4*gamma);
predict 'predicted' yp pred=yp;
predict 'response' y pred=y;
predict 'x' x pred=x;
run;
1
PROC HPNLMODDATA=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;
18
RUN;
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é.
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
SAS et tous les autres noms de produits ou de services de SAS Institute Inc. sont des marques déposées ou des marques de commerce de SAS Institute Inc. aux États-Unis et dans d'autres pays. ® indique un enregistrement aux États-Unis. WeAreCAS est un site communautaire indépendant et n'est pas affilié à SAS Institute Inc.
Ce site utilise des cookies techniques et analytiques pour améliorer votre expérience.
En savoir plus.