Professional Documents
Culture Documents
Teknik Simulasi Distribusi Kontinu
Teknik Simulasi Distribusi Kontinu
NIM : 24010213120031
Kelas : A
Penyelesaian :
1.a. Pembangkitan data berdistribusi Normal ( miu, sigma ) dengan metode Box Muller
Algoritma :
1. Bangkitkan U1 dan U2 dari distribusi Uniform (0,1)
2. Tentukan
Z1 2 ln U1 cos 2 U 2
Z2 2 ln U1 sin 2 U 2
3. Hitung transformasi variabel
X Z
Sintaks :
normal=function(n,mu,sigma)
{
u1=runif(n,0,1)
u2=runif(n,0,1)
z1=sqrt(-2*log(u1))*cos(2*pi*u2)
z2=sqrt(-2*log(u1))*sin(2*pi*u2)
z=c(z1,z2)
x=mu+(sigma*z)
cat('========================================================\n')
Nama : Haniatur Rosyidah
NIM : 24010213120031
Kelas : A
Untuk uji validasi, hipotesis yang digunakan adalah H0 : data berdistribusi normal , H1 :
data tidak berdistribusi normal.
Pada taraf signifikansi = 5% , H0 diterima karena nilai p-value = 0.3042 > = 0.05 .
sehingga data yang dibangkitkan berdistribusi normal.
1.b. Pembangkitan data berdistribusi Chi Kuadrat ( db = r ) dengan metode Box Muller
Algoritma :
1. Bangkitkan U1 dan U2 dari distribusi Uniform (0,1)
2. Tentukan
= 2log(1) cos(22)
3. Hitung transformasi variabel
y = z2
4. Hitung = =1
Sintaks :
rchikuadrat=function(n,r)
{
x=rep(0,n)
for(i in 1:n){
u1=runif(n,0,1)
u2=runif(n,0,1)
z=sqrt(-2*log(u1))*cos(2*pi*u2)
d=z^2
x[i]=sum(d)
}
cat('=====================================\n')
cat('Data Simulasi Chikuadrat dengan df=',r,'\n')
cat('=====================================\n')
print(x)
## Permeriksaan Distribusi Data Hasil Simulasi
cat("================================================\n")
cat(" Uji kecocokan Distribusi Chikuadrat\n")
cat("================================================\n")
ks.test(x,"pchisq",df=r) ## uji kolmogorov
}
Untuk uji validasi, hipotesis yang digunakan adalah H0 : data berdistribusi Chisquare , H1 :
data tidak berdistribusi Chisquare.
Pada taraf signifikansi = 5% , H0 diterima karena nilai p-value = 0.7407 > = 0.05 .
sehingga data yang dibangkitkan berdistribusi Chisquare.
Algoritma :
1. Bangkitkan Z dari distribusi normal baku
2. Bangkitkan X dari distribusi ChiKuadrat derajat bebas v seperti pada
program di poin b.
3. Lakukan transformasi variabel
=
/
Nama : Haniatur Rosyidah
NIM : 24010213120031
Kelas : A
Sintaks :
random_t=function(n,v)
{
##Pembangkitan Data Normal Baku
u1=runif(n,0,1)
u2=runif(n,0,1)
z1=sqrt(-2*log(u1))*cos(2*pi*u2)
z2=sqrt(-2*log(u1))*sin(2*pi*u2)
z=c(z1,z2)
##Pembangkitan Data Chikuadrat df=v
x=rep(0,n)
for(i in 1:n){
u1=runif(v,0,1)
u2=runif(v,0,1)
z1=sqrt(-2*log(u1))*cos(2*pi*u2)
z2=sqrt(-2*log(u1))*sin(2*pi*u2)
d=c(z1,z2)
d=d^2
x[i]=sum(d)
}
##Transformasi variabel
t=z/sqrt(x/v)
cat('=====================================\n')
cat('Data Simulasi Distribusi t dengan df=',v,'\n')
cat('=====================================\n')
print(t)
## Pemeriksaan Distribusi Data Hasil Simulasi
cat("======================================================
=\n")
cat(" Uji kecocokan Distribusi t\n")
cat("======================================================
=\n")
ks.test(t,"pt",df=v) ## uji kolmogorov
}
Nama : Haniatur Rosyidah
NIM : 24010213120031
Kelas : A
Untuk uji validasi, hipotesis yang digunakan adalah H0 : data berdistribusi t , H1 : data tidak
berdistribusi t.
Pada taraf signifikansi = 5% , H0 diterima karena nilai p-value = 0.3256 > = 0.05 .
sehingga data yang dibangkitkan berdistribusi t.
Nama : Haniatur Rosyidah
NIM : 24010213120031
Kelas : A
1.d. Pembangkitan data berdistribusi F ( db1, db2 ) dengan metode Box Muller
Algoritma :
1. Bangkitkan x1 yaitu data berdistribusi chi-kuadrat derajat bebas v1
2. Bangkitkan x2 yaitu data berdistribusi chi-kuadrat derajat bebas v2
3. Lakukan transformasi variabel yaitu
1/1
= 2/2
Sintaks :
random_F=function(n,v1,v2)
{
##Pembangkitan Data Chikuadrat df=v1
x1=rep(0,n)
for(i in 1:n){
u1=runif(v1,0,1)
u2=runif(v1,0,1)
z=sqrt(-2*log(u1))*cos(2*pi*u2)
d=z^2
x1[i]=sum(d)
}
##Pembangkitan Data Chikuadrat df=v2
x2=rep(0,n)
for(i in 1:n){
u1=runif(v2,0,1)
u2=runif(v2,0,1)
z=sqrt(-2*log(u1))*cos(2*pi*u2)
d=z^2
x2[i]=sum(d)
}
##Transformasi variabel
f=(x1/v1)/(x2/v2)
cat('=====================================\n')
cat('Data Simulasi Distribusi F dengan df1=',v1,'dan
df2=',v2,'\n')
cat('=====================================\n')
print(f)
cat("====================================================\n")
cat(" Uji kecocokan Distribusi F\n")
cat("====================================================\n")
ks.test(f,"pf",df1=v1,df2=v2) ## uji kolmogorov
}
random_F(100,4,3)
Nama : Haniatur Rosyidah
NIM : 24010213120031
Kelas : A
Untuk uji validasi, hipotesis yang digunakan adalah H0 : data berdistribusi F , H1 : data tidak
berdistribusi F.
Pada taraf signifikansi = 5% , H0 diterima karena nilai p-value = 0.9102 > = 0.05 .
sehingga data yang dibangkitkan berdistribusi F.
Nama : Haniatur Rosyidah
NIM : 24010213120031
Kelas : A
Algoritma
1. Bangkitkan X dari Uniform (a,b)
2. Tentukan fungsi densitas distrribusi normal
3. Hitung y, yaitu rata-rata dari fungsi densitas
4. Hitung int = (b-a)*y
Sintaks Program
pnorm_MC = function(n,a,b,mu,sigma)
{
x=runif(n,a,b)
fx=(1/sigma*sqrt(2*pi))*exp(-((x-mu)^2)/2*(sigma^2))
y=mean(fx)
int=(b-a)*y
return(int)
}
Simulasi
pnorm_MC(100,0,4,2,5)
Validasi
pnorm(4,2,5)-pnorm(0,2,5)
Nilai dari pnorm(4,2,5) - pnorm(0,2,5) = 0.3108435 , nilai ini hampir sama dengan nilai
pnorm_MC(100,0,4,2,5) = 0.3152061 sehingga bisa disimpulkan bahwa hasil yang
diperoleh dari pendekatan monte carlo valid.
Nama : Haniatur Rosyidah
NIM : 24010213120031
Kelas : A
Algoritma
1. Bangkitkan X dari Uniform (a,b)
2. Tentukan fungsi densitas distrribusi Chi Kuadrat
3. Hitung y, yaitu rata-rata dari fungsi densitas
4. Hitung int = (b-a)*y
Sintaks Program
pchisq_MC = function(n,a,b,v)
{
x=runif(n,a,b)
fx=(1/(2^(v/2)*gamma(v/2)))*x^(v/2-1)*exp(-x/2)
y=mean(fx)
int=(b-a)*y
return(int)
}
Simulasi
pchisq_MC(100,0,4,2)
Validasi
pchisq(4,2)-pchisq(0,2)
Nilai dari pchisq(4,2) - pchisq(0,2) = 0.8646647 , nilai ini hampir sama dengan nilai
pchisq_MC(100,0,4,2) = 0.8662956 sehingga bisa disimpulkan bahwa hasil yang
diperoleh dari pendekatan monte carlo valid.