Anda di halaman 1dari 126

Belajar R

Sesi-1: Pengenalan R
[Copy right: boleh didistribusikan secara bebas]

Education Economic Finance


Agenda

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

03 Studi Kasus (1)


ANOVA1/2, LSD, Scheffe, SNK, Tukey, Duncan

04 Studi Kasus (2)


ANOVA1/2, LSD, Scheffe, SNK, Tukey, Duncan
Apakah R ?
Seluk Beluk R

Bahasa dan Environment


01 Bahasa pemrograman dan statistical analysis environment yang
dikembangkan oleh Robert Gentleman and Ross Ihaka dari University of
Auckland di New Zealand pada tahun 1991-an. R = nama pengembangnya.

Berasal dari Bahasa S

02 Bahasa S dikembangkan oleh John Chambers (dan lainnya) di Bell


Telephone Laboratories, (bagian dari AT&T Corp) pada tahun 1976. S
mulanya merupakan sebuah statistical analysis environment.

Lisensi Open Source

03 Di release pada tahun 1995, berada di bawah lisensi GPL-2 | GPL-3


(lebih dikenal dengan istilah Open Source).

Multiplatform

04 Saat ini tersedia untuk Windows, Linux, dan Mac OSX.


Karakteristik

Interpreter Integrasi Aplikasi

01 Program yang diketikkan akan langsung


dieksekusi baris-demi-baris, setelah
04 Dapat diintegrasikan dengan aplikasi pihak
ketiga, seperti: Visual Studio Code, RStudio,
penekanan tombol ENTER dsb. Dan juga diintegrasikan dengan bahasa
lain, misal: Python, Java.

Modular Large Community

02 Tersedia lebih dari 6500 modul tambahan,


yang disebut packages (paket/library) yang
05 Digunakan oleh berbagai kalangan, seperti:
kalangan akademik, riset, bisnis, industri,
dapat diinstal via download secara langsung hobi, dsb. Menempati ranking pertama dari
dari R. segi jumlah pengguna.

Grafik dan Chart Dukungan Dokumentasi

03 Mendukung berbagai jenis modul grafik dan


chart yang dibutuhkan pengguna.
06 Tersedia sangat banyak dokumentasi, contoh-
contoh program, buku-buku, training
bertemakan R.
R is one of the most important tool which is used by researchers, data analyst, statisticians, and
marketers for retrieving, cleaning, analyzing, visualizing, and presenting data

https://www.rexeranalytics.com/data-science-survey
Domain Terapan

Data Manipulation Big Data Technologies


Modul seperti dplyr dan data.table R memiliki konektor dan paket yang
memungkinkan manipulasi, memungkinkan integrasi dengan
pemfilteran, dan transformasi data teknologi Big Data seperti Apache
yang efisien, sehingga cocok Hadoop, Apache Spark, dan database
untuk pra-pemrosesan data besar. seperti PostgreSQL dan MongoDB.
Integrasi ini memfasilitasi ekstraksi,
analisis, dan visualisasi data.
Machine Learning and
Predictive Analytics

Modul pembelajaran mesin R, Scalable Analytics


seperti caret dan h2o, dapat
diterapkan ke Big Data untuk R dapat memanfaatkan kerangka kerja
membangun model prediktif, komputasi terdistribusi seperti Apache
melakukan tugas pengelompokan, Spark dan Hadoop untuk memproses
klasifikasi, dan regresi dalam skala dan menganalisis Big Data secara
besar. terukur dan efisien. Pengguna dapat
Parallel Computing memanfaatkan kekuatan cluster
R mendukung komputasi paralel melalui paket seperti terdistribusi untuk mengeksekusi kode
parallel, foreach, dan doParallel. Paket-paket ini R pada kumpulan data yang sangat
memungkinkan pengguna untuk mendistribusikan besar.
komputasi ke beberapa inti atau node, sehingga
meningkatkan kinerja padakomputasi data besar.
Kekurangan R
Not Ideal Programming Language

Steep Learning Curve Limited Support for Multithreading


