#Teorema Limit Pusat merupakan salah satu konsep penting dalam statistika yang menyatakan bahwa distribusi rata-rata sampel akan mendekati distribusi normal apabila ukuran sampel cukup besar, walaupun distribusi populasi asal tidak berdistribusi normal.Hal ini menunjukkan bahwa semakin besar ukuran sampel yang digunakan, penyebaran rata-rata sampel akan semakin kecil dan distribusinya semakin mendekati distribusi normal.
Distribusi geometrik digunakan untuk menggambarkan jumlah percobaan yang diperlukan hingga terjadi keberhasilan pertama. Distribusi ini memiliki bentuk yang tidak simetris karena peluang keberhasilan biasanya lebih besar pada percobaan awal. Dalam simulasi ini dibuat populasi yang mengikuti distribusi geometrik. Selanjutnya diambil beberapa sampel dengan ukuran yang berbeda. Untuk setiap sampel dihitung nilai rata-ratanya, kemudian hasil rata-rata tersebut divisualisasikan menggunakan histogram.
par(mfrow=c(3,1))
library(probs)
##
## Attaching package: 'probs'
## The following objects are masked from 'package:base':
##
## intersect, setdiff, union
set.seed(321)
populasi = rgeom(25, 0.2)
n1 = 3
contoh_geo1 = urnsamples(populasi, size = 3, replace = F, ordered = F)
mean_geo1 = matrix(apply(contoh_geo1, 1, mean))
n2 = 6
contoh_geo2 = urnsamples(populasi, size = 6, replace = F, ordered = F)
mean_geo2 = matrix(apply(contoh_geo2, 1, mean))
n3 = 12
contoh_geo3 = urnsamples(populasi, size = 12, replace = F, ordered = F)
mean_geo3 = matrix(apply(contoh_geo3, 1, mean))
hist(mean_geo1,main = paste("Hampiran Normal Terhadap Geometrik (n = 3)"),xlab = "xbar")
hist(mean_geo2,main = paste("Hampiran Normal Terhadap Geometrik (n = 6)"),xlab = "xbar")
hist(mean_geo3,main = paste("Hampiran Normal Terhadap Geometrik (n = 12)"),xlab = "xbar")
Melalui histogram tersebut dapat diamati perubahan bentuk distribusi rata-rata sampel ketika ukuran sampel bertambah.
Distribusi eksponensial sering digunakan untuk memodelkan waktu antar kejadian, misalnya waktu tunggu pelanggan atau waktu antar kedatangan suatu peristiwa. Distribusi ini memiliki bentuk yang miring ke kanan. Pada simulasi ini dibentuk populasi yang mengikuti distribusi eksponensial. Kemudian diambil beberapa sampel dengan ukuran yang berbeda dan dihitung nilai rata-ratanya.
par(mfrow=c(3,1))
library(probs)
set.seed(456)
populasi = rexp(25, 0.5)
n1 = 3
contoh_exp1 = urnsamples(populasi, size = 3, replace = F, ordered = F)
mean_exp1 = matrix(apply(contoh_exp1, 1, mean))
n2 = 6
contoh_exp2 = urnsamples(populasi, size = 6, replace = F, ordered = F)
mean_exp2 = matrix(apply(contoh_exp2, 1, mean))
n3 = 12
contoh_exp3 = urnsamples(populasi, size = 12, replace = F, ordered = F)
mean_exp3 = matrix(apply(contoh_exp3, 1, mean))
hist(mean_exp1,main = paste("Hampiran Normal Terhadap Eksponensial (n = 3)"),xlab = "xbar")
hist(mean_exp2,main = paste("Hampiran Normal Terhadap Eksponensial (n = 6)"),xlab = "xbar")
hist(mean_exp3,main = paste("Hampiran Normal Terhadap Eksponensial (n = 12)"),xlab = "xbar")
Histogram dari rata-rata sampel tersebut digunakan untuk melihat apakah distribusi yang dihasilkan mendekati distribusi normal ketika ukuran sampel meningkat.
Distribusi seragam merupakan distribusi yang memiliki peluang yang sama untuk setiap nilai dalam suatu interval tertentu. Berbeda dengan distribusi lain, distribusi ini memiliki bentuk datar. Dalam praktikum ini dibuat populasi yang mengikuti distribusi seragam, kemudian diambil sampel dengan beberapa ukuran berbeda. Rata-rata dari setiap sampel dihitung dan hasilnya ditampilkan dalam bentuk histogram.
par(mfrow=c(3,1))
library(probs)
set.seed(654)
populasi = runif(25, 2, 20)
n1 = 3
sampel_unif1 = urnsamples(populasi, size = 3, replace = F, ordered = F)
mean_unif1 = matrix(apply(sampel_unif1, 1, mean))
n2 = 6
sampel_unif2 = urnsamples(populasi, size = 6, replace = F, ordered = F)
mean_unif2 = matrix(apply(sampel_unif2, 1, mean))
n3 = 12
sampel_unif3 = urnsamples(populasi, size = 12, replace = F, ordered = F)
mean_unif3 = matrix(apply(sampel_unif3, 1, mean))
hist(mean_unif1,main = paste("Hampiran Normal Terhadap Seragam (n = 3)"),xlab = "xbar")
hist(mean_unif2,main = paste("Hampiran Normal Terhadap Seragam (n = 6)"),xlab = "xbar")
hist(mean_unif3,main = paste("Hampiran Normal Terhadap Seragam (n = 12)"),xlab = "xbar")
Melalui simulasi ini dapat diamati bahwa meskipun distribusi populasi awal tidak berbentuk normal, distribusi rata-rata sampel tetap akan mendekati distribusi normal ketika ukuran sampel cukup besar.
#suatu penduga dikatakan tidak bias apabila nilai harapan dari penduga tersebut sama dengan parameter populasi yang ingin diduga.Secara matematis, jika teta topi merupakan penduga dari parameter θ, maka penduga tersebut tidak bias apabila memenuhi
Rata-rata sampel merupakan salah satu penduga yang paling umum digunakan untuk menduga rata-rata populasi. Dalam simulasi ini dibuat suatu populasi dengan distribusi normal. Dari populasi tersebut diambil beberapa sampel, kemudian dihitung nilai rata-rata dari setiap sampel. Selanjutnya dihitung rata-rata dari seluruh rata-rata sampel yang diperoleh.Jika nilai tersebut mendekati rata-rata populasi, maka dapat dikatakan bahwa rata-rata sampel merupakan penduga yang tidak bias terhadap rata-rata populasi.
#1. Sebaran Normal
library(probs)
set.seed(321)
n = 12
populasi1 = rnorm(25)
mean_pop1 = mean(populasi1)
sampel_normal1 = urnsamples(populasi1, size = 12, replace = F, ordered = F)
mean_normal1 = matrix(apply(sampel_normal1, 1, mean))
median_normal1 = matrix(apply(sampel_normal1, 1, median))
harapan_mean_norm1 = mean(mean_normal1)
harapan_median_norm1 = mean(median_normal1)
#2. Sebaran Eksponensial
library(probs)
set.seed(456)
n = 12
populasi2 = rexp(25, 0.7)
mean_pop2 = mean(populasi2)
sampel_exp1 = urnsamples(populasi2, size = 12, replace = F, ordered = F)
mean_exp1 = matrix(apply(sampel_exp1, 1, mean))
median_exp1 = matrix(apply(sampel_exp1, 1, median))
harapan_mean_exp1 = mean(mean_exp1)
harapan_median_exp1 = mean(median_exp1)
#3. Uniform
library(probs)
set.seed(654)
n = 12
populasi3 = runif(25, 2, 15)
mean_pop3 = mean(populasi3)
sampel_unif1 = urnsamples(populasi3, size = 12, replace = F, ordered = F)
mean_unif1 = matrix(apply(sampel_unif1, 1, mean))
median_unif1 = matrix(apply(sampel_unif1, 1, median))
harapan_mean_unif1 = mean(mean_unif1)
harapan_median_unif1 = mean(median_unif1)
hasil = data.frame(
"Hasil"=c("mean_populasi","harapan_mean_contoh","harapan_median_contoh"),
"Sebaran Normal"=c(mean_pop1,harapan_mean_norm1,harapan_median_norm1),
"Sebaran Eksponensial"=c(mean_pop2,harapan_mean_exp1,harapan_median_exp1),
"Sebaran Seragam"=c(mean_pop3,harapan_mean_unif1,harapan_median_unif1)
)
hasil
## Hasil Sebaran.Normal Sebaran.Eksponensial Sebaran.Seragam
## 1 mean_populasi 0.2344406 1.4037700 9.034633
## 2 harapan_mean_contoh 0.2344406 1.4037700 9.034633
## 3 harapan_median_contoh 0.2328596 0.9680062 9.493815
#Selain rata-rata, ragam juga merupakan parameter penting dalam statistika. Ragam sampel digunakan untuk menduga ragam populasi.Dalam perhitungannya digunakan pembagi n−1 agar penduga yang diperoleh bersifat tidak bias. Pada simulasi ini diambil beberapa sampel dari populasi, kemudian dihitung ragam setiap sampel.Rata-rata dari ragam sampel tersebut kemudian dibandingkan dengan ragam populasi untuk melihat apakah penduga tersebut mendekati nilai parameter populasi.
#Sebaran Normal
set.seed(777)
n = 12
populasi = rnorm(25)
sigma2 = var(populasi)*(25-1)/25 #fungsi var pada R adalah varian contoh (penyebut n-1) sehingga perlu dikali (n-1)/n
library(probs)
sampel = urnsamples(populasi, size = 12, replace = F, ordered = F)
## Pembagi (n-1)
s2.n1 = matrix(apply(sampel, 1, var))
E.s2.n1 = mean(s2.n1)
## Pembagi (n)
s2.n = s2.n1*(12-1)/12
E.s2.n = mean(s2.n)
#Sebaran Eksponensial
set.seed(555)
n = 12
populasi2 = rexp(25,0.6)
sigma2.exp = var(populasi2)*(25-1)/25
library(probs)
sampel_exp = urnsamples(populasi2, size = 12, replace = F, ordered = F)
## Pembagi (n-1)
s2.n1.exp = matrix(apply(sampel_exp, 1, var))
E.s2.n1.exp = mean(s2.n1.exp)
## Pembagi (n)
s2.n.exp = s2.n1.exp*(12-1)/12
E.s2.n.exp = mean(s2.n.exp)
hasil = data.frame( "." = c("ragam populasi","nilai harapan ragam contoh (n-1)","nilai harapan ragam contoh (n)"),
"Sebaran Normal" = c(sigma2, E.s2.n1, E.s2.n),
"Sebaran Eksponensial" = c(sigma2.exp, E.s2.n1.exp, E.s2.n.exp))
hasil
## . Sebaran.Normal Sebaran.Eksponensial
## 1 ragam populasi 0.9689042 1.476018
## 2 nilai harapan ragam contoh (n-1) 1.0092752 1.537519
## 3 nilai harapan ragam contoh (n) 0.9251689 1.409392
#Selang kepercayaan merupakan suatu interval yang digunakan untuk memperkirakan nilai parameter populasi berdasarkan data sampel.Pada simulasi ini dilakukan pengambilan sampel dari populasi yang berdistribusi normal. Selanjutnya dihitung batas bawah dan batas atas selang kepercayaan untuk rata-rata populasi.
n1 = 12
k = 120 #ulangan
alpha = 0.05
mu = 55
std = 12
set.seed(321)
sampel.norm1 = matrix(rnorm(n1*k,mu,std),k)
xbar.norm1 = apply(sampel.norm1,1,mean)
s.norm1 = apply(sampel.norm1,1,sd)
SE.norm1 = s.norm1/sqrt(n1)
z.norm1 = qnorm(1-alpha/2)
SK.norm1 = (xbar.norm1-z.norm1*SE.norm1 < mu & mu < xbar.norm1+z.norm1*SE.norm1)
x.norm1 = sum(SK.norm1)/k #proporsi banyaknya SK yang memuat mu
n2 = 35
k = 120 #ulangan
alpha = 0.05
mu = 55
std = 12
set.seed(321)
sampel.norm2 = matrix(rnorm(n2*k,mu,std),k)
xbar.norm2 = apply(sampel.norm2,1,mean)
s.norm2 = apply(sampel.norm2,1,sd)
SE.norm2 = s.norm2/sqrt(n2)
z.norm2 = qnorm(1-alpha/2)
SK.norm2 = (xbar.norm2-z.norm2*SE.norm2 < mu & mu < xbar.norm2+z.norm2*SE.norm2)
x.norm2 = sum(SK.norm2)/k #proporsi banyaknya SK yang memuat mu
n3 = 90
k = 120 #ulangan
alpha = 0.05
mu = 55
std = 12
set.seed(321)
sampel.norm3 = matrix(rnorm(n3*k,mu,std),k)
xbar.norm3 = apply(sampel.norm3,1,mean)
s.norm3 = apply(sampel.norm3,1,sd)
SE.norm3 = s.norm3/sqrt(n3)
z.norm3 = qnorm(1-alpha/2)
SK.norm3 = (xbar.norm3-z.norm3*SE.norm3 < mu & mu < xbar.norm3+z.norm3*SE.norm3)
x.norm3 = sum(SK.norm3)/k #proporsi banyaknya SK yang memuat mu
hasil = data.frame("n" =c(12,35,90),"Ketepatan SK Sebaran Normal"=c(x.norm1, x.norm2, x.norm3))
hasil
## n Ketepatan.SK.Sebaran.Normal
## 1 12 0.9666667
## 2 35 0.9750000
## 3 90 0.9333333
matplot(rbind (xbar.norm2-z.norm2*SE.norm2, xbar.norm2+z.norm2*SE.norm2),
rbind(1:k,1:k),
col=ifelse(SK.norm2,"blue","red"),
type = "l",
lty = 1,
main='Selang Kepercayaan 95% (n=35)',
xlab='SK',
ylab='banyak ulangan')
abline(v=mu)