Pada tugas ini, akan digunakan pengujian ketakbiasan penduga parameter dengan sebaran normal, seragam, dan eksponensial dengan ukuran populasi 20 dan contoh 10 yang diresampling sebanyak 1000 kali.
# Banyak populasi dan sample
n = 10
N = 20
# Ulangan digunakan 1000
k = 1000
# Pembangkitan bilangan acak populasi
populasi = rnorm(N,25,sqrt(5)) # populasi menyebar normal
miu = mean(populasi)
# Resampling dengan n = 10
sampel = matrix(NA,k,n)
for (i in 1:k) sampel[i,] = sample (populasi,n)
# Perhitungan statistik xbar untuk setiap resampling
xbar = apply (sampel,1,mean)
# Perhitungan nilai harapan
E.xbar = mean(xbar)
hasil = data.frame( "Ukuran" = c("Miu","E(xbar)"),
Mean = c(miu, E.xbar))
hasil
## Ukuran Mean
## 1 Miu 26.22034
## 2 E(xbar) 26.22285
# Banyak populasi dan sample
n = 10
N = 20
# Ulangan digunakan 1000
k = 1000
# Pembangkitan bilangan acak populasi
populasi = runif(N,min = 10, max = 20)
miu = mean(populasi)
# Resampling dengan n = 10 dan dihitung nilai xbarnya
sampel = matrix(NA,k,n)
for (i in 1:k) sampel[i,] = sample (populasi,n)
# Perhitungan xbar
xbar = apply (sampel,1,mean)
# Perhitungan nilai harapan xbar
E.xbar = mean(xbar)
hasil2 = data.frame( "Ukuran" = c("Miu","E(xbar)"),
Nilai = c(miu, E.xbar))
hasil2
## Ukuran Nilai
## 1 Miu 14.95974
## 2 E(xbar) 14.99960
# Banyak populasi dan sample
n = 10
N = 20
# Ulangan digunakan 1000
k = 1000
# Pembangkitan bilangan acak populasi exp(1)
populasi = rexp(N,1)
miu = mean(populasi)
# Resampling dengan n = 10 dan dihitung nilai xbarnya
sampel = matrix(NA,k,n)
for (i in 1:k) sampel[i,] = sample (populasi,n)
# Perhitungan xbar
xbar = apply (sampel,1,mean)
# Perhitungan nilai harapan xbar
E.xbar = mean(xbar)
hasil3 = data.frame( "Ukuran" = c("Parameter","E(xbar)"),
Nilai = c(miu, E.xbar))
hasil3
## Ukuran Nilai
## 1 Parameter 0.9307436
## 2 E(xbar) 0.9344699
Berdasarkan simulasi dengan 3 sebaran yang berbeda, didapatkan nilai harapan rataan contoh yang cenderung sama dengan rataan populasi. Oleh karena itu, terbukti bahwa rataan contoh dapat menjadi penduga yang tak bias bagi rataan populasi
set.seed(1)
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.1.3
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.1.3
library(gridExtra)
## Warning: package 'gridExtra' was built under R version 4.1.3
##
## Attaching package: 'gridExtra'
## The following object is masked from 'package:dplyr':
##
## combine
# Banyak populasi dan sample
n = 10
N = 1000
# Ulangan digunakan 100
k = 100
# Pembangkitan bilangan acak populasi
populasi = rnorm(N,25,5)
miu = mean(populasi)
#miu
sigma2 = var(populasi)*(N-1)/N #fungsi var di R adalah varian contoh sehingga perlu disesuaikan
# Ambil rataan n = 10
meanset = data.frame()
for(i in 1:k){
samp = sample(populasi,n)
meanset[i,1] = mean(samp)
}
# Perhitungan Margin error
z = qnorm((1-0.95)/2,0,1,lower.tail = FALSE)
Moe = z*sqrt(sigma2)/sqrt(n)
colnames(meanset) <- c("Mean")
# Perhitungan batas atas dan bawah
meanset10 <-meanset %>% mutate(upper=Mean+Moe) %>% mutate(lower=Mean-Moe)
Ulangan <-seq(1, k, 1)
Ulangan <-as.data.frame(Ulangan)
ci10<-cbind(Ulangan, meanset10)
# Pengecekan nilai statistik terhadap selang kepercayaan
cek <- function(upper,lower,miu){
result <- rep(0, length(upper))
result[upper > miu & lower < miu] <- 1
return(result)
}
ci10 = ci10 %>% mutate(Cek = cek(upper,lower, miu = miu))
ci10$Cek <- factor(ci10$Cek, levels=c(0,1))
# Tampilan grafik SK
# Define color set
colorset <- setNames(c("red", "black"), c("0", "1"))
# Create a function for confidence interval plots
ci_plot <- function(ci, title) {
ci_plot <- ggplot(ci, aes(x = Ulangan, y = Mean)) +
geom_point(aes(color = Cek)) +
geom_errorbar(aes(ymin = lower, ymax = upper, color = Cek)) +
scale_color_manual(values = colorset) +
coord_flip() +
geom_hline(yintercept = miu, linetype = "dashed", color = "blue") +
labs(title = title) +
theme(plot.title = element_text(hjust = 0.5)) #+
#ylim(miu-10, miu+20)
return(ci_plot)
}
# Create confidence interval data frames
# Assuming ci90, ci95, and ci99 are available
# Plot confidence intervals
ci_plotn_10 <- ci_plot(ci10, "95% Confidence Intervals for n = 10")
set.seed(1)
# Banyak sample
n = 30
# Pembangkitan bilangan acak populasi
populasi = rnorm(N,25,5)
miu = mean(populasi)
#miu
sigma2 = var(populasi)*(N-1)/N #fungsi var di R adalah varian contoh sehingga perlu disesuaikan
# Ambil rataan n = 10
meanset = data.frame()
for(i in 1:k){
samp = sample(populasi, n)
meanset[i,1] = mean(samp)
}
# Perhitungan Margin error
z = qnorm((1-0.95)/2,0,1,lower.tail = FALSE)
Moe = z*sqrt(sigma2)/sqrt(n)
colnames(meanset) <- c("Mean")
# Perhitungan batas atas dan bawah
meanset10 <-meanset %>% mutate(upper=Mean+Moe) %>% mutate(lower=Mean-Moe)
Ulangan <-seq(1, k, 1)
Ulangan <-as.data.frame(Ulangan)
ci10<-cbind(Ulangan, meanset10)
# Pengecekan nilai statistik terhadap selang kepercayaan
ci10 = ci10 %>% mutate(Cek = cek(upper,lower, miu = miu))
ci10$Cek <- factor(ci10$Cek, levels=c(0,1))
# Tampilan grafik SK
# Define color set
colorset <- setNames(c("red", "black"), c("0", "1"))
# Plot confidence intervals
ci_plotn_30 <- ci_plot(ci10, "95% Confidence Intervals for n = 30 ")
set.seed(1)
# Banyak sample
n = 100
# Pembangkitan bilangan acak populasi
populasi = rnorm(N,25,5)
miu = mean(populasi)
#miu
sigma2 = var(populasi)*(N-1)/N #fungsi var di R adalah varian contoh sehingga perlu disesuaikan
# Ambil rataan n = 10
meanset = data.frame()
for(i in 1:k){
samp = sample(populasi, n)
meanset[i,1] = mean(samp)
}
# Perhitungan Margin error
z = qnorm((1-0.95)/2,0,1,lower.tail = FALSE)
Moe = z*sqrt(sigma2)/sqrt(n)
colnames(meanset) <- c("Mean")
# Perhitungan batas atas dan bawah
meanset10 <-meanset %>% mutate(upper=Mean+Moe) %>% mutate(lower=Mean-Moe)
Ulangan <-seq(1, k, 1)
Ulangan <-as.data.frame(Ulangan)
ci10<-cbind(Ulangan, meanset10)
# Pengecekan nilai statistik terhadap selang kepercayaan
ci10 = ci10 %>% mutate(Cek = cek(upper,lower, miu = miu))
ci10$Cek <- factor(ci10$Cek, levels=c(0,1))
# Tampilan grafik SK
# Define color set
colorset <- setNames(c("red", "black"), c("0", "1"))
# Plot confidence intervals
ci_plotn_100 <- ci_plot(ci10, "95% Confidence Intervals for n = 100 ")
par(mfrow = c(1,3))
ci_plotn_10
ci_plotn_30
ci_plotn_100
set.seed(1)
# Banyak sample
n = 10
# Pembangkitan bilangan acak populasi
populasi = runif(N,10,20)
miu = mean(populasi)
#miu
sigma2 = var(populasi)*(N-1)/N #fungsi var di R adalah varian contoh sehingga perlu disesuaikan
# Ambil rataan n = 10
meanset = data.frame()
for(i in 1:k){
samp = sample(populasi, n)
meanset[i,1] = mean(samp)
}
# Perhitungan Margin error
z = qnorm((1-0.95)/2,0,1,lower.tail = FALSE)
Moe = z*sqrt(sigma2)/sqrt(n)
colnames(meanset) <- c("Mean")
# Perhitungan batas atas dan bawah
meanset10 <-meanset %>% mutate(upper=Mean+Moe) %>% mutate(lower=Mean-Moe)
Ulangan <-seq(1, k, 1)
Ulangan <-as.data.frame(Ulangan)
ci10<-cbind(Ulangan, meanset10)
# Pengecekan nilai statistik terhadap selang kepercayaan
ci10 = ci10 %>% mutate(Cek = cek(upper,lower, miu = miu))
ci10$Cek <- factor(ci10$Cek, levels=c(0,1))
# Tampilan grafik SK
# Define color set
colorset <- setNames(c("red", "black"), c("0", "1"))
# Plot confidence intervals
ci_plotu_10 <- ci_plot(ci10, "95% Confidence Intervals for U(10,20) with n = 10 ")
set.seed(1)
# Banyak sample
n = 30
# Pembangkitan bilangan acak populasi
populasi = runif(N,10,20)
miu = mean(populasi)
#miu
sigma2 = var(populasi)*(N-1)/N #fungsi var di R adalah varian contoh sehingga perlu disesuaikan
# Ambil rataan n = 10
meanset = data.frame()
for(i in 1:k){
samp = sample(populasi, n)
meanset[i,1] = mean(samp)
}
# Perhitungan Margin error
z = qnorm((1-0.95)/2,0,1,lower.tail = FALSE)
Moe = z*sqrt(sigma2)/sqrt(n)
colnames(meanset) <- c("Mean")
# Perhitungan batas atas dan bawah
meanset10 <-meanset %>% mutate(upper=Mean+Moe) %>% mutate(lower=Mean-Moe)
Ulangan <-seq(1, k, 1)
Ulangan <-as.data.frame(Ulangan)
ci10<-cbind(Ulangan, meanset10)
# Pengecekan nilai statistik terhadap selang kepercayaan
ci10 = ci10 %>% mutate(Cek = cek(upper,lower, miu = miu))
ci10$Cek <- factor(ci10$Cek, levels=c(0,1))
# Tampilan grafik SK
# Define color set
colorset <- setNames(c("red", "black"), c("0", "1"))
# Plot confidence intervals
ci_plotu_30 <- ci_plot(ci10, "95% Confidence Intervals for n = 30 ")
set.seed(1)
# Banyak sample
n = 100
# Pembangkitan bilangan acak populasi
populasi = runif(N,10,20)
miu = mean(populasi)
#miu
sigma2 = var(populasi)*(N-1)/N #fungsi var di R adalah varian contoh sehingga perlu disesuaikan
# Ambil rataan n = 10
meanset = data.frame()
for(i in 1:k){
samp = sample(populasi, n)
meanset[i,1] = mean(samp)
}
# Perhitungan Margin error
z = qnorm((1-0.95)/2,0,1,lower.tail = FALSE)
Moe = z*sqrt(sigma2)/sqrt(n)
colnames(meanset) <- c("Mean")
# Perhitungan batas atas dan bawah
meanset10 <-meanset %>% mutate(upper=Mean+Moe) %>% mutate(lower=Mean-Moe)
Ulangan <-seq(1, k, 1)
Ulangan <-as.data.frame(Ulangan)
ci10<-cbind(Ulangan, meanset10)
# Pengecekan nilai statistik terhadap selang kepercayaan
ci10 = ci10 %>% mutate(Cek = cek(upper,lower, miu = miu))
ci10$Cek <- factor(ci10$Cek, levels=c(0,1))
# Tampilan grafik SK
# Define color set
colorset <- setNames(c("red", "black"), c("0", "1"))
# Plot confidence intervals
ci_plotu_100 <- ci_plot(ci10, "95% Confidence Intervals for n = 100 ")
par(mfrow = c(1,3))
ci_plotu_10
ci_plotu_30
ci_plotu_100
set.seed(1)
# Banyak sample
n = 10
# Pembangkitan bilangan acak populasi
populasi = rexp(N,1)
miu = mean(populasi)
#miu
sigma2 = var(populasi)*(N-1)/N #fungsi var di R adalah varian contoh sehingga perlu disesuaikan
# Ambil rataan n = 10
meanset = data.frame()
for(i in 1:k){
samp = sample(populasi, n)
meanset[i,1] = mean(samp)
}
# Perhitungan Margin error
z = qnorm((1-0.95)/2,0,1,lower.tail = FALSE)
Moe = z*sqrt(sigma2)/sqrt(n)
colnames(meanset) <- c("Mean")
# Perhitungan batas atas dan bawah
meanset10 <-meanset %>% mutate(upper=Mean+Moe) %>% mutate(lower=Mean-Moe)
Ulangan <-seq(1, k, 1)
Ulangan <-as.data.frame(Ulangan)
ci10<-cbind(Ulangan, meanset10)
# Pengecekan nilai statistik terhadap selang kepercayaan
ci10 = ci10 %>% mutate(Cek = cek(upper,lower, miu = miu))
ci10$Cek <- factor(ci10$Cek, levels=c(0,1))
# Tampilan grafik SK
# Define color set
colorset <- setNames(c("red", "black"), c("0", "1"))
# Plot confidence intervals
ci_plote_10 <- ci_plot(ci10, "95% Confidence Intervals for n = 10 ")
set.seed(1)
# Banyak sample
n = 30
# Pembangkitan bilangan acak populasi
populasi = rexp(N,1)
miu = mean(populasi)
#miu
sigma2 = var(populasi)*(N-1)/N #fungsi var di R adalah varian contoh sehingga perlu disesuaikan
# Ambil rataan n = 10
meanset = data.frame()
for(i in 1:k){
samp = sample(populasi, n)
meanset[i,1] = mean(samp)
}
# Perhitungan Margin error
z = qnorm((1-0.95)/2,0,1,lower.tail = FALSE)
Moe = z*sqrt(sigma2)/sqrt(n)
colnames(meanset) <- c("Mean")
# Perhitungan batas atas dan bawah
meanset10 <-meanset %>% mutate(upper=Mean+Moe) %>% mutate(lower=Mean-Moe)
Ulangan <-seq(1, k, 1)
Ulangan <-as.data.frame(Ulangan)
ci10<-cbind(Ulangan, meanset10)
# Pengecekan nilai statistik terhadap selang kepercayaan
ci10 = ci10 %>% mutate(Cek = cek(upper,lower, miu = miu))
ci10$Cek <- factor(ci10$Cek, levels=c(0,1))
# Tampilan grafik SK
# Define color set
colorset <- setNames(c("red", "black"), c("0", "1"))
# Plot confidence intervals
ci_plote_30 <- ci_plot(ci10, "95% Confidence Intervals for n = 30 ")
set.seed(1)
# Banyak sample
n = 100
# Pembangkitan bilangan acak populasi
populasi = rexp(N,1)
miu = mean(populasi)
#miu
sigma2 = var(populasi)*(N-1)/N #fungsi var di R adalah varian contoh sehingga perlu disesuaikan
# Ambil rataan n = 10
meanset = data.frame()
for(i in 1:k){
samp = sample(populasi, n)
meanset[i,1] = mean(samp)
}
# Perhitungan Margin error
z = qnorm((1-0.95)/2,0,1,lower.tail = FALSE)
Moe = z*sqrt(sigma2)/sqrt(n)
colnames(meanset) <- c("Mean")
# Perhitungan batas atas dan bawah
meanset10 <-meanset %>% mutate(upper=Mean+Moe) %>% mutate(lower=Mean-Moe)
Ulangan <-seq(1, k, 1)
Ulangan <-as.data.frame(Ulangan)
ci10<-cbind(Ulangan, meanset10)
# Pengecekan nilai statistik terhadap selang kepercayaan
ci10 = ci10 %>% mutate(Cek = cek(upper,lower, miu = miu))
ci10$Cek <- factor(ci10$Cek, levels=c(0,1))
# Tampilan grafik SK
# Define color set
colorset <- setNames(c("red", "black"), c("0", "1"))
# Plot confidence intervals
ci_plote_100 <- ci_plot(ci10, "95% Confidence Intervals for n = 100")
par(mfrow = c(1,3))
ci_plote_10
ci_plote_30
ci_plote_100
Berdasarkan simulasi selang kepercayaan dari berbagai sebaran, diketahui bahwa sebagian besar selang kepercayaan mencangkup nilai parameter miu-nya. Selain itu, semakin besar ukuran contoh, semakin kecil selang kepercayaan