Karena fungsionalitas dan sintaksisnya yang Dukungan R untuk pemrosesan paralel dan
luas, mempelajari R dapat menjadi tantangan multithreading tidak sefleksibel beberapa
bagi pemula yang tidak memiliki pengalaman bahasa lainnya. Keterbatasan ini dapat
pemrograman sebelumnya. Modul-modul yang
A B mempengaruhi kinerja ketika menangani
banyak juga dapat menimbulkan kebingungan tugas-tugas yang berhubungan dengan
ketika memilih paket yang paling sesuai untuk eksekusi paralel.
tugas tertentu.

C D

Memory Intensive Lack of Standardization


Manajemen memori R terkadang tidak efisien R tidak memiliki standarisasi yang ketat
ketika menangani kumpulan data yang besar. sebagai bahasa sumber terbuka, sehingga
Pengguna perlu mengoptimalkan kode mereka menyebabkan variasi dalam gaya dan praktik
dan mengeksplorasi teknik alternatif, seperti pengkodean. Kurangnya standarisasi ini dapat
data.table, untuk menangani kendala memori menimbulkan tantangan ketika berkolaborasi
secara efektif. dalam proyek atau menggunakan kembali
kode dari sumber berbeda.
Philosophy

In Stages in the Evolution of S, John Chambers writes:

“[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

Pilih versi R yang sesuai dengan Sistem


Operasi

R tersedia untuk Windows, Linux, dan Mac OSX.


Gunakan versi R terbaru dan stable.
Download R dari situs resmi CRAN.

https://cran.r-project.org/
Koneksi
Internet

Modul-modul atau packages


lainnya dapat diinstal dengan
cara men-download
Memerlukan koneksi Internet stabil
Menggunakan R
Perintah-perintah diketikkan
langsung pada prompt R
“>”.

Beberapa aplikasi pihak ketiga


tersedia untuk menambah fitur R,
khususnya fitur input, statistik, dan
output.

Pengguna dapat memanfaatkan


fasilitas drag and drop, export/import,
plot grafik secara interaktif.

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:

[1] "hallo, world"


Menggunakan R
Memanfaatkan aplikasi
pihak ketiga untuk
mempermudah (mengurangi
pengetikan perintah).

Contoh:
Meng-import data via
Rstudio dapat dilakukan
menggunakan menu File >>
Import Dataset …

Package yang dibutuhkan


akan diinstal secara
otomatis oleh RStudio
(download dari Internet).
Sintaks R
Pengertian

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.

Keywords dapat berupa perintah (command) atau


parameter.

Contoh:

for ( x in 1:10 ) {
print(x)
}

Catatan: x, 1, 10 bukan merupakan keywords


Daftar Reserved Words Menampilkan Reserved
Words
Pada prompt R ketikkan:

?reserved

Simbol <- atau = : merupakan assignment operator

Simbol-simbol operator aritmatika:

Addtion: +
Substraction: -
Division: /
Modulus: %%
Integer division: %/%
Exponentiation: ^ atau **

Simbol { dan } merupakan penanda awal dan akhir dari


suatu blok program.

Simbol ( dan ) untuk memaksakan prioritas dalam


ekspresi matematika (precedence); jika tidak, urutan
operasi standar akan berlaku.
Daftar Operator R
Daftar Operator R
Daftar Operator R

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.

Contoh Variable yang benar:


Nama variabel peka terhadapt huruf besar-kecil
(usia, Usia, dan AGE adalah tiga variabel berbeda) MyVariable, .mydata, MYNUMBER, Data_ku, Data2

Contoh Variable yang salah:


Kata-kata yang dicadangkan (kata
simpan/reserved word) tidak dapat 3MyVariable, _my_data, MY@aku, FALSE
digunakan sebagai variabel (TRUE, FALSE,
NULL, if...)
Contoh function Function

hello <- function() {


print('hello, World')
}

> hello()

mean_two_numbers <- function(num_1, num_2 = 30)


{
mean <- (num_1 + num_2) / 2
return (mean) Function (fungsi) merupakan sebuah blok kode program
} yang dapat melakukan sebuah task. Function dapat
dipanggil berulang-ulang. R menyediakan built-in
> mean_two_numbers(num_1 = 10) function (pre-defined function).
my_vector <- c(5, 10, 15, 20, 25)
names(my_vector) <- c('A', 'B', 'C', 'D', 'E') Function semacam ini termasuk keywords yang tidak
boleh digunakan untuk nama variable atau nama
> my_vector function bikinan sendiri (UDF = user defined function).

Function dikenali dengan adanya simbol () setelah nama


function.

Contoh Function:

print(), cat(), sum(), mean(), length(), dsb.


Contoh dokumentasi
function

Function dalam Package


Sebagian function tidak tersedia pada R-base, kecuali
apabila user menginstal paket tertentu di R.

Cara menggunakan function sangat bergantung pada


masing-masing paket, sehingga perlu dipelajari dari
manual/dokumentasi yang disediakan.

Contoh menampilkan help suatu 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 = Umur %% 365


Bulan = Hari %/% 30
print(Bulan)

Hari = Hari %% 30
print(Hari)

print((paste("Umur A =", Tahun, 'tahun,', Bulan, 'bulan,', Hari, 'hari')))


Contoh Function – (menggunakan Package)
Tampilkan plot grafik data bebas (X,Y) dan distribusi normalnya menggunakan function
plot pihak ketiga.
Silakan menginstal dan menggunakan package apa pun yang Anda sukai.

install.packages('txtplot')
library('txtplot')

cars
txtplot(cars[,1], cars[,2], xlab = 'speed', ylab = 'distance')

Dokumentasi function umumnya dapat ditampilkan dengan menggunakan command help.


Misal:

help(txtplot)

Misal:

txtdensity(rnorm(500))
Contoh Function – (UDF)
Buat program yang bisa menghitung hipotenusa.

hipotenusa <- function(x,y) {


x^2 + y^2
}
hipotenusa(3,4)
Contoh Plot
Belajar R
Sesi-2: Statistika
Berbasis R
[Copy right: boleh didistribusikan secara bebas]

Education Economic Finance


Struktur Data
Tipe Data & Struktur Data

OBJECTS
01 Semua yang ada pada R dianggap sebagai objek.

TIPE DATA DASAR


02 Tipe data dasar atau dikenal sebagai tipe data fundamental atau
primer. Disebut juga Primitive Data Types (tipe data primitif).

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

Contoh mendeklarasikan object A, B, C, dan D: Menampilkan info object A:

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)

