Workshop II membahas tentang pembuatan dan pencetakan data set SAS, validasi dan pembersihan data, statistik deskriptif, interval kepercayaan, histogram, boxplot, stem-leaf, dan uji hipotesis menggunakan prosedur SAS seperti PROC PRINT, PROC FREQ, PROC MEANS, PROC UNIVARIATE, dan PROC SGPLOT.
2. Workshop II
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
2 ComLabs USDI ITB 12/12/2011
3. Creating and Printing
A SAS Data Set
Using DATA step and PROC PRINT
3 ComLabs USDI ITB 12/12/2011
5. Reading Instream Data
Dengan DATA step, kita dapat membuat data set baru
dengan menuliskan datanya di dalam SAS program
DATA output-SAS-data-set;
INPUT variable <$> variable;
DATALINES;
instream data
;
RUN;
Khusus untuk variabel dengan tipe karakter, kita tuliskan
tanda dollar $ setelah variabel tersebut
5 ComLabs USDI ITB 12/12/2011
6. Reading Instream Data
Contoh
DATA work.beratbadan;
INPUT Nama $ Berat_Badan;
DATALINES;
Teguh 60
Huda 100
Eric 55
Johannes 58
;
RUN;
6 ComLabs USDI ITB 12/12/2011
7. Reading Instream Data
Memberi spesifikasi LENGTH pada variabel bertipe karakter
dan informat pada variabel
DATA work.beratbadan;
LENGTH Nama $ 12;
INPUT Nama $ Tanggal_Lahir :ddmmyy10. Berat_Badan;
DATALINES;
Teguh 29/10/1991 60
Huda 01/01/1990 100
Eric 01/01/1991 55
Johannes 01/01/1992 58
;
RUN;
7 ComLabs USDI ITB 12/12/2011
8. Printing Data
Printing data subsetsales
PROC PRINT data=work.beratbadan NOOBS;
RUN;
Print variabel-variabel tertentu saja
PROC PRINT data=work.beratbadan NOOBS;
VAR Nama Berat_Badan;
RUN;
Print observasi tertentu saja
PROC PRINT data=work.beratbadan NOOBS;
VAR Nama Berat_Badan;
WHERE Berat_Badan>70;
RUN;
8 ComLabs USDI ITB 12/12/2011
9. Validating and Cleaning Data
for better analysis
Validate data: using PROC PRINT, PROC FREQ
Cleaning data: Programmatically or using PROC SORT
9 ComLabs USDI ITB 12/12/2011
10. Missing Value
Numeric missing value: dot “.”
Character missing value: blank “”
10 ComLabs USDI ITB 12/12/2011
11. Validating Data
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
11 ComLabs USDI ITB 12/12/2011
12. Validating Data
Using PROC PRINT
PROC PRINT data=orion.nonsales;
VAR Employee_ID Gender Salary Job_Title Country
Birth_Date Hire_Date;
WHERE Employee_ID = . or
Gender not in ('F','M') or
Salary not between 24000 and 500000 or
Job_Title = ' ' or
Country not in ('AU','US') or
Birth_Date > Hire_Date or
Hire_Date < '01JAN1974'd;
RUN;
12 ComLabs USDI ITB 12/12/2011
13. Validata Data
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 tidak
tampil
PROC FREQ data=orion.nonsales NLEVELS;
TABLE _all_ / noprint;
RUN;
13 ComLabs USDI ITB 12/12/2011
14. Validating Data
Untuk mengetahui data pencilan atau data ekstrim,
kita dapat melihat statistik deskriptif menggunakan PROC
UNIVARIATE
Prosedur untuk menampilkan statistik deskriptif akan
dipelajari nanti
14 ComLabs USDI ITB 12/12/2011
15. Cleaning DATA Programmaticaly
Prosedur di bawah ini akan mengubah nilai data yang tidak valid pada orion.nonsales
lalu 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;
15 ComLabs USDI ITB 12/12/2011
16. Cleaning Data
Removing Duplicates Using PROC SORT
Prosedur di bawah ini akan menghilangkan duplikasi
Employee_ID pada orion.nonsalesdupes lalu menyimpan
hasilnya di work.sorted
PROC SORT data=orion.nonsalesdupes out=work.sorted
nodupkey;
BY Employee_ID;
RUN;
16 ComLabs USDI ITB 12/12/2011
18. Statistik Deskriptif
Tujuannya untuk mengetahui parameter-parameter dari
suatu 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
18 ComLabs USDI ITB 12/12/2011
19. Contoh kasus
Misalnya kita ingin mengetahui statistik deskriptif berat
badan (WEIGHT) orang-orang yang suka fitness
Eksekusi data_fitness.sas untuk membuat data set baru
orion.fitness
19 ComLabs USDI ITB 12/12/2011
20. PROC MEANS
Biasanya untuk mengetahui satu atau beberapa paramater
statistik deskriptif saja
PROC 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;
20 ComLabs USDI ITB 12/12/2011
21. PROC UNIVARIATE
Lebih lengkap dibandingkan dengan PROC MEANS. Biasanya
digunakan untuk menganalisis karakteristik data secara
menyeluruh
PROC UNIVARIATE data=orion.fitness;
VAR Weight;
CLASS Gender;
RUN;
Menampilkan semua analisis: tambahkan option ALL
PROC UNIVARIATE data=orion.fitness ALL;
VAR Weight;
CLASS Gender;
RUN;
21 ComLabs USDI ITB 12/12/2011
22. Confidence Interval
Using PROC MEANS or PROC UNIVARIATE
22 ComLabs USDI ITB 12/12/2011
23. Confidence Interval
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 kepercayaan
95% (α = 0.05)
23 ComLabs USDI ITB 12/12/2011
24. Using PROC MEANS
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 kepercayaan
tertentu
24 ComLabs USDI ITB 12/12/2011
25. Using PROC UNIVARIATE
Gunakan option CIBASIC(ALPHA=...)
PROC UNIVARIATE data=orion.fitness cibasic(alpha=0.05);
VAR Weight;
RUN;
Lihat hasilnya di bagian Basic Confidence Limits Assuming
Normality
25 ComLabs USDI ITB 12/12/2011
27. Creating Histogram
Dengan menggunakan PROC UNIVARIATE, kita juga
dapat 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 distribusi
normal dengan x dan S
27 ComLabs USDI ITB 12/12/2011
28. Box-plot dan Stem-leaf
Kita dapat menampilkan Stem-Leaf dan Box-Plot data
dengan menulis option plot pada PROC UNIVARIATE
PROC UNIVARIATE data=orion.fitness plot;
var Weight;
RUN;
Hasilnya dapat dilihat di bagian Plot
28 ComLabs USDI ITB 12/12/2011
29. Box-plot
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;
29 ComLabs USDI ITB 12/12/2011
30. Hypothesis Test
Using PROC UNIVARIATE
30 ComLabs USDI ITB 12/12/2011
31. Hypothesis Test
Uji hipothesis akan mengecek apakah rataan suatu
variabel/populasi sesuai dengan perkiraan(hipotesis) kita
Misalnya kita punya hipotesis awal bahwa rataan variabel
weight pada data set orion.fitness sama dengan modusnya,
yaitu 73.37. Lalu kita ingin mengecek kebenaran hipotesis
tersebut 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
31 ComLabs USDI ITB 12/12/2011
32. Hypothesis Test
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
32 ComLabs USDI ITB 12/12/2011
33. Hypothesis Test
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
33 ComLabs USDI ITB 12/12/2011
34. Hypothesis Test
Agar output yang dihasilkan hanya bagian Test for
Location, 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;
34 ComLabs USDI ITB 12/12/2011