Beispiel für die Verwendung multivariater Verteilungen

Dieser Code ist auch verfügbar auf: English Español Français
Schwierigkeitsgrad
Anfänger
Veröffentlicht am :
Das Skript beginnt mit der Verwendung von `PROC IML`, um 100 Beobachtungen aus einer bivariaten Normalverteilung mit einem bestimmten Mittelwert und einer Kovarianzmatrix zu simulieren. Die simulierten Daten werden dann in einem SAS©-Dataset namens `inputdata` gespeichert. Anschließend wird `PROC MCMC` verwendet, um ein multivariates Bayes'sches Normalmodell an diese Daten anzupassen. A-priori-Verteilungen (multivariater Normalwert für den Mittelwert `mu` und inverse Wishart für die Kovarianzmatrix `Sigma`) werden angegeben. Die Prozedur führt 3000 Iterationen der Markov-Kette Monte Carlo (MCMC) durch, um die A-posteriori-Verteilungen der Modellparameter zu Stichproben zu entnehmen.
Datenanalyse

Type : CREATION_INTERNE


Die Daten `inputdata` werden intern von `PROC IML` aus einer simulierten multivariaten Normalverteilung generiert.

1 Codeblock
PROC IML Data
Erklärung :
Dieser `PROC IML`-Block initialisiert einen Zufallszahlengenerator (`call randseed(1)`), simuliert 100 Beobachtungen (`N = 100`) aus einer bivariaten Normalverteilung mit einem Mittelwert von {1 2} und einer spezifischen Kovarianzmatrix, berechnet und zeigt dann die Stichprobenmittelwerte und Kovarianzmatrizen an. Schließlich wird ein SAS-Dataset namens `inputdata` aus den simulierten Daten mit den Spalten 'x1' und 'x2' erstellt.
Kopiert!
1title 'An Example that Uses Multivariate Distributions';
2PROC IML;
3 N = 100;
4 Mean = {1 2};
5 Cov = {2.4 3, 3 8.1};
6 call randseed(1);
7 x = RANDNORMAL( N, Mean, Cov );
8 
9 SampleMean = x[:];
10 n = nrow(x);
11 y = x - repeat( SampleMean, n );
12 SampleCov = y`*y / (n-1);
13 PRINT SampleMean Mean, SampleCov Cov;
14 
15 cname = {"x1", "x2"};
16 create inputdata from x [colname = cname];
17 append from x;
18 close inputdata;
19QUIT;
2 Codeblock
PROC MCMC
Erklärung :
Dieser `PROC MCMC`-Block passt ein multivariates Normalmodell an die zuvor generierten `inputdata` an. Er spezifiziert die Datenvariablen (`x1`, `x2`), die zu schätzenden Parameter (`mu` und `Sigma`) und definiert A-priori-Verteilungen für diese Parameter: eine multivariate Normalverteilung für `mu` (mit Mittelwert `mu0` und Kovarianzmatrix `Sigma0` mit großer Varianz) und eine inverse Wishart-Verteilung für `Sigma` (mit 2 Freiheitsgraden und Skalenmatrix `S`, die die Identitätsmatrix ist). Die Prozedur führt 3000 Iterationen der Markov-Kette Monte Carlo (MCMC) für die Bayes'sche Parameterschätzung durch, und die Ausgabe ist auf zusammenfassende Statistiken und Glaubwürdigkeitsintervalle (`ods select PostSumInt`) beschränkt.
Kopiert!
1PROC MCMC DATA=inputdata seed=17 nmc=3000 diag=none;
2 ods select PostSumInt;
3 array DATA[2] x1 x2;
4 array mu[2];
5 array Sigma[2,2];
6 array mu0[2] (0 0);
7 array Sigma0[2,2] (100 0 0 100);
8 array S[2,2] (1 0 0 1);
9 parm mu Sigma;
10 prior mu ~ mvn(mu0, Sigma0);
11 prior Sigma ~ iwish(2, S);
12 model DATA ~ mvn(mu, Sigma);
13RUN;
Dieses Material wird von We Are Cas "wie besehen" zur Verfügung gestellt. Es gibt keine ausdrücklichen oder stillschweigenden Garantien hinsichtlich der Marktgängigkeit oder Eignung für einen bestimmten Zweck in Bezug auf die hierin enthaltenen Materialien oder Codes. We Are Cas ist nicht verantwortlich für Fehler in diesem Material, wie es jetzt existiert oder existieren wird, noch bietet We Are Cas technischen Support dafür an.
Urheberrechtsinformationen : S A S S A M P L E L I B R A R Y


Zugehörige Dokumentation

Aucune documentation spécifique pour cette catégorie.