Objects dapat diisi data primitif R memperlakukan Object sebagai vektor

01 Character, numeric (real/decimal), integer,


logical, complex.
02 Atomic vector, list, matrix, data frame, factors
Vector
Sebagian besar pekerjaan di R melibatkan tipe data berjenis vector

Vector (vektor) adalah array 1 dimensi. Sebuah


vektor harus berisi elemen-elemen yang tipenya
sama.
Vector
Sebagian besar pekerjaan di R melibatkan data vector

Contoh mendeklarasikan vektor. Menampilkan isi vektor:

atk <- c(“Buku”, “Pensil”, “Lem”) atk


D <- c(1L, 2L, 3L) print(D)
E = c(TRUE, TRUE, FALSE, FALSE) E[4]
atk[1]

Misalkan outputnya:

[1] "Buku" "Pensil" "Lem"

Menampilkan informasi vektor:

str(atk)

chr [1:3] "Buku" "Pensil" "Lem"


Matrix
Matrics (matrik) adalah vektor dua dimensi (array dua dimensi)
Matrix

Contoh mendeklarasikan matrik. Menampilkan isi matrik:

A <- matrix(c(1,2,3,4,5,6), nrow = 3, ncol = 2) A

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.

Berbagai jenis plot grafik dapat dipelajari dari situs berikut:

https://r-graph-gallery.com/
Grafik Library

Plot 2D

Fungsi umum untuk plot grafik 2 dimensi di R

X <- seq(-4, 4, 0.2)


Y <- 2*X^2 + 4*X – 7
plot(X,Y)
Grafik Library

Plot 3D

Fungsi umum untuk plot berbagai grafik 3 dimensi di R

x <- -10:10
y <- -10:10

#define function to create z-values


z_values <- function(x, y) {
sqrt(x ^ 2 + y ^ 2)
}

#create z-values
z = outer(x, y, z_values)

#create 3D plot
persp(x, y, z)
Grafik Library

Charts

