5
Lampiran 1 : Data kandungan Kapsul Herbal Glucoser
6
Lampiran 1 (Lanjutan)7
Lampiran 1 (Lanjutan)8
Lampiran 1 (Lanjutan)9
Lampiran 2: Program R untuk Uji normalitas dengan menggunakan statistik Jarque-Bera pada data multivariat diperoleh dari data pada Tabel 4.3 (Applied Multivariate Statistical Analysis, Johnson and Wichern, 2002 , contoh 4.13, hal.143)
# Uji normalitas untuk 1 variabel
ubah.matrix <- function(y) #fungsi untuk mengubah data yang berbentuk vektor ke bentuk matriks
{
has <- matrix(0,30,1) p <- dim(has)[2] for (i in 1:p) {
has[1:30,i] <- y[1:30,i] }
return(has) }
x <- read.table('data.txt') #membaca data y <- x[1:30,]
X <- ubah.matrix(y) B <- t(X)
m <- mean(x) #menghitung rata-rata data pada kolom 1 M <- matrix(m,1,30)
A <- (B-M)%*%t(B-M)
sigma <- A/29 #menghitung matriks kovariansi C <- B-M
C[,1] t(C[,1])
t(C[,1])%*%solve(sigma)
t(C[,1])%*%solve(sigma)%*%C[,1]
hitungA <- function(C,sigma) #fungsi untuk menghitung skewness sampel {
has <- matrix(0,30,1) n <- dim(has)[1]
bantu <- bantu + ((t(C[,i])%*%solve(sigma)%*%C[,j])^3)/(n^2) }
}
return(bantu[1,1]) }
bM1 <- hitungA(C,sigma)
====================================== has <- matrix(0,30,1)
n <- dim(has)[1] p <- dim(has)[2] ZM1 <- n*bM1/6
ZM1B <- ZM1*(p+1)*(n+1)*(n+3)/(n*(n+1)*(p+1)-6) #menghitung skewness multivariat
======================================
hitungB <- function(C,sigma) # fungsi untuk menghitung kurtosis sampel {
10
p <- dim(has)[2]n <- dim(has)[1] bantu <- 0 for (i in 1:n) {
bantu <- (((t(C[,i])%*%solve(sigma)%*%C[,i])^2)/n) }
return(bantu[1,1]) }
bM2 <- hitungB(C,sigma)
=============================================================== ===
ZM2 <- (bM2-p*(p+1))*(sqrt(n/(8*p*(p+2)))) L <- sqrt((n+3)*(n+5))
ZM2B <- (L*((n+1)*bM2-p*(p+2)*(n-1)))/(sqrt(8*p*(p+2)*(n-3)*(n-p-1)*(n-p+1))) #menghitung kurtosis
multivariate
ZM1B + ZM2B^2 #menghitung Jarque-Bera multivariate f <- p*(p+1)*(p+2)/6
11
Lampiran 3 : Program R untuk uji normalitas univariat dengan menggunakan statistik Jarque-Bera pada data simulasi untuk 1 variabel dengan ukuran sampel n
= 10
x <- rnorm(10) #untuk membangkitkan data acak dari distribusi normal dengan n = 10
m <- mean(x) n <- length(x) sum((x-m)^3)/n
sum(((x-m)^2)/n)^(3/2)
S <- (sum((x-m)^3)/n)/(sum(((x-m)^2)/n)^(3/2)) p <- 1
sum((x-m)^4)/n sum(((x-m)^2)/n)^2
K <- (sum((x-m)^4)/n)/(sum(((x-m)^2)/n)^2)
hitungJB <- function(x) #fungsi untuk menghitung Jarque-Bera {
n <- length(x) m <- mean(x)
S <- (sum((x-m)^3)/n)/(sum(((x-m)^2)/n)^(3/2)) K <- (sum((x-m)^4)/n)/(sum(((x-m)^2)/n)^2) JB <- ((S^2)+((K-3)^2)/4)*(n/6)
return(JB) }
12
Lampiran 4 : Program R untuk uji normalitas univariat dengan menggunakan statistik Jarque-Bera pada data simulasi untuk 1 variabel dengan ukuran sampel n
= 10
x <- rexp(10) # untuk membangkitkan data acak dari distribusi eksponen dengan n = 10
m <- mean(x)
hitungJB <- function(x) #fungsi untuk menghitung Jarque-Bera {
n <- length(x) m <- mean(x)
S <- (sum((x-m)^3)/n)/(sum(((x-m)^2)/n)^(3/2)) K <- (sum((x-m)^4)/n)/(sum(((x-m)^2)/n)^2) JB <- ((S^2)+((K-3)^2)/4)*(n/6)
return(JB) }
13
Lampiran 5 : Program R untuk uji normalitas multivariat dengan menggunakan statistik Jarque-Bera pada data simulasi untuk 4 variabel dengan ukuran sampel n
= 30
rmvnorm(30,m,sigma)
data <- rmvnorm(30,m,sigma) #untuk membangkitkan data acak multivariat dengan n = 30
X <- data
m <- apply(X,2,mean) M <- t(matrix(m,4,30)) S <- var(X)
S1 <- matrix(S,4,4) C <- (X-M)
hitungA <- function(C,S1) #fungsi untuk menghitung skewness sampel {
bantu <- bantu + ((t(C[,i])%*%solve(S1)%*%C[,j])^3)/(n^2) }
}
return(bantu[1,1]) }
bM11 <- hitungA(t(C),S1)
===================================================== hitung.skewness <- function(X) #fungsi untuk menghitung skewness {
n <- dim(X)[1] p <- dim(X)[2] m <- apply(X,2,mean) M <- t(matrix(m,p,n)) S <- var(X)
S1 <- matrix(S,p,p) C <- (X-M)
bM11 <- hitungA(t(C),S1) ZM1 <- n*bM11/6
ZM11B <- ZM1*(p+1)*(n+1)*(n+3)/(n*(n+1)*(p+1)-6) return(c(bM11,ZM1,ZM11B))
}
hitung.skewness(X)
================================================== #kurtosis
hitungB <- function(C,S1) #fungsi untuk menghitung skewness sampel {
14
}return(bantu[1,1]) }
bM22 <- hitungB(t(C),S1)
============================================== hitung.kurtosis <- function(X) #fungsi untuk menghitung skewness {
X <- data
m <- apply(X,2,mean) M <- t(matrix(m,4,30)) S <- var(X)
S1 <- matrix(S,4,4) C <- (X-M)
bM11 <- hitungA(t(C),S1) bM22 <- hitungB(t(C),S1) n <- dim(X)[1]
ZM1 <- n*bM11/6 p <- dim(X)[2]
ZM22B <-
(L*((n+1)*bM22-p*(p+2)*(n-1)))/(sqrt(8*p*(p+2)*(n-3)*(n-p-1)*(n-p+1)))
return(c(bM22,ZM2,ZM22B)) }
hitung.kurtosis(X)
=================================================== ZM11B + ZM22B^2 #Hitung MJB bintang
15
Lampiran 6 : Program R untuk Uji normalitas multivariat dengan menggunakan statistik Jarque-Bera pada data kandungan Kapsul Herbal Glucoser
#Uji normalitas untuk 1 variabel
ubah.matrix <- function(y) # fungsi untuk mengubah data yang berbentuk vektor ke bentuk matriks
{
has <- matrix(0,288,1) p <- dim(has)[2] for (i in 1:p) {
has[1:288,i] <- y[1:288,i] }
return(has) }
x <- read.table('herbal.txt') #membaca data y <- x[1:288,]
X <- ubah.matrix(y) B <- t(X)
m <- mean(x) #menghitung rata-rata data pada kolom 1 M <- matrix(m,1,288)
A <- (B-M)%*%t(B-M) hitungA <- function(C,sigma) {
has <- matrix(0,288,1) n <- dim(has)[1]
bantu <- bantu + ((t(C[,i])%*%solve(sigma)%*%C[,j])^3)/(n^2) }
}
return(bantu[1,1]) }
bM1 <- hitungA(C,sigma)
hitungA <- function(C,sigma) #fungsi untuk menghitung skewness sampel {
has <- matrix(0,288,1) n <- dim(has)[1]
bantu <- bantu + ((t(C[,i])%*%solve(sigma)%*%C[,j])^3)/(n^2) }
16
return(bantu[1,1])}
bM1 <- hitungA(C,sigma)
====================================== has <- matrix(0,288,1)
n <- dim(has)[1] p <- dim(has)[2] ZM1 <- n*bM1/6
ZM1B <- ZM1*(p+1)*(n+1)*(n+3)/(n*(n+1)*(p+1)-6) #menghitung skewness multivariat
======================================
hitungB <- function(C,sigma) # fungsi untuk menghitung kurtosis sampel {
has <- matrix(0,288,1) p <- dim(has)[2] n <- dim(has)[1] bantu <- 0 for (i in 1:n) {
bantu <- (((t(C[,i])%*%solve(sigma)%*%C[,i])^2)/n) }
return(bantu[1,1]) }
bM2 <- hitungB(C,sigma)
=============================================================== ===
ZM2 <- (bM2-p*(p+1))*(sqrt(n/(8*p*(p+2)))) L <- sqrt((n+3)*(n+5))
ZM2B <- (L*((n+1)*bM2-p*(p+2)*(n-1)))/(sqrt(8*p*(p+2)*(n-3)*(n-p-1)*(n-p+1))) #menghitung kurtosis
multivariate
ZM1B + ZM2B^2 #menghitung Jarque-Bera multivariate f <- p*(p+1)*(p+2)/6
17
Lampiran 7 : Program R untuk Uji normalitas univariat dengan menggunakan statistik Jarque-Bera berdasarkan metode bootstrap pada data kandungan Kapsul Herbal Glucoser
#Uji normalitas untuk variabel ke-1 (tinospora caulis)
ubah.matrix <- function(y) #fungsi untuk mengubah data yang berbentuk vektor ke bentuk matriks
{
has <- matrix(0,288,1) p <- dim(has)[2] for (i in 1:p) {
has[1:288,i] <- y[1:288,i] }
return(has) }
x <- read.table('herball.txt') #membaca data Kapsul Herbal Glucoser pada kolom ke-1 has <- matrix(0,288,1)
n <- dim(x)[1] m <- mean(x)
M <- matrix(m,1,288)
S <- (sum((x-M)^3)/n)/(sum(((x-M)^2)/n)^(3/2)) #menghitung skewness K <- (sum((x-M)^4)/n)/(sum(((x-M)^2)/n)^2) #menghitung kurtosis =================================================== hitungJB <- function(x) #fungsi untuk menghitung Jarque-Bera
{
has <- matrix(0,288,1) n <- dim(x)[1]
M <- matrix(m,1,288)
S <- (sum((x-M)^3)/n)/(sum(((x-M)^2)/n)^(3/2)) K <- (sum((x-M)^4)/n)/(sum(((x-M)^2)/n)^2) JB <- ((S^2)+((K-3)^2)/4)*(n/6)
return(JB)
a <- hitungJB(x) S
K A
================================================== B <- 5000
JB.boot <- function(x,B) #fungsi untuk menghitung Jarque-Bera berdasarkan metode bootstrap
{
hasil <- numeric(B) for (i in 1:B) {
#z <- sample(x,replace=T)
z <- rnorm(length(x),mean(x),sd(x)) hasil[i] <- hitungJB(z)
}
return(hasil) }
U <- JB.boot(x,B) hist(U)
18
nilai.p <- sum(U>a)/B19
Lampiran 8 : Program R untuk Uji normalitas univariat dengan menggunakan statistik Jarque-Bera berdasarkan metode bootstrap pada pada data simulasi untuk 1 variabel dengan ukuran sampel n = 10, pengulangan B = 5000 kali
x <- rnorm(10) #untuk membangkitkan data acak dari distribusi normal dengan n = 10
B <- 5000
hitungJB <- function(x) #fungsi untuk menghitung Jarque-Bera {
length(x) m <- mean(x)
S <- (sum((x-m)^3)/n)/(sum(((x-m)^2)/n)^(3/2)) K <- (sum((x-m)^4)/n)/(sum(((x-m)^2)/n)^2) JB <- ((S^2)+((K-3)^2)/4)*(n/6)
return(JB) }
a <- hitungJB(x)
JB.boot <- function(x,B) #fungsi untuk menghitung Jarque-Bera berdasarkan metode bootstrap
{
hasil <- numeric(B) for (i in 1:B) {
#z <- sample(x,replace=T)
z <- rnorm(length(x),mean(x),sd(x)) hasil[i] <- hitungJB(z)
}
return(hasil) }
U <- JB.boot(x,B) hist(U)
a <- hitungJB(x) nilai.p <- sum(U>a)/B nilai.p
m <- mean(x) m
20
Lampiran 9 : Program R untuk Uji normalitas univariat dengan menggunakan statistik Jarque-Bera berdasarkan metode bootstrap pada pada data simulasi untuk 1 variabel dengan ukuran sampel n = 10, pengulangan B = 5000 kali
x <- rexp(10) #untuk membangkitkan data acak dari distribusi eksponen dengan n = 10
B <- 5000
hitungJB <- function(x) #fungsi untuk menghitung Jarque-Bera {
n <- length(x) m <- mean(x)
S <- (sum((x-m)^3)/n)/(sum(((x-m)^2)/n)^(3/2)) K <- (sum((x-m)^4)/n)/(sum(((x-m)^2)/n)^2) JB <- ((S^2)+((K-3)^2)/4)*(n/6)
return(JB) }
a <- hitungJB(x)
B <- 5000
JB.boot <- function(x,B) #fungsi untuk menghitung Jarque-Bera berdasarkan metode bootstrap
{
hasil <- numeric(B) for (i in 1:B) {
#z <- sample(x,replace=T)
z <- rnorm(length(x),mean(x),sd(x)) hasil[i] <- hitungJB(z)
}
return(hasil) }
U <- JB.boot(x,B) hist(U)
a <- hitungJB(x) nilai.p <- sum(U>a)/B nilai.p
m <- mean(x) m
21
Lampiran 10 : Program R untuk Uji normalitas multivariat dengan menggunakan statistik Jarque-Bera berdasarkan metode bootstrap pada pada data simulasi untuk 1 variabel dengan ukuran sampel n = 10, pengulangan B = 500 kali
x <- read.table('herbal.txt') #membaca data Kapsul Herbal Glucoser m<-apply(x,2,mean)
sigma <- var(x)
X <- rmvnorm(10,m,sigma) #untuk membangkitkan data acak dari distribusi multivariat dengan n = 10
n <- dim(X)[1] p <- dim(X)[2] m <- apply(X,2,mean) M <- t(matrix(m,p,n)) S <- var(X)
S1 <- matrix(S,p,p) C <- (X-M)
hitungA <- function(C,S1) #fungsi untuk menghitung skewness sampel {
bantu <- bantu + ((t(C[,i])%*%solve(S1)%*%C[,j])^3)/(n^2) }
}
return(bantu[1,1]) }
bM1 <- hitungA(t(C),S1)
hitung.skewness <- function(X) #fungsi untuk menghitung skewness {
n <- dim(X)[1] p <- dim(X)[2] m <- apply(X,2,mean) M <- t(matrix(m,p,n)) S <- var(X)
S1 <- matrix(S,p,p) C <- (X-M)
bM1 <- hitungA(t(C),S1) ZM1 <- n*bM1/6
ZM1B <- ZM1*(p+1)*(n+1)*(n+3)/(n*(n+1)*(p+1)-6) return(c(bM1,ZM1,ZM1B))
}
hitung.skewness(X)
============================================================= ======
hitungB <- function(C,S1) #fungsi untuk menghitung kurtosis sampel {
22
for (i in 1:n){
for (j in 1:n) {
bantu <- bantu <- (((t(C[,i])%*%solve(sigma)%*%C[,i])^2)/n) }
}
return(bantu[1,1]) }
bM2 <- hitungB(t(C),S1)
hitung.kurtosis <- function(X) #fungsi untuk menghitung kurtosis {
n <- dim(X)[1] p <- dim(X)[2] m <- apply(X,2,mean) M <- t(matrix(m,p,n)) S <- var(X)
S1 <- matrix(S,p,p) C <- (X-M)
bM2 <- hitungA(t(C),S1)
ZM2 <- (bM2-p*(p+1))*(sqrt(n/(8*p*(p+2)))) L <- sqrt((n+3)*(n+5))
ZM2B <- (L*((n+1)*bM2-p*(p+2)*(n-1)))/(sqrt(8*p*(p+2)*(n-3)*(n-p-1)*(n-p+1))) return(c(bM2,ZM2,ZM2B))
}
hitung.kurtosis(X)
============================================================= ==
hitungJBM <- function(X) #fungsi untuk menghitung Jarque-Bera {
n <- dim(X)[1] p <- dim(X)[2] m <- apply(X,2,mean) M <- t(matrix(m,p,n)) S <- var(X)
S1 <- matrix(S,p,p) C <- (X-M)
bM1 <- hitungA(t(C),S1) ZM1 <- n*bM1/6
ZM1B <- ZM1*(p+1)*(n+1)*(n+3)/(n*(n+1)*(p+1)-6) bM2 <- hitungB(t(C),S1)
ZM2 <- (bM2-p*(p+1))*(sqrt(n/(8*p*(p+2)))) L <- sqrt((n+3)*(n+5))
ZM2B <- (L*((n+1)*bM2-p*(p+2)*(n-1)))/(sqrt(8*p*(p+2)*(n-3)*(n-p-1)*(n-p+1))) JBM <- ZM1B + ZM2B^2
return(JBM) }
hitungJBM(X) B <-500
JBM.boot <- function(X,B) #fungsi untuk menghitung Jarque-Bera berdasarkan bootstrap
23
hasil <- numeric(B)for (i in 1:B) {
#z <- sample(X,replace=T)
z <- rmvnorm(dim(X)[1],apply(X,2,mean),cov(X)) hasil[i] <- hitungJBM(z)
}
return(hasil) }
U <- JBM.boot(X,B) hist(U)
a <- hitungJBM(X)