Lampiran 1. - repository.uksw.edu · Misalkan adalah peubah acak kontinu dengan fungsi distribusi...
Transcript of Lampiran 1. - repository.uksw.edu · Misalkan adalah peubah acak kontinu dengan fungsi distribusi...
36
Lampiran 1. Fungsi Distribusi Univariat dan Fungsi Debye
Pada bagian ini akan diberikan fungsi distribusi univariat yang digunakan
dan dituliskan dalam penelitian ini. Misalkan 𝑋 adalah peubah acak kontinu dengan
fungsi distribusi 𝐹𝑋
1. Lognormal dua parameter, 𝑋~ 𝐿𝑜𝑔𝑛𝑜𝑟𝑚𝑎𝑙 (𝜇, 𝜎).
𝐹𝑋(𝑥) =1
𝜎√2𝜋∫
1
𝑡exp (−
(ln 𝑡 − 𝜇)2
2𝜎2) 𝑑𝑡
𝑥
0
2. Weibull dua parameter, 𝑋~ 𝑊𝑒𝑖𝑏𝑢𝑙𝑙 (𝛼, 𝛽).
𝐹𝑋(𝑥) = 1 − 𝑒𝑥𝑝 (− (𝑥
𝛽)
𝛼
)
3. Gamma dua parameter, 𝑋~ 𝐺𝑎𝑚𝑚𝑎 (𝛼, 𝛽)
𝐹𝑋(𝑥) =𝛽𝛼
Γ(𝛼)∫ 𝑡𝛼−1 exp(−𝛽𝑡) 𝑑𝑡
𝑥
0
4. Eksponensial satu parameter, 𝑋~ 𝐸𝑘𝑠𝑝𝑜𝑛𝑒𝑛𝑠𝑖𝑎𝑙 (𝜆)
𝐹𝑋(𝑥) = 1 − exp(−𝜆𝑥)
Sedangkan fungsi Debye didefinisikan oleh:
𝐷𝑘(𝛽) =𝑘
𝛽𝑘∫
𝑡𝑘
𝑒𝑡 − 1𝑑𝑡
𝛽
0
37
Lampiran 2. Data kegagalan pertama komponen oil filter Mobil
NO Umur
(hari)
Penggunaan
(km)
1 127 6151
2 155 8627
3 190 5734
4 271 6723
5 359 10969
6 122 2944
7 119 4115
8 183 4782
9 240 6417
10 122 11257
11 105 10176
12 81 11084
13 84 11032
14 101 10582
15 109 9752
16 80 10194
17 76 10001
18 86 9922
19 228 10101
20 220 7714
21 181 8731
NO Umur
(hari)
Penggunaan
(km)
22 203 9247
23 178 8267
24 228 8890
25 326 11538
26 301 10935
27 203 7207
28 144 8892
29 164 12592
30 180 10872
31 291 18331
32 188 10964
33 220 9494
34 435 25320
35 131 10375
36 173 10661
37 200 11453
38 170 10152
39 125 9029
40 194 10085
41 384 20864
38
Lampiran 3. Analitik Distribusi Normal
Fungsi densitas dari distribusi normal:
𝑓(𝑥) =1
√2𝜋𝜎2𝑒
−(𝑥−𝜇)2
2𝜎2
Fungsi Likelihood
𝐿 = (1
√2𝜋𝜎2)
𝑛
𝑒−
12𝜎2 ∑ (𝑥𝑖−𝜇)2𝑛
𝑖=1
𝑙𝑛(𝐿) = −𝑛 𝑙𝑛(√2𝜋) − 𝑛 𝑙𝑛 (√𝜎2) −1
2𝜎2∑(𝑥𝑖 − 𝜇)2
𝑛
𝑖=1
• Turunan terhadap 𝜇
𝜕𝑙𝑛(𝐿)
𝜕𝜇=
2
2𝜎2∑(𝑥𝑖 − 𝜇)
𝑛
𝑖=1
0 =𝑛
𝜎2(�̅� − 𝜇)
�̂� = �̅�
• Turunan terhadap 𝜎2
𝜕𝑙𝑛(𝐿)
𝜕𝜎2= −
𝑛
2𝜎2+
1
2𝜎4∑(𝑥𝑖 − 𝜇)2
𝑛
𝑖=1
0 = −𝑛
2𝜎2+
1
2𝜎4∑(𝑥𝑖 − 𝜇)2
𝑛
𝑖=1
𝑛 =1
𝜎2∑(𝑥𝑖 − 𝜇)2
𝑛
𝑖=1
𝜎2 =1
𝑛∑(𝑥𝑖 − 𝜇)2
𝑛
𝑖=1
Sehingga diperoleh estimasi parameter distribusi normal 𝜇 = �̅� dan 𝜎2 =
1
𝑛∑ (𝑥𝑖 − 𝜇)2𝑛
𝑖=1
39
Lampiran 4. Contoh Uji Kecocokan Distribusi
Misal diambil lima sampel acak seperti berikut
-1.8165947 -0.6933798 0.6089710 1.3414471 0.2803393
Diasumsikan data berdistribusi normal, sehingga dapat ditentukan hipotesis:
𝐻0 : data mengikuti distribusi normal
𝐻1 : data tidak mengikuti distribusi normal
• Mencari Parameter Distribusi Marginal
Diketahui parameter untuk distribusi normal adalah 𝜇 dan 𝜎2. Dari data
diperoleh parameter:
𝜇 = �̅�
𝜇 = −0.05584 dan
𝜎2 =1
𝑛∑(𝑥𝑖 − 𝜇)2
𝑛
𝑖=1
𝜎2 = 1.2262 • Uji Kolmogorov-Smirnov
Setelah ditemukan parameternya, selanjutnya dilakukan uji kecocokan
menggunakan metode Kolmogorov-Smirnov. Uji kecocokan dapat dilihat pada
tabel dibawah ini.
𝑖 1 2 3 4 5
𝑥𝑖 -1.8165947 -0.6933798 0.6089710 1.3414471 0.2803393
𝑖
5 0.2 0.4 0.6 0.8 1
𝑖 − 1
5 0 0.2 0.4 0.6 0.8
�̂�(𝑥𝑖) 0.2138635 0.8796348 0.0628187 0.2415645 0.1854257
𝑖
5− �̂�(𝑥𝑖) -0.0138635 -0.4796348 0.5371813 0.5584355 0.8145743
�̂�(𝑥𝑖) −𝑖 − 1
5 0.2138635 0.6796348 -0.3371813 -0.3584355 -0.6145743
𝐷𝑛− = max
𝑖=1,2,…,𝑛[
𝑖
𝑛− �̂�(𝑥𝑖)] = 0.8145743
𝐷𝑛+ = max
𝑖=1,2,…,𝑛[�̂�(𝑥𝑖) −
𝑖 − 1
𝑛] = 0.6796348
40
𝐷𝑛 = 𝑚𝑎𝑥{𝐷𝑛−, 𝐷𝑛
+} = 0.8145743
Diambil nilai signifikansi 10% sehingga nilai dari batas kritis:
𝑑𝛼(𝑛−1 2⁄ + 0.11𝑛−1 2⁄ + 0.12)−1
= 1.224(5−1 2⁄ + 0.11 ∗ 5−1 2⁄ + 0.12)−1
= 1.985701
Diperoleh nilai 𝐷𝑛 kurang dari batas kritis sehingga 𝐻0 diterima atau dengan kata
lain sampel data mengikuti distribusi normal.
41
Lampiran 5. Program
#START############################################################
# Analisis Model Bivariat Weibull Copula Clayton pada Data
(Marginal: Weibull & Lognormal)
library('ADGofTest')
library('copula')
graphics.off()
##################################################################
# Data
X <- read.table('data.txt')[,1]/360
Y <- read.table('data.txt')[,2]/10000
x1 <- X
y1 <- Y
##################################################################
# Distribusi Marginal
a1 = 2.6446 ; b1 = 0.5663
m1 = -0.06361; s1 = 0.37611
ks.test(x1,pweibull,a1,b1)
ad.test(x1,pweibull,a1,b1)
ks.test(y1,plnorm,m1,s1)
ad.test(y1,plnorm,m1,s1)
#Transformasi data marginal melalui fungsi distribusinya
u = pweibull(x1,a1,b1)
v = plnorm(y1,m1,s1)
dev.new()
plot(u,v)
##################################################################
#mencari korelasi Kendall's tau
kor = cor(x1,y1,method="kendall")
kor
#estimasi parameter melalui Kendall's tau
tetha = (2*kor)/(1-kor)
tetha
dataXY = cbind(x1,y1)
dataUV = cbind(u,v)
#(u^(-tetha)+v^(-tetha)-1)^(-1/tetha)
Cc = pCopula(dataUV, claytonCopula(tetha))
#Fungsi Copula atau distribusi bivariat empirik
Bivemp = function(x0,y0,data)
{
k = dim(data)[1];
H_emp = numeric(k)
for (i in 1:k)
{
H_emp[i] <- (sum(data[,1] <= x0[i] & data[,2] <=
y0[i]))/(k+1)
}
return(H_emp)
}
He = Bivemp(dataXY[,1],dataXY[,2],dataXY)#Menghitung He dari
data
He
#Menghitung sn (Statistik Cramer von Misses data)
42
sn = sum((He-Cc)^2)
sn
#Simulasi Sn melalui Parametric Bootstrap
Sn_bootstrap=function(A,data)
{
Sn_sim = numeric(A)
k = dim(data)[1]
for (i in 1:A)
{
UV = rCopula(k, claytonCopula(tetha))
u = UV[,1]; x = qweibull(u,a1,b1)
v = UV[,2]; y = qlnorm(v,m1,s1)
He = Bivemp(x,y,data)
Cc = pCopula(UV, claytonCopula(tetha))
Sn_sim[i] = sum((He-Cc)^2)
}
return(Sn_sim)
}
Sn1000 = Sn_bootstrap(1000,dataXY)
dev.new()
hist(Sn1000)
p.val = sum(Sn1000>sn)/1000
p.val
m = 100
p.value = numeric(m)
kep = p.value
for(j in 1:m)
{
Sn1000 = Sn_bootstrap(1000,dataXY)
p.value[j]= sum(Sn1000>sn)/1000
kep[j] = p.value[j] >= 0.05
}
banyak_H0.ACC = sum(kep)
banyak_H0.ACC
p.val.hat = mean(p.value)
p.val.hat
sd_p.val.hat = sd(p.value)
sd_p.val.hat
#END##############################################################
#START############################################################
dev.new()
scatterhist = function(x, y, xlab="", ylab="")
{
zones=matrix(c(2,0,1,3), ncol=2, byrow=TRUE)
layout(zones, widths=c(4/5,1/5), heights=c(1/5,4/5))
xhist = hist(x, plot=FALSE)
yhist = hist(y, plot=FALSE)
top = max(c(xhist$counts, yhist$counts))
par(mar=c(3,3,1,1))
plot(x,y,col="black")
par(mar=c(0,3,1,1))
barplot(xhist$counts, axes=FALSE, ylim=c(0, top), space=0)
43
par(mar=c(3,0,1,1))
barplot(yhist$counts, axes=FALSE, xlim=c(0, top), space=0,
horiz=TRUE)
par(oma=c(3,3,0,0))
mtext(xlab, side=1, line=2, outer=TRUE, adj=0,
at=.8 * (mean(x) - min(x))/(max(x)-min(x)))
mtext(ylab, side=2, line=2, outer=TRUE, adj=0,
at=(.8 * (mean(y) - min(y))/(max(y) - min(y))))
}
X <- read.table('data.txt')[,1]/360
Y <- read.table('data.txt')[,2]/10000
x <- X
y <- Y
scatterhist(x,y,xlab="x1", ylab="y1")
dev.new()
plot(x,y)
#END##############################################################
#START############################################################
# Data
X <- read.table('data.txt')[,1]/360
Y <- read.table('data.txt')[,2]/10000
x <- X
y <- Y
# Copula dalam (x,y)
# plot Copula
library('rmutil')
library('copula')
x <- seq(0.065, max(x), length = 100)
y <- seq(0.3, max(y), length = 100)
t <- 0.1930301
# estimasi distribusi marginal data menyesuaikan
# Parameter Copula
a1 = 2.6446 ; b1 = 0.5663
m1 = -0.06361; s1 = 0.37611
#Transformasi data marginal melalui fungsi distribusinya
u = pweibull(x,a1,b1)
v = plnorm(y,m1,s1)
#function(u,v) { ((1+(or-1)*(u+v))-
Cuv <- function(u,v)
{ pCopula(cbind(u,v), claytonCopula(t)) }
z <- outer(u,v,Cuv)
dev.new()
persp(x,y,z,theta = 30,phi = 30,expand = 0.5,col = "lightblue",
ltheta = 120,shade = 0.75,ticktype = "detailed",
xlab = "x",ylab = "y",zlab = "C(F(x),G(y))")
dev.new();
image(x, y, z, col = gray((1:10)/10))
contour(x,y,z,col="white",add=TRUE,method="flattest",labcex = 1)
# plot Copula density dalam (x,y)
cuv <- function(u,v)
# { or*(1+(or-1)*(u+v-2*u*v))/((1+(or-1)*(u+v))^2-4*or*(or-
1)*u*v)^1.5 }
{
dweibull(qweibull(u,a1,b1),a1,b1)*dlnorm(qlnorm(v,m1,s1),m1,s1)*dC
opula(cbind(u,v), claytonCopula(t)) }
44
z1 <- outer(u,v,cuv)
dev.new();
persp(x,y,z1,theta = 30,phi = 30,expand = 0.5,col = "lightblue",
ltheta = 120,shade = 0.75,ticktype = "detailed",
xlab = "x",ylab = "y",zlab = "c(F(x),G(y))f(x)g(y)")
dev.new();
image(x, y, z1, col = gray((1:10)/10))
contour(x,y,z1,col="white",add=TRUE,method="flattest",labcex = 1)
#END##############################################################
#START############################################################
# Data
X <- read.table('data.txt')[,1]/360
Y <- read.table('data.txt')[,2]/10000
x <- X
y <- Y
graphics.off()
library('copula')
##################################################################
# Copula
# plot Copula
#Parameter Copula
t <- 0.5
#discretization
u <- seq(0,1,length= 100)
v <- u
#function(u,v) { ((1+(or-1)*(u+v))-
Cuv <- function(u,v)
# (sqrt((1+(or-1)*(u+v))^2-4*or*(or-1)*u*v)))/(2*(or-1)) }
{ pCopula(cbind(u,v), amhCopula(t)) }
z <- outer(u,v,Cuv)
dev.new()
persp(u,v,z,theta = 30,phi = 30,expand = 0.5,col = "lightblue",
ltheta = 120,shade = 0.75,ticktype = "detailed",
xlab = "u",ylab = "v",zlab = "C(u,v)")
dev.new();
image(u, v, z, col = gray((1:10)/10))
contour(u,v,z,col="white",add=TRUE,method="flattest",labcex = 1)
# plot Copula density
cuv <- function(u,v)
# { or*(1+(or-1)*(u+v-2*u*v))/((1+(or-1)*(u+v))^2-4*or*(or-
1)*u*v)^1.5 }
{ dCopula(cbind(u,v), amhCopula(t)) }
z1 <- outer(u,v,cuv)
dev.new();
persp(u,v,z1,theta = 30,phi = 30,expand = 0.5,col = "lightblue",
ltheta = 120,shade = 0.75,ticktype = "detailed",
xlab = "u",ylab = "v",zlab = "c(u,v)")
dev.new();
image(u, v, z1, col = gray((1:10)/20))
contour(u,v,z1,col="white",add=TRUE,method="flattest",labcex = 1)
dev.new()
x=rCopula(1000,amhCopula(t))
plot(x)
#END##############################################################
45
#START############################################################
#Ekspektasi_Weibull_Clayton
# Data
X <- read.table('data.txt')[,1]/360
Y <- read.table('data.txt')[,2]/10000
x1 <- X
y1 <- Y
##################################################################
# Distribusi Marginal
a1 = 2.6446 ; b1 = 0.5663
m1 = -0.06361; s1 = 0.37611
g = 0.1930301
t <- function(x1,y1,pixelx1,pixely1)
{
n<-pixelx1*x1; m<-pixely1*y1; dt<-x1/n; ds<-y1/m;
M <-matrix(0,nrow=n,ncol=m)
H <- function(x1,y1)
{
u <- pweibull(x1,a1,b1); v <- plnorm(y1,m1,s1);
return( ( u^(-g) + v^(-g) - 1 )^(-1/g) )
}
inc <- function(i2,j2,i1,j1)
{ H(i2,j2) - H(i1,j2) - H(i2,j1) + H(i1,j1) }
for(j in 1:m) { M[2,j] <- H(dt,(j-1)*ds) }
for(i in 1:n) { M[i,2] <- H((i-1)*dt,ds) }
Hinc <- function(x1,y1,p,q)
{
Hxpyq <- matrix(0,nrow=p,ncol=q)
for(i in 1:p)
{
for(j in 1:q) { Hxpyq[i,j] <- inc(x1-(i-
1)*dt,y1-(j-1)*ds,x1-i*dt,y1-j*ds) }
}
return(Hxpyq)
}
for(i in 3:n)
{
for(j in 3:m) { M[i,j]<-sum((1 + M[1:(i-1),1:(j-
1)])*Hinc((i-1)*dt,(j-1)*ds,i-1,j-1)) }
}
Mt <- sum((1 + M)*Hinc(x1,y1,n,m));
return(Mt)
}
tab <- matrix(0,nrow=5,ncol=6)
tab[1,1] <- t(0.5,0.5,100,100)
tab[2,1] <- t(1.0,0.5,100,100)
46
tab[3,1] <- t(1.5,0.5,100,100)
tab[4,1] <- t(2.0,0.5,100,100)
tab[5,1] <- t(2.5,0.5,100,100)
tab[1,2] <- t(0.5,1.0,100,100)
tab[2,2] <- t(1.0,1.0,100,100)
tab[3,2] <- t(1.5,1.0,100,100)
tab[4,2] <- t(2.0,1.0,100,100)
tab[5,2] <- t(2.5,1.0,100,100)
tab[1,3] <- t(0.5,1.5,100,100)
tab[2,3] <- t(1.0,1.5,100,100)
tab[3,3] <- t(1.5,1.5,100,100)
tab[4,3] <- t(2.0,1.5,100,100)
tab[5,3] <- t(2.5,1.5,100,100)
tab[1,4] <- t(0.5,2.0,100,100)
tab[2,4] <- t(1.0,2.0,100,100)
tab[3,4] <- t(1.5,2.0,100,100)
tab[4,4] <- t(2.0,2.0,100,100)
tab[5,4] <- t(2.5,2.0,100,100)
tab[1,5] <- t(0.5,2.5,100,100)
tab[2,5] <- t(1.0,2.5,100,100)
tab[3,5] <- t(1.5,2.5,100,100)
tab[4,5] <- t(2.0,2.5,100,100)
tab[5,5] <- t(2.5,2.5,100,100)
tab[1,6] <- t(0.5,3.0,100,100)
tab[2,6] <- t(1.0,3.0,100,100)
tab[3,6] <- t(1.5,3.0,100,100)
tab[4,6] <- t(2.0,3.0,100,100)
tab[5,6] <- t(2.5,3.0,100,100)
#END##############################################################
47
48
49
50
51
52
53
54
`