Beberapa fungsi untuk plot chart di R

x <- c(21, 62, 10, 53)


labels <- c("Jakarta", "Bandung", "Surabaya", "Yogyakarta")
pie(x,labels)

Contoh lain:

library(plotrix)

x <- c(21, 62, 10, 53)


labels <- c("Jakarta", "Bandung", "Surabaya", "Yogyakarta")

pie3D(x,labels = labels,explode = 0.1, main = "Pie Chart Kota


di Indonesia ")

Berbagai contoh chart:


https://r-graph-gallery.com/all-graphs.html
Grafik Library

Animasi

Catatan: modul yang digunakan mungkin saja gagal diinstal di OS


tertentu (di[perlukan berbagai persiapan, instalasi library
pendukung)

library(ggplot2)
library(gganimate)

ggplot(mtcars, aes(factor(cyl), mpg)) +


geom_boxplot() +
# Here comes the gganimate code
transition_states(
gear,
transition_length = 2,
state_length = 1
)+
enter_fade() +
exit_shrink() +
ease_aes('sine-in-out')
Control
Statement
Control Statement

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]

Education Economic Finance


Pendahuluan
Uji Hipotesis
Hipotesis

Hipotesis berasal dari bahasa Yunani, Hipo berarti lemah atau di bawah,
01 dan Thesis.

Hipotesis adalah suatu pernyataan yang sifatnya masih lemah karena


02 masih harus dibuktikan. Hipotesis juga bisa diartikan sebagai dugaan
sementara di dalam suatu penelitian.

Pengujian Hipotesis adalah suatu prosedur yang dilakukan dengan tujuan


03 memutuskan apakah menerima atau menolak hipotesis mengenai
parameter populasi.

Uji hipotesis sangat menentukan generalisasi (simpulan) dari penelitian


yang telah dilakukan.
Hipotesis

Pernyataan yang masih lemah kebenarannya dan perlu dibuktikan atau dugaan
yang sifatnya masih sementara
Hipotesis

Ada beberapa jenis hipotesis:


01 a) Hipotesis Deskriptif
b) Hipotesis Komparatif
c) Hipotesis Asosiatif

Jenis hipotesis berdasarkan rata-rata populasinya:


02
a) Pengujian hipotesis satu rata-rata
b) Pengujian hipotesis beda dua rata-rata
c) Pengujian hipotesis beda tiga rata-rata
Hipotesis

Hipotesis nol (Ho) hipotesis yang diartikan sebagai tidak adanya


01
perbedaan antara ukuran populasi dan ukuran sampel.

Hipotesis alternatif (H1) merupakan lawan hipotesis nol, diartikan sebagai


02 adanya perbedaan data populasi dengan data sampel.

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

03 Secara umum formula hipotesis dapat ditulis sebagai:


Uji Satu Arah
One Side / One Tail Test

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

Dalam pengujian, α dipecah menjadi dua bagian yang sama besar, (α


mempertimbangkan kemungkinan efek positif dan negatif). Nilai
ekstrim/kritisnya berfungsi sebagai bukti yang menentang Ho.
Satu Arah vs Dua Arah
Satu Arah vs Dua Arah

1. Uji satu sisi, dimana hipotesis alternatif mempunyai satu tujuan. Uji
dua sisi dimana hipotesis alternatif memiliki tujuan ganda.

2. Uji satu sisi, hipotesis alternatif direpresentasikan secara terarah.


Sebaliknya, uji dua sisi merupakan uji hipotesis non-arah.

3. Dalam pengujian satu sisi, daerah penolakan berada di sebelah kiri


atau kanan distribusi sampling. Sebaliknya, uji dua sisi, daerah
penolakan berada pada kedua sisi distribusi sampling.

4. Uji satu sisi digunakan untuk memastikan apakah terdapat hubungan


antar variabel dalam satu arah, yaitu kiri atau kanan. Sebaliknya, uji dua
sisi digunakan untuk mengidentifikasi ada atau tidaknya hubungan
antar variabel dalam arah mana pun.
Satu Arah vs Dua Arah

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

Terdapat dua kesalahan (error) ketika menguji hipotesis, yaitu:

Type I error atau false positive (kesalahan pertama) adalah ketika


