Tutorial: Membangkitkan bilangan random berdistribusi Uniform (a,b) dan berdistribusi Weibul dengan pendekatan metode Inverse Transform

oleh

Prof. Dr.rer.nat. Dedi Rosadi, S.Si., M.Sc.

Tim Mahasiswa

Maria Lidya Natalia M.                (19/439213/PA/19036)

Tetuko Titah Gusti                        (19/439218/PA/19041)

Pingky Oktiawati                          (19/439215/PA/19038)

Venessa Yumadila Syahra            (19/445727/PA/19551)

Vincensius Dimas R                     (19/445728/PA/19552)

 

Salah satu teknik untuk pembangkitan bilangan random yang populer adalah pendekatan metode inverse transform. Berikut akan dijelaskan bagaimana melakukan pembangkitan bilangan random berdistribusi uniform(a,b) dan Weibull dengan pendekatan ini, berserta syntax program dengan  R untuk pembangkitan data.

Distribusi Uniform

Distribusi uniform dengan parameter nilai batas bawah (a) dan batas atas (b), intervalnya memiliki fungsi distribusi kumulatif sebagai berikut: F(x)=(x-a)/(b-a)

Misalkan U~unif(0,1), maka X =Finv(u)  dapat ditransformasikan menjadi: X=u(b-a)+a

Dengan menggunakan R, bilangan random uniform(a,b) dapat dibangkitkan dengan cara sebagai berikut

Syntax

bangkit.unif<-function(n,a,b){

#membuat fungsi untuk membangkitkan n bilangan random yang berdistribusi uniform dengan parameter n, a, dan b (batas interval)

    U=runif(n,0,1) #dimisalkan U~unif(0,1)

    x=U*(b-a)+a #menghitung nilai random yang berdistribusi uniform

    return(x) #return nilai x sebagai output fungsi bangkit.unif

}

data1=bangkit.unif(50,3,10) #contoh pemanggilan fungsi bangkit.unif untuk n = 50, a = 3, dan b = 10, lalu disimpan ke variabel data1

data1 #menampilkan hasil pembangkitan distribusi uniform

ks.test(data1,”punif”,3,10) #uji Kolmogorov-smirnov untuk mengecek apakah berdistribusi uniform atau tidak

Output

Dengan hipotesis netral data berdistribusi uniform dengan batas bawah = 3 dan batas atas = 10. Diperoleh p-value = 0.9627 > Alpha (0.05), atau dapat disimpulkan bahwa hipotesis netral tidak ditolak atau dalam kata lain sampel random yang dibangkitkan memang benar berdistribusi uniform dengan batas bawah = 3 dan batas atas = 10.

 

Distribusi Weibull

Diketahui fungsi distribusi kumulatif (CDF) dari distribusi Weibull sebagai berikut

Misalkan ~ Unif(0,1) , maka  dapat ditransformasikan sebagai berikut :

Jadi, hasil transformasi dari distribusi tersebut adalah

Syntax

bangkit.weibull=function(n,alpha,teta){

#membuat fungsi untuk membangkitkan n bilangan random yang berdistribusi uniform dengan parameter n, a, dan b(batas interval)

 U=runif(n,0,1)  #dimisalkan U~unif(0,1)

 x=(teta)*((-log(1-U))^(1/alpha)) #menghitung nilai random yang berdistribusi uniform

  return(x) #return nilai x sebagai output fungsi

}

data = bangkit.weibull(100,5,3)#contoh pemanggilan fungsi bangkit.weibull untuk n = 100, alpha = 5, dan tetha = 3

data

ks.test(data,’pweibull’,5,3)#uji Kolmogorov-smirnov untuk mengecek apakah berdistribusi weibull atau tidak

 

 

Output

Uji Goodness of Fit

  • Hipotesis:

H0= data berdistribusi Weibull dengan parameter alpha=5 dan theta=3

H1= data tidak berdistribusi Weibull dengan parameter alpha=5 dan theta=3

  • Tingkat signifikansi

α =0.05

  • Statistik Uji

P-value=0.3264

  • Daerah kritik

H0 ditolak jika p-value < α =0.05

  • Kesimpulan

H0 tidak ditolak karena p-value > α. Maka dapat disimpulkan bahwa data  yang dibangkitkan berdistribusi Weibull dengan parameter alpha=5 dan theta=3

Leave a Comment

Alamat email Anda tidak akan dipublikasikan.