library(probs)
## Warning: package 'probs' was built under R version 4.4.3
##
## Attaching package: 'probs'
## The following objects are masked from 'package:base':
##
## intersect, setdiff, union
par(mfrow=c(3,1))
set.seed(1)
populasi = rgeom(20, 0.1)
n1 = 2
contoh_geo1 = urnsamples(populasi, size=2, replace=F, ordered=F)
mean_geo1 = matrix(apply(contoh_geo1, 1, mean))
n2 = 5
contoh_geo2 = urnsamples(populasi, size=5, replace=F, ordered=F)
mean_geo2 = matrix(apply(contoh_geo2, 1, mean))
n3 = 10
contoh_geo3 = urnsamples(populasi, size=10, replace=F, ordered=F)
mean_geo3 = matrix(apply(contoh_geo3, 1, mean))
hist(mean_geo1, main = paste("Hampiran Normal terhadap Geometrik (n=2)"), xlab = "xbar")
hist(mean_geo2, main = paste("Hampiran Normal terhadap Geometrik (n=5)"), xlab = "xbar")
hist(mean_geo3, main = paste("Hampiran Normal terhadap Geometrik (n=10)"), xlab = "xbar")
## Hampiran Normal terhadap Eksponensial
par(mfrow=c(3,1))
set.seed(2)
populasi = rexp(20)
n1 = 2
contoh_exp1 = urnsamples(populasi, size=2, replace=F, ordered=F)
mean_exp1 = matrix(apply(contoh_exp1, 1, mean))
n2 = 5
contoh_exp2 = urnsamples(populasi, size=5, replace=F, ordered=F)
mean_exp2 = matrix(apply(contoh_exp2, 1, mean))
n3 = 10
contoh_exp3 = urnsamples(populasi, size=10, replace=F, ordered=F)
mean_exp3 = matrix(apply(contoh_exp3, 1, mean))
hist(mean_exp1, main = paste("Hampiran Normal terhadap Eksponensial (n=2)"), xlab = "xbar")
hist(mean_exp2, main = paste("Hampiran Normal terhadap Eksponensial (n=5)"), xlab = "xbar")
hist(mean_exp3, main = paste("Hampiran Normal terhadap Eksponensial (n=10)"), xlab = "xbar")
## Hampiran Normal terhadap Seragam
par(mfrow=c(3,1))
set.seed(3)
populasi = runif(20)
n1 = 2
contoh_unif1 = urnsamples(populasi, size=2, replace=F, ordered=F)
mean_unif1 = matrix(apply(contoh_unif1, 1, mean))
n2 = 5
contoh_unif2 = urnsamples(populasi, size=5, replace=F, ordered=F)
mean_unif2 = matrix(apply(contoh_unif2, 1, mean))
n3 = 10
contoh_unif3 = urnsamples(populasi, size=10, replace=F, ordered=F)
mean_unif3 = matrix(apply(contoh_unif3, 1, mean))
hist(mean_unif1, main = paste("Hampiran Normal terhadap Seragam (n=2)"), xlab = "xbar")
hist(mean_unif2, main = paste("Hampiran Normal terhadap Seragam (n=5)"), xlab = "xbar")
hist(mean_unif3, main = paste("Hampiran Normal terhadap Seragam (n=10)"), xlab = "xbar")
# Sebaran Percontohan Sebaran Normal
par(mfrow=c(3,1))
set.seed(4)
populasi = rnorm(20, 5, sqrt(12)) #membangkitkan bilangan acak~Normal(miu=5, sigma2=12)
n1 = 3 #tidak ditulis tidak apa-apa
contoh_norm1 = urnsamples(populasi, size=3, replace=F, ordered=F)
mean_norm1 = matrix(apply(contoh_norm1, 1, mean))
mean_xbar1 = mean(mean_norm1)
var_xbar1 = var(mean_norm1)
n2 = 4 #tidak ditulis tidak apa-apa
contoh_norm2 = urnsamples(populasi, size=4, replace=F, ordered=F)
mean_norm2 = matrix(apply(contoh_norm2, 1, mean))
mean_xbar2 = mean(mean_norm2)
var_xbar2 = var(mean_norm2)
n3 = 15 #tidak ditulis tidak apa-apa
contoh_norm3 = urnsamples(populasi, size=15, replace=F, ordered=F)
mean_norm3 = matrix(apply(contoh_norm3, 1, mean))
mean_xbar3 = mean(mean_norm3)
var_xbar3 = var(mean_norm3)
hist(mean_norm1, main = paste("(n=3)"), xlab = "xbar")
hist(mean_norm2, main = paste("(n=4)"), xlab = "xbar")
hist(mean_norm3, main = paste("(n=15)"), xlab = "xbar")
hasil = data.frame("."=c("mean", "varian"), "Populasi"=c(5,12), "n=3"=c(mean_xbar1, var_xbar1), "n=4"=c(mean_xbar2, var_xbar2), "n=15"=c(mean_xbar3, var_xbar3))
hasil
## . Populasi n.3 n.4 n.15
## 1 mean 5 6.303529 6.303529 6.3035285
## 2 varian 12 2.184999 1.541317 0.1284249
# POPULASI TERHINGGA
# 1. Sebaran Normal
set.seed (5)
n = 10
populasi1 = rnorm(20)
mean_pop1 = mean(populasi1)
sampel_normal1 = urnsamples(populasi, size=10, 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
set.seed (5)
n = 10
populasi2 = rexp(20)
mean_pop2 = mean(populasi2)
sampel_exp1 = urnsamples(populasi, size=10, 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
set.seed (5)
n = 10
populasi3 = runif(20)
mean_pop3 = mean(populasi3)
sampel_unif1 = urnsamples(populasi, size=10, 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.2805578 0.9007143 0.5036803
## 2 harapan_mean_contoh 6.3035285 6.3035285 6.3035285
## 3 harapan_median_contoh 5.8282788 5.8282788 5.8282788
# POPULASI TERHINGGA
# 1. Sebaran Normal
set.seed (6)
n = 10
populasi1 = rnorm(20)
sigma2 = var(populasi1)*(20-1)/20 #fungsi var pada R adalah varian contoh (penyebut n-1) sehingga perlu dikali (n-1)/n
sampel = urnsamples(populasi1, size=10, 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*(10-1)/10
E.s2.n = mean(s2.n)
# 2. Sebaran Eksponensial
set.seed (6)
n = 10
populasi2 = rexp(20)
sigma2.exp = var(populasi2)*(20-1)/20
sampel_exp = urnsamples(populasi2, size=10, 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*(10-1)/10
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 1.066171 0.3663883
## 2 nilai harapan ragam contoh (n-1) 1.122286 0.3856719
## 3 nilai harapan ragam contoh (n) 1.010057 0.3471047
n1 = 10
k = 100 #ulangan
alpha = 0.05
mu = 50
std = 10
set.seed(7)
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 = 30
k = 100 #ulangan
alpha = 0.05
mu = 50
std = 10
set.seed(7)
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 = 100
k = 100 #ulangan
alpha = 0.05
mu = 50
std = 10
set.seed(7)
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(10,30,100), "Keputusan SK Sebaran Normal"=c(x.norm1, x.norm2, x.norm3))
hasil
## n Keputusan.SK.Sebaran.Normal
## 1 10 0.90
## 2 30 0.93
## 3 100 0.95
matplot(rbind (xbar.norm2-z.norm2*SE.norm2, xbar.norm2+z.norm2*SE.norm2),
rbind (1:k, 1:k), col=ifelse(SK.norm2, "darkmagenta","green"),
type="l", lty=1, main='Selang Kepercayaan 95% (n=100)', xlab = 'SK', ylab = 'banyak ulangan')
abline(v=mu)
# Interval Kepercayaan
library(car)
## Loading required package: carData
data("Prestige")
# menghitung rata-rata
m <- mean(Prestige$income)
m
## [1] 6797.902
# menghitung standar error
p <- dim(Prestige)[1]
se <- sd(Prestige$income)/sqrt(p)
se
## [1] 420.4089
# mengitung nilai kritis t
tval <- qt(0.975, df=p-1)
# menghitung interval kepercayaan
cat(paste("KI: [", round(m-tval*se, 2), ",", round(m+tval*se, 2), "]"))
## KI: [ 5963.92 , 7631.88 ]