SAS Workshop II
By Teguh Nugraha
Workshop II
12/12/2011ComLabs USDI ITB2
Yang akan kita pelajari: Creating and Printing A SAS Data Set Cleaning and Validating Data Computing Descriptive Statistics Confidence Interval Histogram, Boxplot, Stem-Leaf Hypothesis Test
Creating and PrintingA SAS Data Set
Using DATA step and PROC PRINT
12/12/2011ComLabs USDI ITB3
Sekilas Tentang SAS Data set
12/12/2011ComLabs USDI ITB4
Tipe variabel
Reading Instream Data
12/12/2011ComLabs USDI ITB5
Dengan DATA step, kita dapat membuat data set barudengan menuliskan datanya di dalam SAS programDATA output-SAS-data-set;
INPUT variable <$> variable;DATALINES;instream data;
RUN;
Khusus untuk variabel dengan tipe karakter, kita tuliskantanda dollar $ setelah variabel tersebut
Reading Instream Data
12/12/2011ComLabs USDI ITB6
ContohDATA work.beratbadan;
INPUT Nama $ Berat_Badan;DATALINES;
Teguh 60Huda 100Eric 55Johannes 58;RUN;
Reading Instream Data
12/12/2011ComLabs USDI ITB7
Memberi spesifikasi LENGTH pada variabel bertipe karakterdan informat pada variabel
DATA work.beratbadan;LENGTH Nama $ 12;INPUT Nama $ Tanggal_Lahir :ddmmyy10. Berat_Badan;DATALINES;
Teguh 29/10/1991 60Huda 01/01/1990 100Eric 01/01/1991 55Johannes 01/01/1992 58;RUN;
Printing Data
12/12/2011ComLabs USDI ITB8
Printing data subsetsalesPROC PRINT data=work.beratbadan NOOBS;RUN;
Print variabel-variabel tertentu sajaPROC PRINT data=work.beratbadan NOOBS;
VAR Nama Berat_Badan;RUN;
Print observasi tertentu sajaPROC PRINT data=work.beratbadan NOOBS;
VAR Nama Berat_Badan;WHERE Berat_Badan>70;
RUN;
Validating and Cleaning Datafor better analysis
Validate data: using PROC PRINT, PROC FREQCleaning data: Programmatically or using PROC SORT
12/12/2011ComLabs USDI ITB9
Missing Value
12/12/2011ComLabs USDI ITB10
Numeric missing value: dot “.” Character missing value: blank “”
Validating Data
12/12/2011ComLabs USDI ITB11
Terkadang data yang kita miliki tidak seluruhnya valid Kita harus tahu data seperti apa yang tergolong tidak valid Contoh: Missing value Jenis kelamin bukan laki-laki atau perempuan Kemungkinan salah tulis data Data yang tidak logis Pencilan Duplikasi data
Validating Data
12/12/2011ComLabs USDI ITB12
Using PROC PRINTPROC PRINT data=orion.nonsales;
VAR Employee_ID Gender Salary Job_Title CountryBirth_Date Hire_Date;
WHERE Employee_ID = . orGender not in ('F','M') orSalary not between 24000 and 500000 orJob_Title = ' ' orCountry not in ('AU','US') orBirth_Date > Hire_Date orHire_Date < '01JAN1974'd;
RUN;
Validata Data
12/12/2011ComLabs USDI ITB13
Using PROC FREQ PROC FREQ dengan option NLEVEL akan menghitung
frekuensi data missing value Option /noprint pada TABLE statement menahan
prosedur agar analisis frekuensi dari setiap variabel tidaktampil
PROC FREQ data=orion.nonsales NLEVELS;TABLE _all_ / noprint;
RUN;
Validating Data
12/12/2011ComLabs USDI ITB14
Untuk mengetahui data pencilan atau data ekstrim,kita dapat melihat statistik deskriptif menggunakan PROCUNIVARIATE
Prosedur untuk menampilkan statistik deskriptif akandipelajari nanti
Cleaning DATA Programmaticaly
12/12/2011ComLabs USDI ITB15
Prosedur di bawah ini akan mengubah nilai data yang tidak valid pada orion.nonsaleslalu menyimpan hasilnya di work.clean
DATA work.clean;SET orion.nonsales;Country=upcase(Country);if Employee_ID=120106 then Salary=26960;else if Employee_ID=120115 then Salary=26500;else if Employee_ID=120191 then Salary=24015;else if Employee_ID=120107 then
Hire_Date='21JAN1995'd;else if Employee_ID=12011 then
Hire_Date='01NOV1978'd;else if Employee_ID=121011 then
Hire_Date='01JAN1998'd;RUN;
Cleaning Data
12/12/2011ComLabs USDI ITB16
Removing Duplicates Using PROC SORT Prosedur di bawah ini akan menghilangkan duplikasi
Employee_ID pada orion.nonsalesdupes lalu menyimpanhasilnya di work.sorted
PROC SORT data=orion.nonsalesdupes out=work.sortednodupkey;
BY Employee_ID;RUN;
Computing Descriptive Statistics
Using PROC MEANS and PROC UNIVARIATE
12/12/2011ComLabs USDI ITB17
Statistik Deskriptif
12/12/2011ComLabs USDI ITB18
Tujuannya untuk mengetahui parameter-parameter darisuatu variabel numerik pada data, yaitu: Mean, Median, Mode Standard Deviation, Standard Error Coeff of Variation Sum, Sum Weights Minimum, Maksimum, Range Skewness, Kurtosis N Missing Value
Contoh kasus
12/12/2011ComLabs USDI ITB19
Misalnya kita ingin mengetahui statistik deskriptif beratbadan (WEIGHT) orang-orang yang suka fitness
Eksekusi data_fitness.sas untuk membuat data set baruorion.fitness
PROC MEANS
12/12/2011ComLabs USDI ITB20
Biasanya untuk mengetahui satu atau beberapa paramaterstatistik deskriptif sajaPROC MEANS data=orion.fitness
n mean median mode std var q1 q3 qrange;VAR Weight;
RUN;
Berdasarkan kategori variabel tertentu (Country, Gender)PROC MEANS data=orion.fitness
n mean median mode std var q1 q3 qrange;CLASS Gender;VAR Weight;
RUN;
PROC UNIVARIATE
12/12/2011ComLabs USDI ITB21
Lebih lengkap dibandingkan dengan PROC MEANS. Biasanyadigunakan untuk menganalisis karakteristik data secaramenyeluruh
PROC UNIVARIATE data=orion.fitness;VAR Weight;CLASS Gender;
RUN;
Menampilkan semua analisis: tambahkan option ALLPROC UNIVARIATE data=orion.fitness ALL;
VAR Weight;CLASS Gender;
RUN;
Confidence Interval
Using PROC MEANS or PROC UNIVARIATE
12/12/2011ComLabs USDI ITB22
Confidence Interval
12/12/2011ComLabs USDI ITB23
Menghitung penaksiran selang untuk rataan, standar deviasi,dan variansi populasi
Bergantung pada tingkat kepercayaan (1-α) Misalnya kita ingin mengetahui taksiran selang rataan
berat para peserta fitness dengan tingkat kepercayaan95% (α = 0.05)
Using PROC MEANS
12/12/2011ComLabs USDI ITB24
Gunakan option CLM dan ALPHA=PROC MEANS data=orion.fitness CLM ALPHA=0.05;
VAR Weight;TITLE ’95% Confidence Interval for Weight';
RUN;TITLE;
Kita dapat mengubah nilai alpha untuk tingkat kepercayaantertentu
Using PROC UNIVARIATE
12/12/2011ComLabs USDI ITB25
Gunakan option CIBASIC(ALPHA=...)PROC UNIVARIATE data=orion.fitness cibasic(alpha=0.05);
VAR Weight;RUN;
Lihat hasilnya di bagian Basic Confidence Limits AssumingNormality
Histogram, Boxplot, Stem-Leaf
Using PROC UNIVARIATE and PROC SGPLOT
12/12/2011ComLabs USDI ITB26
Creating Histogram
12/12/2011ComLabs USDI ITB27
Dengan menggunakan PROC UNIVARIATE, kita jugadapat menampilkan histogram data
PROC UNIVARIATE data=orion.fitness noprint;HISTOGRAM Weight / normal(mu=est sigma=est);INSET skewness kurtosis / position=ne;
RUN;
Histogram tersebut dibandingkan dengan distribusinormal dengan danx S
Box-plot dan Stem-leaf
12/12/2011ComLabs USDI ITB28
Kita dapat menampilkan Stem-Leaf dan Box-Plot datadengan menulis option plot pada PROC UNIVARIATE
PROC UNIVARIATE data=orion.fitness plot;var Weight;
RUN;
Hasilnya dapat dilihat di bagian Plot
Box-plot
12/12/2011ComLabs USDI ITB29
Untuk menampilkan box-plot dalam bentuk file gambar,kita gunakan PROC SGPLOT
PROC SGPLOT data=orion.fitness;HBOX Weight / datalabel=Name;VBOX Weight / datalabel=Name;TITLE "Box Plots of Weight";
RUN;TITLE;
Hypothesis Test
Using PROC UNIVARIATE
12/12/2011ComLabs USDI ITB30
Hypothesis Test
12/12/2011ComLabs USDI ITB31
Uji hipothesis akan mengecek apakah rataan suatuvariabel/populasi sesuai dengan perkiraan(hipotesis) kita
Misalnya kita punya hipotesis awal bahwa rataan variabelweight pada data set orion.fitness sama dengan modusnya,yaitu 73.37. Lalu kita ingin mengecek kebenaran hipotesistersebut dengan tingkat kepercayaan 95% (α = 0.05)
Setelah pengujian dilakukan, kita cek p-value (Pr) Jika Pr < α maka hipotesis awal ditolak Jika Pr > α maka hipotesis awal tidak ditolak
Hypothesis Test
12/12/2011ComLabs USDI ITB32
Tulis option mu0=73.37 pada PROC UNIVARIATE
PROC UNIVARIATE data=orion.fitness mu0=73.37 alpha=0.05;VAR weight;TITLE='Uji Hipotesis Apakah Rataan Weight=73.37‘;
RUN;TITLE;
Lihat hasilnya pada Test for Location
Hypothesis Test
12/12/2011ComLabs USDI ITB33
Perhatikan hasil pada Test for Location Karena Pr < α maka tolak hipotesis awal (mu0=73.37) Jadi, rataan variabel weight pada data set orion.fitness bukan
73.37
Hypothesis Test
12/12/2011ComLabs USDI ITB34
Agar output yang dihasilkan hanya bagian Test forLocation, kita tambahkan ODS statement seperti berikut
ODS select testsforlocation;PROC UNIVARIATE data=orion.fitness mu0=73.37 alpha=0.05;
VAR weight;TITLE='Uji Hipotesis Apakah Rataan Weight=73.37‘;
RUN;TITLE;
Top Related