Anda di halaman 1dari 2

LIBNAME ANOVA "C:\ANOVA\Tugas"; RUN;

%MACRO ANOVA;
%DO A=1 %TO 2; * A=1: Indeks untuk normal, A=2: Indeks untuk tidak normal ;
%DO B=1 %TO 2; * B=1: Ragam homogen, B=2: Ragam tidak homogen;
%DO C=1 %TO 2; * C=1: Saling bebas, C=1: Tidak Saling bebas;
%DO R=1 %TO 1000; *Replikasi sebanyak 1000 kali;
%LET p =&A;%LET q =&B; %LET t=&C; *membuat beberapa peubah macro yang dibutuhkan
;
PROC IML;
MEAN=60; *menetapkan rata-rata ketiga grup perlakuan;
N=30; *menetapkan jumlah sampel/ulangan untuk ketiga grup perlakuan;
* Matriks koefisien Fleishman untuk distribusi data
baris 1: distribusi normal , baris 2: distrubusi tidak normal;
DIST={1 0 0,
.92966052480 .39949667454 -.03646699281};
* Matriks ragam untuk 3 grup perlakuan
Baris 1: homogen, Baris 2: tidak homogen;
VAR={15 15 15,
15 25 45};
CORR={0 0,
0.3 0.25};
* Membangkitkan data grup perlakuan 1;
X=RANNOR(J(N,1,0));
*Membuat matriks Nx1 yang berisi
kan data berdistribusi normal baku;
X1=-DIST[&A,2] + DIST[&A,1]*X + DIST[&A,2]*X##2 + DIST[&A,3]*X##3; *Formula Flei
shman untuk pembentukan distribusi;
X=X1*SQRT(VAR[&B,1]) + MEAN; *Menetapkan rata-rata dan sebaran data;
GRP=J(N,1,1); *matriks untuk menetapkan nomor grup=1;
GROUP1=X||GRP; *menggabungkan matriks data dan matriks nomor grup;
CREATE GROUP1_&p&q&t var{x}; *membuat data set baru bernama tertentu(sesuai iter
asi) yang berisikan variabel x
dari matriks Gro
up1;
APPEND;
* Membangkitkan data grup perlakuan 2;
X=RANNOR(J(N,1,0));
X2=-DIST[&A,2] + DIST[&A,1]*X + DIST[&A,2]*X##2 + DIST[&A,3]*X##3;
X=X2*SQRT(VAR[&B,2]) + MEAN;
GRP=J(N,1,2);
GROUP2=X||GRP;
create group2_&p&q&t var{x};
append;
* Membangkitkan data grup perlakuan 3;
X=RANNOR(J(N,1,0));
X3=-DIST[&A,2] + DIST[&A,1]*X + DIST[&A,2]*X##2 + DIST[&A,3]*X##3;
X=X3*SQRT(VAR[&B,3]) + MEAN;
GRP=J(N,1,3);
GROUP3=X||GRP;
create group3_&p&q&t var{x};
append;
* Menggabungkan 3 grup ke dalam 1 matriks;
ER=X1//X2//X3;
DATA=GROUP1//GROUP2//GROUP3;
DO i=3 to N;
DATA[i,1]=DATA[i,1]+CORR[&C,1]*ER[i-1,1]+CORR[&C,2]*ER[i-1,1]; *Formula untuk me
mbuat kondisi kebebasan galat/tidak;
END;
CREATE DATAALL FROM DATA[COLNAME={X GROUP}]; *membuat data set baru dari data ma

triks DATA;
APPEND FROM DATA;
* Menjalankan ANOVA, dan menyimpan variabel-variabel dalam tabel ANOVA ke dalam
data set baru bernama "ANOVATAB";
/*Title "Kondisi ke_&p&q&t";
PROC UNIVARIATE DATA=DATAALL;BY GROUP;
Histogram X;
RUN;*/
Title "Evaluasi";
PROC ANOVA DATA=DATAALL NOPRINT OUTSTAT=ANOVATAB;
CLASS GROUP;
MODEL X=GROUP;
RUN;
DATA Y; SET ANOVATAB;
IF _TYPE_="ANOVA";
DF_MOD=DF; SS_MOD=SS;
* Evaluasi alpha;
IF PROB<0.05 THEN SIG="YES";
ELSE SIG="NO";
KEEP SIG PROB;
DATA Z; SET Y;
IF &A=1 THEN NORMAL="YES";
ELSE IF &A=2 THEN NORMAL="NO";
IF &B=1 THEN HOMO="YES";
ELSE IF &B=2 THEN HOMO="NO";
IF &C=1 THEN IID="YES";
ELSE IF &C=2 THEN IID="NO";
PROC APPEND BASE=ANOVA.ANOVA; *semua variabel-variabel yang ada di simpan perman
en
ke dalam suatu t
abel bernama ANOVA dalam lirbary ANOVA;
RUN;
%END; %END;%END; %END; *Mengakhiri semua iterasi-iterasi sesuai tinggkatannya;
%MEND ANOVA; *mengakhiri makro;
%ANOVA; *memanggil makro;
run;
*Menyajikan hasil-hasi simulasi;
DATA EVA; SET ANOVA.ANOVA;
PROC SORT; BY NORMAL HOMO IID;
PROC FREQ; BY NORMAL HOMO IID;
TABLES SIG;
PROC MEANS mean;BY NORMAL HOMO IID;
*PROC UNIVARIATE noprint;BY NORMAL HOMO IID;
*Histogram PROB;
RUN;

Anda mungkin juga menyukai