Statistika dengan R : Distribusi Peluang, Distribusi Normal, dan Distribusi Binomial
Distribusi Binomial
Distribusi peluang binomial digunakan untuk mendeskripsikan banyaknya percobaan yang "sukses" dari n buah percobaan yang dilakukan.Misal:
- Dilakukan percobaan melempar 50 koin, banyaknya muncul kepala adalah random variabel yang berdistribusi binomial.(sukses: jika muncul kepala)
- Dilakukan survei kepada 100 orang dan mencatat gender dari orang tersebut. Banyaknya wanita adalah random variabel yang berdistribusi binomial. (sukses: jika terpilih wanita)
Beberapa kondisi yang harus terpenuhi untuk memiliki distribusi binomial:
- Masing-masing percobaan harus independent
- Banyaknya percobaan adalah `n` (fixed)
- Kemungkinan untuk masing-masing percobaan hanya ada dua, yaitu sukses atau gagal
- Peluang sukses untuk masing-masing percobaan sama yaitu `p`
Untuk mengetahui peluang adanya `k` percobaan yang sukses dari `n` percobaan, dapat digunakan perintah:
```
dbinom(k, n, prob)
```
dengan prob adalah peluang kejadian "sukses".
Misal diketahui peluang munculnya head pada pelemparan sebuah koin adalah 0.3. Berapakah peluang ada tepat 5 head dari 10 kali pelemparan?
```{r}
dbinom(5,10, prob=0.3)
```
Untuk mengetahui peluang ada maksimal `k` kejadian yang sukses dari `n` percobaan, dapat dicari dengan perintah:
```
pbinom(k,n,prob,lower.tail=TRUE)
```
Misal diketahui peluang munculnya head pada pelemparan sebuah koin adalah 0.3. Berapakah peluang ada maksimal 5 head dari 10 kali pelemparan?
```{r}
pbinom(5,10, prob=0.3, lower.tail=TRUE)
```
Jika ingin mengetahui peluang munculnya head setidaknya 5 kali dari 10 pelemparan, maka Anda dapat mengganti parameter lower.tail menjadi `FALSE`.
```{r}
pbinom(5,10, prob=0.3, lower.tail = FALSE)
```
Untuk mengetahui berapa kali keluar head maksimum dari 10 kali pelemparan yang termasuk 10% terendah, Anda dapat menggunakan perintah
```
qbinom(p, n, prob, lower.tail=TRUE)
```
dengan p adalah persentil. Jadi untuk mengetahui batas maksimum keluarnya head dari 10 kali pelemparan yang termasuk 10% terendah:
```{r}
qbinom(0.1, 10, 0.3, lower.tail = TRUE)
```
Sebuah survei menyatakan 7% remaja (umur 13-17 tahun) menderita arachnophobia sehingga sangat takut terhadap lama-lama. Saat sekolah X mengadakan camp, sebuah tenda berisi 10 orang remaja. Asumsikan 10 orang tersebut independent satu sama lain.
1. Hitunglah peluang setidaknya ada satu di antara mereka yang menderita arachnophobia
```{r}
pbinom(1,10, prob=0.07, lower.tail = FALSE)
```
2. Hitunglah peluang tepat ada 2 di antara 10 remaja tersebut yang menderita arachnophobia
```{r}
dbinom(2,10, prob=0.07)
```
3. Hitunglah peluang paling banyak 1 di antara mereka yang menderita arachnophobia
```{r}
pbinom(0,10, prob=0.07, lower.tail=TRUE)
```
4. Jika panitia camp ingin memastikan tidak ada lebih dari 1 remaja di sebuah tenda yang menderita arachnophia, apakah cukup masuk akal jika mereka memilih anggota untuk berada dalam satu tenda secara acak? Jelaskan argumenmu!
Jawab no 4
Cocok jika diacak. Jika kita menghitung peluang satu tenda tersebut memuat maksimal 1 orang yang memiliki arachnophobia dengan perhitungan Tugas 1 no 1 dimana memiliki peluang 0.15 dan peluang jika ada 2 orang yang mengalami arachnophobia dalam satu tenda ada 0.02, maka sangat mungkin tenda tersebut tidak memiliki 2 atau lebih remaja yang mengalami arachnophobia karena kecilnya peluang terjadinya 2 remaja atau lebih dengan phobia dalam 1 tenda
Distribusi Normal
Distribusi normal adalah distribusi peluang untuk random variabel kontinu yang memiliki banyak aplikasi.
Tentukan random variabel mana sajakah yang termasuk random variabel kontinu?
- X menyatakan banyaknya penjualan sekotak sereal merk "Malo" setiap harinya.
- Y menyatakan berat sekotak sereal dengan merk "Malo".
- Z menyatakan rata-rata suhu udara untuk masing-masing hari ditahun 2019.
Jawab:
- Discrete
- Continu ( bisa jadi beratnya 141.27 gram)
- Continu
Tidak semua random variabel kontinu berdistribusi normal. Ada banyak distribusi peluang lainnya seperti distribusi uniform, distribusi eksponensial, dll. Pada modul ini, hanya akan dibahas mengenai distribusi normal.
Sebuah random variabel dikatakan berdistribusi normal jika fungsi peluangnya mengikuti fungsi:
dengan $\sigma$ adalah standard deviasi dan $\mu$ adalah rata-rata (mean). Sangat jarang sebuah variabel benar-benar berdistribusi normal. Tetapi ada banyak variabel yang mendekati normal. Secara sederhana sebuah variabel akan mendekati normal jika distribusi peluangnya:
- simetri
- unimodal
- bell-shape curve (perhatikan gambar di bawah ini untuk mengerti seperti apa contoh bell-shape curve)
```{r contoh plot distribusi normal baku}
x <- seq(-4,4,length=100)
hx <- dnorm(x)
ggplot(data.frame(x,hx), aes(x=x, y=hx))+
geom_line()
```
Bagaimana mengetahui apakah variabel yang dimiliki berdistribusi normal atau tidak? Sederhananya adalah dengan mencoba menggambar density plot seperti di atas.
Contoh:
```{r, error=TRUE}
# import dataset weight.height.csv dan simpang dengan nama weight.height
weight.height <- read.csv("weight-height.csv")
ggplot(weight.height[weight.height$Gender=="Male",], aes(x=Height))+
geom_histogram(aes(y= ..density..), colour="black", fill="white")+
geom_density(colour="red")
```
NB: aesthetics untuk histogramnya adalah density, agar ketinggian dari masing-masing kelasnya bukan menyatakan frekuensi tetapi frekuensi relatif.
Perhatikan tinggi badan pria mendekati distribusi normal. Selain dengan membuat density plot, untuk melihat apakah mendekati distribusi normal atau tidak juga dapat menggunakan normal plot (qqnorm).
```{r}
qqnorm(weight.height[weight.height$Gender=="Male",]$Height)
```
Buatlah histogram dan density plot untuk tinggi badan wanita. Buat juga normal plot untuk tinggi badan wanita. Apakah tinggi badan wanita juga berdistribusi normal? Berikan argumenmu
```{r}
weight.height <- read.csv("weight-height.csv")
ggplot(weight.height[weight.height$Gender=="Female",], aes(x=Height))+
geom_histogram(aes(y= ..density..), colour="black", fill="white")+
geom_density(colour="red")
qqnorm(weight.height[weight.height$Gender=="Female",]$Height)
```
Jawab
Iya, terdistribusi normal juga. Pada graph histogram dengan line, terbentuk pola bell-shape curve. Kita bisa melihat puncaknya dan nyaris simetris bentuknya. Begitupun dengan Normal plot yang dense dan turut menaik grafnya.
Buatlah histogram dan density plot untuk tinggi badan keseluruhan. Buat juga normal plot untuk tinggi badan keseluruhan. Apakah tinggi badan keseluruhan juga berdistribusi normal? Berikan argumenmu
```{r}
weight.height <- read.csv("weight-height.csv")
ggplot(weight.height, aes(x=Height))+
geom_histogram(aes(y= ..density..), colour="black", fill="white")+
geom_density(colour="red")
qqnorm(weight.height$Height)
```
Jawab
Iya. Lihat Grafik Histrogram dan Density plot. Jelas bentuk bell-curve nya dan datanya terdistribusi secara merata. Selain itu juga, untuk Normal Plot terbentuk dengan baik. Meskipun tidak 100 persen sempurna, namun sdah merepresentasikan bahwa data tersebut terdistribusi normal.
Buatlah histogram dan density plot untuk berat badan pria, berat badan wanita, dan berat badan keseluruhan. Buat juga normal plot untuk berat badan pria, berat badan wanita, dan berat badan keseluruhan. Apakah berat badan pria, berat badan wanita, dan berat badan keseluruhan juga berdistribusi normal? Berikan argumenmu
```{r}
weight.height <- read.csv("weight-height.csv")
ggplot(weight.height[weight.height$Gender=="Male",], aes(x=Weight))+
geom_histogram(aes(y= ..density..), colour="black", fill="white")+
geom_density(colour="red")+
ggtitle("Berat Badan Pria")
qqnorm(weight.height[weight.height$Gender=="Male",]$Weight)
weight.height <- read.csv("weight-height.csv")
ggplot(weight.height[weight.height$Gender=="Female",], aes(x=Weight))+
geom_histogram(aes(y= ..density..), colour="black", fill="white")+
geom_density(colour="red")+
ggtitle("Berat Badan Wanita")
qqnorm(weight.height[weight.height$Gender=="Female",]$Weight)
weight.height <- read.csv("weight-height.csv")
ggplot(weight.height, aes(x=Weight))+
geom_histogram(aes(y= ..density..), colour="black", fill="white")+
geom_density(colour="red")+
ggtitle("Berat Badan Keseluruhan")
qqnorm(weight.height$Weight)
```
Jawab
Untuk Pria dan Wanita, datanya terdistribusi normal. Jika anda perhatikan, kedua histogram dengan density plot membentuk bell-curve shaped yang menandakan bahwa data tersebut terdistribsi normal. Jika dilihat dari berat keseluruhan, data tidak terlalu terdstribusi dengan normal karena tidak terlalu membentuk bell curved. Nyaris berbentuk bell curved. Begitupun dengan Normal Plot. Normal Plot pada berat wanita dan pria turut menaik. Akan tetapi, untuk keseluruhan normal plotnya pun turut menaik tapi tidak seperti wanita maupun pria.
Selain menggunakan plot untuk melihat apakah distribusi dari sebuah random variabel mendekati normal atau tidak, ada juga uji hipotesa untuk menentukan normal atau tidak. Tetapi hal tersebut tidak dipelajari di modul ini.
Beberapa sintaks R yang dapat digunakan untuk mencari nilai density, nilai kumulatif, dan kuantil adalah:
- `dnorm(x, mean, sd)` untuk mencari nilai density dari sebuah nilai/vektor x. Default untuk nilai mean adalah 0. Default nilai sd adalah 1. Jadi jika parameter mean dan sd tidak diisi, akan terisi dengan nilai default.
- `pnorm(x, mean, sd, lower.tail)` untuk mencari nilai peluang di bawah/atas nilai/vektor x. Default untuk mean = 0, sd= 1, lower.tail=TRUE.
- `qnorm(p, mean, sd, lower.tail)` untuk mencari nilai kuantil dengan persentil sebesar p (p dapat berupa vektor juga). Default untuk mean = 0, sd= 1, lower.tail=TRUE.
Contoh:
Diketahui rata-rata nilai SAT adalah 1100 dan SD adalah 200. Jika Ann mendapat nilai 1300 pada tes SAT. Ada berapa persen peserta yang mendapat nilai lebih tinggi dari Ann?
```{r}
pnorm(1300, mean=1100, sd=200, lower.tail = FALSE)
```
Jika Siti mengatakan bahwa dia termasuk peserta yang berada di 10% nilai terendah. Berapakah nilai maksimum yang mungkin didapatkan oleh Siti?
```{r}
qnorm(0.1, mean=1100, sd=200)
```
Dari dataframe `weight.height`. Tentukan tinggi badan wanita minimal yang berada di 10% teratas.
```{r}
woman_data <- data.frame(weight.height$Height[weight.height$Gender=="Female"])
tallWoman_mean <- mean(woman_data[["weight.height.Height.weight.height.Gender.....Female.."]], na.rm = TRUE)
tallWoman_std <- sd(woman_data[["weight.height.Height.weight.height.Gender.....Female.."]], na.rm = TRUE)
qnorm(0.1, tallWoman_mean, tallWoman_std, lower.tail = FALSE)
```
Jika seorang diambil seorang pria secara acak dari orang yang ada di dataframe `weight.height`. Berapa peluang berat badan pria tersebut lebih kecil daripada 200?
```{r}
MaleWeight_data <- data.frame(weight.height$Weight[weight.height$Gender=="Male"])
tallman_mean <- mean(MaleWeight_data[["weight.height.Weight.weight.height.Gender.....Male.."]], na.rm = TRUE)
tallman_std <- sd(MaleWeight_data[["weight.height.Weight.weight.height.Gender.....Male.."]], na.rm = TRUE)
pnorm(200, tallman_mean, tallman_std)
```
NB: untuk tugas 6 dan 6, perhatikan semesta yang digunakan. Tugas 6 hanya dari wanita dan Tugas 7 hanya dari para pria. Untuk menjawab pertanyaan, tentu Anda harus mencari rata-rata dan standard deviasi terlebih dahulu.
Distribusi Binomial yang Dihampiri oleh Distribusi Normal
Jika banyaknya percobaan yang dilakukan cukup besar, maka distribusi binomial dapat dihampiri oleh distribusi normal. Distribusi binomial dengan peluang sukses p mendekati normal jika n cukup besar sehingga np dan n(1-p) keduanya lebih besar atau sama dengan 10. Parameter:
Contoh:
Sekitar 15% dari populasi di Amerika serikat merokok. Salah satu pemerintah daerah mengatakan bahwa daerahnya memiliki tingkat merokok yang lebih rendah. Dia melakukan survei terhadap 400 orang yang dipilih secara acak dan menemukan hanya 42 orang yang merokok. Jika proporsi perokok sesungguhnya adalah 15%, berapa peluang ada lebih sedikit atau sama dengan 42 orang yang merkok dari 400 orang?
Tentukan nilai peluang yang ingin dicari dengan menggunakan distribusi binomial biasa dan dengan penghampiran dengan distribusi normal. Berikan argumenmu
```{r}
pnorm(42, 400*0.15, sqrt(400*0.15*(1-0.15)))
pbinom(42,400, prob=0.15)
```
Jawab
Hasil pnorm dan pbinom nyaris sama
Berapa peluang ada 49 sampai 51 perokok dari 400 orang? Tentukan nilai peluang yang ingin dicari dengan menggunakan distribusi binomial biasa dan dengan penghampiran dengan distribusi normal. Berikan argumenmu!
```{r}
dbinom(49,400, prob=0.15)+dbinom(50,400, prob=0.15)+dbinom(51,400, prob=0.15)
pnorm(49, 400*0.15, sqrt(400*0.15*(1-0.15)),lower.tail = FALSE)-pnorm(51, 400*0.15, sqrt(400*0.15*(1-0.15)),lower.tail = FALSE)
pnorm(48.5, 400*0.15, sqrt(400*0.15*(1-0.15)),lower.tail = FALSE)-pnorm(51.5, 400*0.15, sqrt(400*0.15*(1-0.15)),lower.tail = FALSE)
```
Jawab
Tidak sama sekali dengan perbedaan yang cukup signifikan
Bagaimana jika menambahkan 0.5 ke batas atas dan mengurangi 0.5 ke batas bawahnya ketika mencari dengan distribusi normal? Berikan argumenmu!
Jawab
Nilai dari pnorm akan mendekati dari dbinom
Posting Komentar