Sesi-1: Pengenalan R
[Copy right: boleh didistribusikan secara bebas]
01 Pengenalan R
Uji coba aplikasi alternatif Zoom
Memahami lingkungan R, sintaks, struktur data, grafik, kontrol
02 Statistik Berbasis R
Mengimplementasikan dasar-dasar ilmu statistik pada R
Multiplatform
https://www.rexeranalytics.com/data-science-survey
Domain Terapan
C D
“[W]e wanted users to be able to begin in an interactive environment, where they did not consciously think of
themselves as programming. Then as their needs became clearer and their sophistication increased, they
should be able to slide gradually into programming, when the language and system aspects would become
more important.”
Memulai R
Instalasi R
https://cran.r-project.org/
Koneksi
Internet
Contoh aplikasi:
1. RStudio
2. R Comamander
3. Visual Studio IDE
4. R AnalyticFlow
5. Rattle
6. RKWard
7. JGR
8. Deducer
9. jamovi
10. StatET for R
Menggunakan R
Perintah-perintah diketikkan
pada file teks (script),
kemudian dieksekusi
dengan cara menjalankan
aplikasi Rscript.
Contoh:
Rscript myscript.R
Contoh output:
Contoh:
Meng-import data via
Rstudio dapat dilakukan
menggunakan menu File >>
Import Dataset …
Sintaks bahasa pemrograman mendefinisikan arti kombinasi kata dan simbol tertentu.
Seringkali disebut kode pemrograman.
Setiap bahasa pemrograman menggunakan kombinasi kata dan simbol yang berbeda
agar komputer mengikuti instruksi yang ditentukan oleh kode program Anda.
Contoh Reserved Words
Reserved Words
Lazim disebut kata simpan atau keywords atau
reserved names, merupakan sekumpulan kata yang
disediakan oleh R dan memiliki fungsi khusus.
Contoh:
for ( x in 1:10 ) {
print(x)
}
?reserved
Addtion: +
Substraction: -
Division: /
Modulus: %%
Integer division: %/%
Exponentiation: ^ atau **
Assignment
Daftar Operator R
Logical
Aturan Penamaan Variable
Nama variabel harus diawali dengan huruf dan dapat
berupa kombinasi huruf, angka, titik (.)
dan garis bawah(_). Jika diawali dengan titik (.), maka
tidak boleh diikuti dengan angka. Variable
Merupakan tempat penyimpanan data sementara.
Nama variabel tidak boleh diawali dengan Variable dapat diisi dengan suatu nilai (value) dan dapat
angka atau garis bawah (_) diakses dalam program.
> hello()
Contoh Function:
help(print)
help(c)
help(aov)
help(lm)
Contoh Operator & Built-in Function
Tentukan usia A dalam format “tahun, bulan, hari”.
Misalkan saja umur A saat ini adalah 500 hari.
Gunakan operator aritmatika dan assignment untuk memudahkan menemukan jawaban.
(asumsi: 1 tahun = 365 hari dan 1 bulan = 30 hari).
Umur = 500
Tahun = Umur %/% 365
print(Tahun)
Hari = Hari %% 30
print(Hari)
install.packages('txtplot')
library('txtplot')
cars
txtplot(cars[,1], cars[,2], xlab = 'speed', ylab = 'distance')
help(txtplot)
Misal:
txtdensity(rnorm(500))
Contoh Function – (UDF)
Buat program yang bisa menghitung hipotenusa.
OBJECTS
01 Semua yang ada pada R dianggap sebagai objek.
STRUKTUR DATA
03 Struktur data adalah organisasi data, manajemen, dan format
penyimpanan yang biasanya dipilih untuk akses data yang efisien.
Objects
[Objects are the instance of the class]
Object R kurang lebih sebanding dengan “variable” dalam bahasa pemrograman lainnya
A <- 10 class(A)
B = 30 typeof(A)
C <- c(“Buku”, “Pensil”, “Lem”) length(A)
D <- c(1L, 2L, 3L) str(A)
E = c(TRUE, TRUE, FALSE, FALSE)
Misalkan outputnya:
str(atk)
Outputnya:
[,1] [,2]
[1,] 1 4
[2,] 2 5
[3,] 3 6
Tipe Data Lainnya
Dapat dipandang sebagai gabungan vector dan matrix
Tipe Data Lainnya
Grafik
Grafik Library
R - Graphs
Menyediakan ratusan chart dan grafik. Seperti: bar plot, box plot,
mosaic plot, dot chart, coplot, histogram, pie chart, scatter, dsb.
https://r-graph-gallery.com/
Grafik Library
Plot 2D
Plot 3D
x <- -10:10
y <- -10:10
#create z-values
z = outer(x, y, z_values)
#create 3D plot
persp(x, y, z)
Grafik Library
Charts
Contoh lain:
library(plotrix)
Animasi
library(ggplot2)
library(gganimate)
IF Statement
01 Untuk mengevaluasi ekspresi tunggal sebagai bagian dari aliran (flow).
ELSE IF Statement
02 Dapat memperluas cabang ke aliran yang dibuat oleh If
statement dan memberi kesempatan untuk mengevaluasi
beberapa kondisi dengan membuat cabang aliran baru.
LOOP
03 Memungkinkan kita untuk mengeksekusi suatu pernyataan atau
sekelompok pernyataan beberapa kali. Ada 3 buah jenis loop:
1. for
2. repeat
3. while
IF Statement
Contoh
num1=10
num2=20
if(num1<=num2){
print("Num1 is less or equal to Num2")
}
ELSE IF Statement
Contoh
Num1 = 5
Num2 = 20
if (Num1 < Num2) print("Num1 is lesser than Num2") } else
if( Num1 > Num2){
print( "Num2 is lesser than Num1") }
else if("Num1 == Num2){
print("Num1 and Num2 are Equal") }
ELSE Statement
Contoh
Num1 = 5
Num2 = 20
if (Num1< Num2) print("Num1 is lesser than Num2") } else
if( Num1 > Num2){
print( "Num2 is lesser than Num1") }
else
print("Num1 and Num2 are Equal") }
Loop Statement
REPEAT Loop
Contoh
x=2
repeat {
x= x^2
print(x)
if(x>100) {
break
}
WHILE Loop
Contoh
num = 1
sumn = 0
while (num<=11){
sumn =(sumn+ (num^2)
num = num+1
print(sumn)
}
FOR Loop
Contoh
for(x in 1:10){
print(x)
}
Belajar R
Sesi-3: ANOVA
[Copy right: boleh didistribusikan secara bebas]
Hipotesis berasal dari bahasa Yunani, Hipo berarti lemah atau di bawah,
01 dan Thesis.
Pernyataan yang masih lemah kebenarannya dan perlu dibuktikan atau dugaan
yang sifatnya masih sementara
Hipotesis
a) H1 menyatakan bahwa nilai parameter lebih besar dari pada nilai yang dihipotesiskan.
Pengujian itu disebut pengujian satu sisi atau satu arah, yaitu sisi/arah kanan.
b) H1 menyatakan bahwa nilai parameter lebih kecil dari pada nilai yang dihipotesiskan.
Pengujian itu disebut pengujian satu sisi atau satu arah, yaitu sisi/arah kiri.
c) H1 menyatakan bahwa nilai parameter tidak sama dengan nilai yang dihipotesiskan.
Pengujian itu disebut pengujian dua sisi atau dua arah, yaitu sisi/arah kanan dan kiri
sekaligus.
Hipotesis
Uji sisi kiri : Bila parameter populasi diyakini lebih rendah dari asumsi.
Uji sisi kanan : Apabila parameter populasi seharusnya lebih besar dari
asumsi.
Uji Dua Arah
Two Side / Two Tails Test
1. Uji satu sisi, dimana hipotesis alternatif mempunyai satu tujuan. Uji
dua sisi dimana hipotesis alternatif memiliki tujuan ganda.
5. Dalam uji satu sisi, parameter uji yang dihitung lebih besar atau
lebih kecil dari nilai kritisnya. Pada uji dua sisi, hasil yang diperoleh
berada di dalam atau di luar nilai kritis.
6. Jika hipotesis alternatif bertanda '≠', maka dilakukan uji dua sisi.
Sebaliknya, jika suatu hipotesis alternatif mempunyai tanda '> atau <',
maka dilakukan uji satu sisi.
Satu Arah vs Dua Arah
Kesalahan Uji Hipotesis
Jika p value lebih rendah dari tingkat signifikansi, berarti hasil signifikan
03 secara statistik dan konsisten dengan H1. Jika p value lebih tinggi dari
tingkat signifikansi, maka hasil dianggap tidak signifikan secara statistik.
Kesalahan Uji Hipotesis
p-value < α
OBSERVASI INDEPENDEN
Hipotesis nol (Ho) adalah tidak ada perbedaan antar kelompok dan
kesetaraan antar rata-rata.
Hipotesis alternatif (H1) adalah terdapat perbedaan antara rata-rata
dan kelompok.
ANOVA TWO WAY
Normalitas – sampel diambil dari populasi yang berdistribusi normal
Independensi sampel – setiap sampel diambil secara independen
dari sampel lainnya
Kesetaraan Varians – varians data pada kelompok yang berbeda
harus sama
Variabel terikat – harus kontinu
Dua variabel independen – harus berada dalam kelompok yang
kategoris dan independen.
01 Jika peneliti membandingkan dua buah rata-rata kelompok maka terdapat satu
kemungkinan atas penolakan Ho, yaitu:
2. ANOVA satu arah hanya melibatkan satu faktor atau variabel bebas,
sedangkan pada ANOVA dua arah terdapat dua variabel bebas.
3. Dalam ANOVA satu arah, satu faktor atau variabel independen yang
dianalisis memiliki tiga atau lebih kelompok kategori. ANOVA dua arah
membandingkan beberapa kelompok yang terdiri dari dua faktor.
F = Anova Coefficient
MSB = Mean sum of squares between the groups
MSW = Mean sum of squares within the groups
MSE = Mean sum of squares due to error
SST = total Sum of squares
p = Total number of populations
n = The total number of samples in a population
SSW = Sum of squares within the groups
SSB = Sum of squares between the groups
SSE = Sum of squares due to error
s = Standard deviation of the samples
N = Total number of observations
ANOVA - TWO WAY
ANOVA - TWO WAY
Keuntungan
Tingkat kesalahan tipe II lebih kecil
a.Gunakan uji LSD hanya bila uji F dalam analisis ragam (Anova)
Dikenal juga sebagai beda nyata terkecil Fisher
nyata (signifikan).
(Fisher’s LSD) atau uji t berganda (multiple t test).
b. Tidak menggunakan uji LSD untuk pembandingan semua
Uji ini akan sangat baik digunakan apabila
kombinasi pasangan nilai tengah (mean) perlakuan bila
pengujian nilai tengah (mean) yang akan
percobaan mencakup lebih dari 5 perlakuan.
diperbandingkan sebelumnya telah direncanakan.
c. Gunakan uji LSD untuk pembandingan terencana tanpa
Sehingga sering juga dikenal sebagai pembanding
memperhatikan banyaknya perlakuan. Sebagai misal, dalam
terencana
membandingkan setiap perlakuan terhadap kontrol, uji LSD
dapat digunakan sekalipun percobaan tersebut mencakup lebih
dari 5 perlakuan.
Tukey Test (HSD)
HSD = honestly significant difference
Keuntungan
Tingkat kesalahan tipe I lebih kecil
ANOVA merupakan salah satu metode uji hipotesis yang digunakan pada
01 statistika parametrik, dimana pengujian dilakukan pada interaksi dua
faktor dengan membandingkan rata-rata dua sampel atau lebih
One Way Anova berfungsi menganalisis data yang hanya memiliki satu
02
variabel bebas (atau satu faktor).
Two way Anova menganalisis data yang memiliki dua variabel bebas
03 atau memiliki faktor kedua yang mempengaruhi kondisi populasi.
Metode statistika inferensi yang modelnya
menetapkan adanya syarat-syarat tertentu
(asumsi-asumsi) dari sebaran (distribusi)
data populasinya.
DATA
01 Data yang akan digunakan sudah “valid” dan “bersih”. Artinya tidak
diperlukan prapemrosesan data.
PACKAGE
02 Menggunakan modul-modulatau function yang dapat
menyederhanakan proses analisis. Diperlukan eksplorasi untuk
menentukan pilihan yang paling sesuai dengan kebutuhan.
Check data
Check struktur data, ada komentar, N/A (blank), nama
kolom, dsb
Post Hoc & Interpretasi Hasil Hitung one/two way ANOVA tes
Menghitung mean, standard Komputasi dapat dilakukan dengan
deviation, p-value, post hoc – uji built-in function atau menggunakan
hipotesis (Duncan, LSD, SNK. dsb) kode-kode program sendiri
ANOVA DENGAN R
KOMBINASI
03 Sebagian function atau kode-kode program
dibuat sendiri, sebagian lagi menggunakan
built-in function.
BUILT-IN FUNCTION
aov()
lm()
glht()
anova()
Dan sebagainya.
Perlu dipahami sisi kuat dan sisi lemah
Dari masing-masing function.
BUILT-IN FUNCTION
aov() performs 1 way ANOVA.
anova() is used to compute the analysis of
variance (or deviance) tables for one or more
fitted model objects (Type I).
anova() in the car package may be used to get
the two way ANOVA table
Belajar R
Sesi-4: Studi Kasus
ANOVA
[Copy right: boleh didistribusikan secara bebas]
LR ANOVA
model model
STUDI KASUS ANOVA
Tanpa pengulangan (normal)
STUDI KASUS ANOVA
Dengan pengulangan (measurement repetition / within-subjects)
STUDI KASUS ANOVA
Dengan pengulangan (measurement repetition / within-subjects)
One Two
Way Way
CONTOH DATA
Penguin – Palmer -Two Way ANOVA
CONTOH DATA
Penguin – Palmer -Two Way ANOVA
kuantitatif
Langkah Umum
Check data
Check struktur data, ada komentar, N/A (blank), nama
kolom, dsb
Post Hoc & Interpretasi Hasil Hitung one/two way ANOVA tes
Menghitung mean, standard Komputasi dapat dilakukan dengan
deviation, p-value, post hoc – uji built-in function atau menggunakan
hipotesis (Duncan, LSD, SNK. dsb) kode-kode program sendiri
Import Data CSV
Import data dan preprosessing data tidak dilakukan, sebab Dataset Palmer Penguins sudah umum
digunakan untuk latihan atau uji coba. Dataset tersedia bersama package palmerpenguins.
install.packages("palmerpenguins")
library(palmerpenguins)
Namun apabila ingin mencoba meng-import data penguin dalam bentuk file CSV, silakan men-downloa dari
alamat:
https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2020/2020-07-28/penguins.csv
head(penguins)
str(penguins)
Summary Data CSV
Silakan bandingkan hasil summary di atas dengan data penguin yang didapat dari paket palmerpenguins
install.packages("palmerpenguins")
library(palmerpenguins)
datapinguin <- penguins Hasilnya akan sama !
str(datapinguin)
Membandingkan Data CSV
str(penguins$species)
Pada kasus dataset penguins, tidak ada efek apa pun yang menyebabkan hasil perhitungan dan plot grafik
menjadi berbeda.
Akan tetapi perbedaan bisa saja muncul manakala menggunakan dataset yang lain (bukan penguin)
Membandingkan Data CSV
Bandngkan dengan:
Setiap kali kita memasukkan model ANOVA ke dalam kumpulan data, akan selalu ada residu – yang
mewakili perbedaan antara setiap observasi individu dan rata-rata kelompok asal observasi tersebut.
Misalnya, tabel berikut menunjukkan residu untuk 10 individu berbeda dalam penelitian:
Residu
Meskipun plot Q-Q bukan uji statistik formal, plot ini memberikan cara mudah untuk memeriksa secara
visual apakah kumpulan data mengikuti distribusi normal, dan jika tidak, bagaimana asumsi ini dilanggar
dan titik data mana yang berpotensi menyebabkan pelanggaran ini.
Kuantil mewakili titik-titik dalam kumpulan data yang di bawahnya terdapat sebagian data. Misalnya, kuantil
0,9 mewakili titik di bawahnya yang mana 90% data berada di bawahnya. Kuantil 0,5 mewakili titik di
bawahnya yang mana 50% data berada di bawahnya, dan seterusnya.
Plot Q-Q mengidentifikasi kuantil dalam data sampel Anda dan memplotkannya terhadap kuantil distribusi
teoretis. Dalam kebanyakan kasus, distribusi normal digunakan, tetapi plot QQ sebenarnya dapat dibuat
untuk distribusi teoritis apa pun.
Residu
Jika residu berdistribusi normal, maka titik-titik pada plot QQ akan terletak pada garis lurus diagonal.
Berikut tampilan plot QQ pada contoh sebelumnya:
Titik-titiknya agak melenceng dari garis diagonal lurus pada ujung ekornya, namun secara umum titik-
titiknya turun mengikuti garis diagonal dengan cukup baik. Hal ini menunjukkan bahwa asumsi normalitas
mungkin terpenuhi
modelpinguincsv$residuals
modelpinguin$residuals
1 2 3 5 6 7
-293.493151 431.164384 -118.835616 81.164384 -393.493151 256.164384
8 13 14 15 16 17
631.506849 -168.835616 -243.493151 356.506849 331.164384 81.164384
18 19 20 21 22 23
456.506849 -43.835616 156.506849 31.164384 -443.493151 431.164384
24 25 26 27 28 29
-93.493151 -243.493151 431.164384 -493.493151 -168.835616 -218.835616
30 31 32 33 34 35
-93.493151 -118.835616 -143.493151 -68.835616 -143.493151 -43.835616
36 37 38 39 40 41
106.506849 -93.493151 181.164384 -68.835616 606.506849 -218.835616