Tutorial R
Bahasa pemrograman R menyediakan berbagai fungsi untuk membantu kita menghitung nilai peluang dari sebuah distribusi, atau membangkitkan data berdasarkan distribusi tertentu. Untuk melihat distribusi apa saja yang tersedia dalam R, gunakan fungsi help(Distributions).
Distribusi atau penyebaran peluang adalah penjelasan matematika akan sebuah kejadian acak dalam hal peluang. Distribusi peluang sangat banyak dan berperan sangat penting dalam statistika.
Salah satu yang terpenting adalah distribusi normal yang berbentuk lonceng simetris (bell-shaped). R menyediakan berbagai fungsi untuk membantu kita menghitung nilai peluang dari sebuah distribusi, atau membangkitkan data berdasarkan distribusi tertentu.
Untuk melihat distribusi apa saja yang tersedia dalam R, gunakan fungsi help(Distributions)
. Informasi mengenai distribusi peluang yang tersedia pada paket base R akan ditampilkan pada help system.
Berikut daftar distribusi peluang yang terdapat pada R.
Distribusi | Nama Fungsi | Argumen |
---|---|---|
Beta | beta | shape1, shape2, ncp |
Binomial | binom | size, prob |
Cauchy | cauchy | location, scale |
Chi-Squared | chisq | df, ncp |
Exponential | exp | rate |
F | f | df1, df2, ncp |
Gamma | gamma | shape, scale |
Geometric | geom | prob |
Hypergeometric | hyper | m, n, k |
Log-Normal | lnorm | meanlog, sdlog |
Logistic | logis | location, scale |
Negative Binomial | nbinom | nbinom, size, prob |
Normal | norm | mean, sd |
Poisson | pois | lambda |
Signed | rank | signrank, n |
Student's | t | t, df, ncp |
Uniform | unif | min, max |
Weibull | weibull | shape, scale |
Wilcoxon | wilcox | m, n |
Secara umum, R menyediakan empat perintah untuk setiap distribusi peluang seperti terlihat pada tabel berikut:
Sintaks Sisipan | Hasil |
---|---|
"d" | Fungsi kepadatan peluang atau pdf (probability density function) |
"p" | Fungsi kepadatan kumulatif atau cdf (Cumulative density function) |
"q" | Invers fungsi kepadatan kumulatif (Inverse cumulative density function (quantiles)) |
"r" | Data bangkitan acak |
Sebagai contoh, kita akan membahas distribusi Normal sedangkan distribusi lainnya akan diberikan dalam artikel lain secara terpisah.
Distribusi Gaussian atau yang lebih dikenal dengan distribusi normal merupakan salah satu distribusi peluang yang penting dalam analisis statistika dengan fungsi kepekatan (density function) sebagai berikut:
\[ f(x;μ,σ) = \frac{1}{σ\sqrt{2π}} e^{-\frac{1}{2} \left( \frac{x-μ}{σ} \right)^2} \ -∞ < x < ∞ \]
Distribusi ini memiliki parameter berupa rata-rata \(μ\) (mean) dan simpangan baku \( σ \) (standard deviation). Distribusi normal dengan rata-rata = 0 dan simpangan baku = 1 disebut dengan distribusi normal standar (Z distribution).
Berikut adalah sintaks untuk empat perintah distribusi normal:
dnorm(x, mean = 0, sd = 1, log = FALSE)
pnorm(q, mean = 0, sd = 1, lower.tail = TRUE, log.p = FALSE)
qnorm(p, mean = 0, sd = 1, lower.tail = TRUE, log.p = FALSE)
rnorm(n, mean = 0, sd = 1)
Yang perlu diingat adalah jika kita tidak mendefinisikan nilai mean
dan sd
, maka default yang digunakan adalah mean = 0
dan sd = 1
(Normal Standard).
Fungsi pertama adalah dnorm()
, yakni untuk menghitung kepekatan (density) pada \( f(X=x) \). Perhatikan sintaks berikut.
### dnorm ###
## f(x) untuk dist normal standard (mean=0, sd=1)
dnorm(0)
[1] 0.3989423
## f(x) untuk dist normal standard (mean=4, sd=10)
dnorm(0, mean = 4, sd = 10)
[1] 0.03682701
Fungsi berikutnya adalah pnorm()
, yakni untuk menghitung nilai kepekatan peluang kumulatif \( (f(X < x)) \). Perhatikan sintaks berikut:
### pnorm ###
pnorm(0)
[1] 0.5
pnorm(1)
[1] 0.8413447
pnorm(-1.95)
[1] 0.02558806
1-pnorm(1.64)
[1] 0.05050258
Sedangkan fungsi qnorm()
memberikan nilai quantil dari fungsi kepekatan peluang kumulatif. Perhatikan contoh berikut.
### qnorm ###
qnorm(0.84134472)
[1] 0.9999999
qnorm(0.05)
[1] -1.644854
qnorm(0.975)
[1] 1.959964
## Mencari lebih dari 1 nilai
qnorm(c(0.975,0.5))
[1] 1.959964 0.000000
Fungsi terakhir adalah rnorm()
, yakni perintah untuk membangkitkan data berdasarkan distribusi normal dengan parameter tertentu.
### rnom ###
## Membangkitkan data dari distribusi normal standard
## sejumlah n = 1000
x <- rnorm(1000)
head(x)
[1] 1.11907998 -0.22352119 1.28289368 0.76497081 -0.04511783 -0.69195368
y <- rnorm(1000, mean = 10, sd = 4)
head(y)
[1] 9.956290 9.381030 15.370075 5.829345 14.848536 5.099751
## Menggambar distribusi data bangkitan
par(mfrow=c(1,2))
hist(x, probability = TRUE)
lines(density(x), col=2, lwd=2)
hist(y, probability = TRUE)
lines(density(y), col=2, lwd=2)
Jumlah penjualan sebuah produk per hari dianggap mengikuti distribusi normal dengan rata-rata 250 unit dan standar deviasi 10 unit. Berapakah peluang bahwa pada suatu hari hasil penjualan akan:
Untuk menghitung secara manual, kita harus mentransformasikan ke distribusi Z, yakni \( Z = \frac{x-μ}{σ} \). Dengan demikian, kita peroleh
\begin{aligned} P(X > 225) &= P \left(Z > \frac{268-250}{10}\right) \\[5pt] &= P(Z > 1.8) \end{aligned}
yang kemudian nilai tersebut dicari pada tabel Normal standard.
Dengan menggunakan R kita dapat menghitung langsung dari distribusi data tersebut atau dengan hasil transformasi ke distribusi Z:
## Distribusi data
1-pnorm(268, mean = 250, sd=10)
[1] 0.03593032
# atau dengan standar normal
1-pnorm(1.8, 0, 1)
[1] 0.03593032
pnorm(260, mean = 250, sd=10) - pnorm(245, mean = 250, sd=10)
[1] 0.5328072
## atau dengan distribusi Z
pnorm(1, mean=0, sd=1) - pnorm(-0.5, mean=0, sd=1)
[1] 0.5328072
Glaukoma merupakan penyakit mata yang dimanifestasikan oleh intraocular pressure (IOP) yang tinggi. Distribusi dari IOP pada populasi umum mengikuti sebaran normal dengan rata-rata 16 mm HG dan standar deviasi 3 mm Hg. Jika normal kisaran untuk IOP dianggap 12 dan 20 mm Hg, maka berapa persen dari populasi umum akan berada dalam rentang ini?
## Distribusi Data
pnorm(20, mean = 16, sd=3) - pnorm(12, mean = 16, sd=3)
[1] 0.8175776
## atau dengan standar normal
pnorm(1.33333, mean = 0, sd=1) - pnorm(-1.33333, mean = 0, sd = 1)
[1] 0.8175765
“Learn to enjoy every minute of your life. Be happy now. Don't wait for something outside of yourself to make you happy in the future.
Earl Nightingale