01 hipotesis diterima padahal seharusnya ditolak. Kesalahan tersebut
dinyatakan dengan huruf “a” atau α (alpha).

Type II error atau false negative (kesalahan kedua) apabila hipotesis


02 ditolak, padahal seharusnya diterima. Kesalahan itu dinyatakan dengan
huruf “b” atau β (beta).

Contoh false positive: hasil tes menyatakan si A mengidap virus HIV,


padahal sebenarnya tidak.

Contoh false negative: hasil tes menyatakan si A tidak mengidap virus


HIV, padahal sebenarnya iya.
Kesalahan Uji Hipotesis

Risiko melakukan kesalahan dipengaruhi tingkat signifikansi (α) yang


01
dipilih. Itu adalah nilai yang ditetapkan di awal penelitian untuk menilai
hasil probabilitas statistik p value.

Tingkat signifikansi biasanya ditetapkan sebesar 0,05 atau 5%. Artinya,


02 hasil perhitungan hanya mempunyai peluang 5% untuk terjadi, atau
kurang, jika Ho benar.

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

Kriteria penolakan Ho dilakukan saat:

p-value < α

[ 1% (0.01) atau 5% (0.05) atau 10% (0.1) ]


Probabilitas Melakukan Type I error
Probabilitas Melakukan Type II error
Probabilitas Melakukan Type I & II error
Kesalahan Uji Hipotesis
Pendahuluan
ANOVA
Metode Uji Hipotesis

01 Metode yang lazim digunakan untuk uji hipotesis antara lain:


a. ANOVA (Analysis of Variance)
b. Kruskal-Wallis (KW) test
c. Friedman Test
d. Welch’s ANOVA
e. MANOVA (Multivariate ANOVA)
f. SANOVA (Smoothed ANOVA)

02 Prinsip dasar ANOVA adalah menguji perbedaan rata-rata (mean) populasi


dengan memeriksa jumlah variasi dalam masing-masing sampel, relatif
terhadap jumlah variasi antar sampel.

03 Saat menggunakan ANOVA ada asumsi-asumsi data penelitian.


Asumsi - Data
Normalitas harus terpenuhi, pada prinsipnya uji
01 ANOVA merupakan uji beda rataan

DATA TERDISTRIBUSI NORMAL

OBSERVASI INDEPENDEN

02 Setiap sampel tidak berhubungan dengan


03 Distribusi mempunyai varian yang
sampel yang lain sama (homogen)
ANOVA

01 One Way ANOVA (satu arah) – Mengevaluasi dampak dari satu


faktor (kelompok) pada variabel respon tunggal.

Two Way ANOVA (dua arah) – Mengevaluasi dampak variabel


02 terhadap satu variabel respons.

ANOVA dua arah digunakan jika dataset memiliki dua variabel


kategori (kelompok atau faktor) dan satu variabel hasil kuantitatif.
ANOVA ONE WAY

One Way ANOVA (satu arah)



Normalitas – setiap sampel diambil dari populasi yang berdistribusi
normal

Independensi sampel – setiap sampel diambil secara independen
dari sampel lainnya

Kesetaraan varians – varians data dalam kelompok yang berbeda
harus sama

Variabel terikat – harus kontinu

Dalam ANOVA satu arah terdapat dua kemungkinan hipotesis.


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

Two Way ANOVA (dua arah)


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.

Karena ANOVA dua arah mempertimbangkan pengaruh dua faktor


kategorikal, dan pengaruh faktor kategorikal satu sama lain,
terdapat tiga pasang hipotesis nol atau alternatif untuk ANOVA
dua arah.
ANOVA

01 Jika peneliti membandingkan dua buah rata-rata kelompok maka terdapat satu
kemungkinan atas penolakan Ho, yaitu:૛

Sedangkan untuk tiga buah rata-rata kelompok, maka terdapat empat


02 kemungkinan atas penolakan Ho, yaitu:
ANOVA
ANOVA

1. ANOVA satu arah terutama dirancang untuk memungkinkan pengujian


kesetaraan antara tiga cara atau lebih. ANOVA dua arah dirancang untuk
menilai keterkaitan dua variabel independen terhadap variabel dependen.

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.

