Le script met en œuvre un modèle de point de rupture pour identifier un changement structurel dans la relation entre deux variables. Il commence par créer un jeu de données interne, puis utilise PROC MCMC pour estimer les paramètres d'un modèle linéaire par morceaux, y compris la position du point de rupture 'cp'. Les résultats de l'estimation (moyennes a posteriori) sont ensuite stockés dans des macro-variables via un DATA _NULL_ step. Finalement, PROC SGPLOT est utilisé deux fois : une première fois pour visualiser les données brutes, et une seconde fois pour superposer les données, les droites de régression estimées de part et d'autre du point de rupture, et la densité a posteriori de l'emplacement de ce point.
Analyse des données
Type : CREATION_INTERNE
Les données sont entièrement générées au sein du script à l'aide d'une étape DATA avec une instruction DATALINES. Aucune donnée externe n'est nécessaire.
1 Bloc de code
DATA STEP Data
Explication : Ce bloc crée le jeu de données 'stagnant' à partir de données internes (datalines). L'option '@@' dans l'instruction INPUT permet de lire plusieurs observations sur une même ligne de données.
Explication : Visualisation initiale des données brutes sous forme de nuage de points pour inspecter la relation entre x et y.
Copié !
proc sgplot data=stagnant;
scatter x=x y=y;
run;
1
2
PROC SGPLOT
3
DATA=stagnant;
4
scatter x=x y=y;
5
RUN;
6
3 Bloc de code
PROC MCMC
Explication : Cœur de l'analyse. PROC MCMC est utilisée pour ajuster un modèle bayésien. Le code définit les paramètres (alpha, cp, beta1, beta2, s2), leurs distributions a priori, et le modèle linéaire qui stipule que la pente (beta) change en fonction de la position de x par rapport au point de rupture 'cp'. La procédure génère des échantillons de la distribution a posteriori des paramètres.
Explication : Ce DATA step de type _NULL_ (ne crée pas de table) lit les moyennes a posteriori calculées par PROC MCMC (stockées dans la table 'ds') et les assigne à des macro-variables (ex: &cp, &beta1, &beta2) pour une utilisation ultérieure.
Copié !
data _null_;
set ds;
call symputx(parameter, mean);
run;
1
DATA _null_;
2
SET ds;
3
call symputx(parameter, mean);
4
RUN;
5 Bloc de code
DATA STEP Data
Explication : Crée un jeu de données 'b' pour tracer les lignes de régression du modèle ajusté. Il utilise les macro-variables (&cp, &alpha, &beta1, &beta2) pour calculer les valeurs prédites de y1.
Copié !
data b;
missing A;
input x1 @@;
if x1 eq .A then x1 = &cp;
if _n_ <= 2 then y1 = &alpha + &beta1 * (x1 - &cp);
else y1 = &alpha + &beta2 * (x1 - &cp);
datalines;
-1.5 A 1.2
;
run;
Explication : Utilise la procédure KDE (Kernel Density Estimation) sur la sortie de MCMC pour estimer la distribution de probabilité a posteriori du paramètre 'cp' (le point de rupture).
Copié !
proc kde data=postout;
univar cp / out=m1 (drop=count);
run;
1
2
PROC KDE
3
DATA=postout;
4
univar cp / out=m1 (drop=count);
5
RUN;
6
7 Bloc de code
DATA STEP Data
Explication : Ce bloc ajuste (met à l'échelle et décale) la valeur de la densité calculée par PROC KDE afin qu'elle puisse être superposée de manière lisible sur le graphique final.
Copié !
data m1;
set m1;
density = (density / 25) - 0.653;
run;
1
DATA m1;
2
SET m1;
3
density = (density / 25) - 0.653;
4
RUN;
8 Bloc de code
DATA STEP Data
Explication : Combine les données originales ('stagnant'), les lignes du modèle ajusté ('b') et les données de densité du point de rupture ('m1') en un seul jeu de données pour le graphique final.
Copié !
data all;
set stagnant b m1;
run;
1
DATA all;
2
SET stagnant b m1;
3
RUN;
9 Bloc de code
PROC SGPLOT
Explication : Génère le graphique final complet qui superpose : le nuage de points original, les deux segments de droite du modèle de point de rupture, et la courbe de densité de la distribution a posteriori du paramètre 'cp'.
series x=value y=density / lineattrs = graphdata1;
5
RUN;
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.