4. ANOVA satu arah hanya perlu memenuhi dua prinsip desain


eksperimen, yaitu replikasi dan pengacakan. Berbeda dengan ANOVA dua
arah, yang memenuhi ketiga prinsip desain eksperimen yaitu replikasi,
pengacakan, dan kontrol lokal.
ANOVA - ONE WAY
ANOVA - ONE WAY

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

SSA = sum of squares for factor A, the row variable


SSB = sum of squares for factor B, the column variable
SSA×B = sum of squares for interaction between factor A and B
SSE = sum of squares of error, also called sum of squares within groups
a = number of levels of factor A
b = number of levels of factor B
n = number of subjects in each group
Uji Perbandingan
(Post Hoc)
Post Hoc test

Tes post hoc merupakan bagian integral dari ANOVA.


Saat menggunakan ANOVA untuk menguji kesetaraan setidaknya tiga rata-rata
kelompok, hasil yang signifikan secara statistik menunjukkan bahwa tidak semua
rata-rata kelompok adalah sama.

Namun, hasil ANOVA tidak mengidentifikasi perbedaan mana yang signifikan


antara pasangan mean.

Gunakan pengujian post hoc untuk mengeksplorasi perbedaan antara


beberapa rata-rata kelompok sambil mengontrol tingkat kesalahan berdasarkan
eksperimen.
Post Hoc test
Nilai p sebesar 0,004 menunjukkan bahwa
kita dapat menolak hipotesis nol (Ho) dan
menyimpulkan bahwa keempat mean
tidak semuanya sama.

Tabel Rata-rata di bagian bawah


menampilkan rata-rata kelompok. Namun,
kita tidak mengetahui pasangan
kelompok mana yang berbeda secara
signifikan.

Untuk membandingkan rata-rata kelompok,


kita perlu melakukan tes post hoc, yang
juga dikenal sebagai perbandingan
berganda (multiple comparison).
LSD
Least Significance Difference

Keuntungan
Tingkat kesalahan tipe II lebih kecil

MSE = mean square of error Kerugian


dfe = degree of freedom
= number of treatment Tingkat kesalahan tipe I lebih kecil
n1,2 = number of replication data of treatment (1 and 2)

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

MSE = mean square of error Kerugian


dfe = degree of freedom Tingkat kesalahan tipe II lebih besar
t = number of treatment
r = number of replication
= chi-square table based on significan
Pengujian pembandingan tanpa rencana, yaitu
menguji semua kombinasi pasangan nilai tengah
(mean) perlakuan dapat digunakan uji HSD.

Uji HSD sangat sederhana karena hanya


membutuhkan satu nilai tunggal HSD yang
digunakan sebagai pembanding. Jika beda dua
nilai tengah (mean) perlakuan lebih besar dari nilai
HSD maka kedua perlakuan dinyatakan berbeda
Duncan (DMRT)
Duncan’s Multiple Range Test

Didasarkan pada sekumpulan nilai beda nyata


yang ukurannya semakin besar, tergantung pada
jarak di antara pangkat-pangkat dari dua nilai
tengah yang dibandingkan.
MSE = mean square of error
t = number of treatment
r = number of replication Uji Duncan dapat digunakan untuk menguji
= Duncan table of significant range for a given perbedaan diantara semua pasangan perlakuan
yang mungkin tanpa memperhatikan jumlah
perlakuan yang ada dari percobaan tersebut serta
Berbeda dengan perhitungan uji pada LSD dan HSD, masih dapat mempertahankan tingkat nyata yang
perhitungan signifikansi dua nilai tengah (mean) perlakuan ditetapkan.
pada uji Duncan cukup kompleks (tidak dibandingkan
dengan hanya satu acuan nilai) dan dilakukan secara
bertahap pada seluruh kombinasi nilai tengah (mean) dari
perlakuan.

Oleh karenanya dengan menggunakan uji wilayah


berganda Duncan kita harus melakukan pembandingan
sebanyak (t-1) kali, dimana t merupakan jumlah perlakuan
yang akan dibandingkan.
SNK
Student Newman Keuls

Pada pengujian dengan uji S-N-K lebih kompleks


dari segi kombinasi pengujian nilai tengah (mean)
perlakuan dibandingkan dengan kombinasi
pengujian nilai tengah (mean) perlakuan yang ada
pada uji Duncan (hanya t-1 buah).
MSE = mean square of error
y = mean of treatmen (Y1 dan T2)t Pada uji S-N-K akan ada ½t(t-1) pasangan nilai
r = number of replication of treatment tengah (mean) perlakuan yang dapat dibandingkan

Berbeda dengan uji HSD yang hanya menggunakan satu


nilai tunggal w (nilai acuan HSD) sebagai pembanding,
pada uji S-N-K ini menggunakan beberapa nilai untuk
pengujian (menggunakan beberapa nilai acuan w).

Secara prosedur perhitungan uji S-N-K serupa prosedur


dengan uji Duncan.
Dunnet

Uji Dunnet merupakan suatu alat pengujian


pembanding semua nilai tengah (mean) perlakuan
dengan kontrol.

Prosedur Dunnet membutuhkan sebuah nilai


MSE = mean square of error tunggal (d) untuk dijadikan pembanding.
dfe = degree of freedom
= number of treatment
n1,2 = number of replication data of treatment (1 and 2)

Uji Dunnet mirip atau hampir sama dengan penggunaan uji


LSD dan boleh jadi menjadi alternatif bagi peneliti jika
memang memiliki kondisi yang di syaratkan oleh uji-uji
tersebut.
Scheffe

Digunakan untuk pembanding yang tidak perlu


orthogonal.

Prosedur pengujiaannya memperbolehkan


berbagai macam tipe pembandingan sehingga
MSE = mean square of error kurang sensitif dalam menemukan perbedaan
fvalue = from ANOVA nyata dibanding dengan prosedur pembandingan
k - 1 = dft (degree of freedom treatment) lainnya,.
r1,2 = number of replication data of treatment (1 and 2)

Uji Scheffe dilakukan melalui distribusi probabilitas


pensampelan F-Fisher Snedecor
ANOVA & R
ANOVA

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.

Penerapan metode parametrik pada


umumnya adalah menduga atau menguji
parameter yang belum diketahui dari
distribusi tertentu yang dianggap sesuai
dengan kondisi data, contohnya asumsi
distribusi normal yang harus dipenuhi pada
model regresi.

Jumlah data biasanya berukuran besar,


( data >= 30 buah).
Tahapan

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.

METODE dan DOMAIN PERMASALAHAN


03 Pemahaman yang baik terhadap metode yang digunakan dan juga
pemahaman yang baik terhadap permasalahan yang hendak
diselesaikan.
Prapemrosesan - Data (overview)

Data Cleaning Data Transformation

01 Pembersihan data, salah satu langkah


prapemrosesan utama untuk menemukan dan 03 Proses ini mentransformasikan data dalam
format yang memungkinkan analisis.
memperbaiki kesalahan atau perbedaan
Normalization (normalisasi), standardization
dalam data. Dari duplikat dan outlier hingga
(standardisasi), dan discretisation (diskritisasi)
data yang hilang.
merupakan prosedur transformasi data yang
umum.
Data Integration
Data Reduction
02 Proses mengintegrasikan (menggabungkan)
04
informasi yang diambil dari berbagai sumber Reduksi data adalah proses memperkecil
untuk menguraikan dan membuat satu ukuran kumpulan data dengan tetap
kumpulan data. mempertahankan informasi penting. Melalui
penggunaan algoritma feature selection
(pemilihan fitur) dan feature extraction
(ekstraksi fitur).
Langkah Umum

Check data
Check struktur data, ada komentar, N/A (blank), nama
kolom, dsb

Import Data ke R Visualisasi data


Ubah format data ke bentuk data Visualisasi data dalam bentuk Box
frame yang dipahami oleh R plot dan Line plot dapat
memudahkan memahami sebaran
data

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

MENGGUNAKAN BUILT-IN FUNCTION MEMBUAT FUNCTION & KODE


PROGRAM SENDIRI
01 Lebih praktis, cepat, error free. Namun harus
mengetahui function tertentu dan cara 02 Lebih rumit, lama, menuntut pemahaman
menggunakan function tersebut.
sintaks-sintask bahasa R dengan baik dan
juga pemahaman pada metode yang akan
digunakan.

KOMBINASI
03 Sebagian function atau kode-kode program
dibuat sendiri, sebagian lagi menggunakan
built-in function.
BUILT-IN FUNCTION

Tersedia beberapa function yang sudah umum untuk keperluan analisis


ANOVA di R:

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]

Education Economic Finance


ANOVA
Overview
ANOVA vs LR
Perbandingan

Sama dengan Linear Regression (Regresi Linier) tetapi salah satu


01 perbedaan utamanya adalah Regresi digunakan untuk memprediksi hasil
kontinu (continous outcome) berdasarkan satu atau lebih variabel prediktor
kontinu.

02 Sedangkan ANOVA digunakan untuk memprediksi hasil kontinu berdasarkan


satu atau lebih variabel prediktor kategoris (categorical variable).

03 ANOVA hanyalah kasus khusus dari Regresi.


ANOVA vs LR
Perbandingan

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

Import Data ke R Visualisasi data


Ubah format data ke bentuk data Visualisasi data dalam bentuk Box
frame yang dipahami oleh R plot dan Line plot dapat
memudahkan memahami sebaran
data

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

Perintah untuk menggunakan file CSV:

penguins <- read.csv("


https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2020/2020-07-28/penguins.csv ")

head(penguins)

str(penguins)
Summary Data CSV

'data.frame': 344 obs. of 8 variables:


$ species : chr "Adelie" "Adelie" "Adelie" "Adelie" ...
$ island : chr "Torgersen" "Torgersen" "Torgersen" "Torgersen" ...
$ bill_length_mm : num 39.1 39.5 40.3 NA 36.7 39.3 38.9 39.2 34.1 42 ...
$ bill_depth_mm : num 18.7 17.4 18 NA 19.3 20.6 17.8 19.6 18.1 20.2 ...
$ flipper_length_mm: int 181 186 195 NA 193 190 181 195 193 190 ...
$ body_mass_g : int 3750 3800 3250 NA 3450 3650 3625 4675 3475 4250 ...
$ sex : chr "male" "female" "female" NA ...
$ year : int 2007 2007 2007 2007 2007 2007 2007 2007 2007 2007 ...
>

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

Namun ketika dicoba membandingkan tipe variable qualitatif sbb:

str(penguins$species)

dengan Hasilnya akan berbeda !


str(datapenguin$species)

LALU APA EFEKNYA ?

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

Coba ketikkan hasil plot grafik

modelpinguin <- aov(body_mass_g ~ sex * species,data = datapinguin)


summary(modelpinguin)
hist(modelpinguin$residuals)

Bandngkan dengan:

modelpinguincsv <- aov(body_mass_g ~ sex * species,data = penguins)


summary(modelpinguincsv)
hist(modelpinguincsv$residuals)

Df Sum Sq Mean Sq F value Pr(>F)


sex 1 38878897 38878897 406.145 < 2e-16 ***
species 2 143401584 71700792 749.016 < 2e-16 ***
sex:species 2 1676557 838278 8.757 0.000197 ***
Residuals 327 31302628 95727
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
11 observations deleted due to missingness
Residu

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

Perhatikan pola berikut:


Individu yang mempunyai nilai lebih besar dari rata-rata kelompoknya mempunyai residu positif.
Individu yang memiliki nilai lebih kecil dari rata-rata kelompoknya memiliki residu negatif.
Salah satu asumsi ANOVA adalah residunya terdistribusi normal. Cara paling umum untuk memeriksa
asumsi ini adalah dengan membuat plot QQ. Plot QQ, kependekan dari plot “quantile-quantile”, adalah jenis
plot yang dapat kita gunakan untuk menentukan apakah suatu kumpulan data berpotensi berasal dari suatu
distribusi teoretis atau tidak.

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

Normalitas terpenuhi Normalitas tidak terpenuhi


Residu
Menampilkan data residu:

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

Menyimpan data residu:

sisa <- modelpinguincsv$residuals


write.csv(sisa, "residu.csv", row.names=FALSE)
Residu
Semoga Bermanfaat
Terima kasih

Anda mungkin juga menyukai