You are on page 1of 8

Lampiran 18.

Sintak data
##Definisi
#ch=Curah Hujan
#rrs=Rata-Rata Suhu
#ka=Kecepatan Angin

data=read.delim("clipboard")
data
attach(data)
summary(data)
ch=data$Curah.Hujan ch
rrs=data$Rata.Rata.Suhu
rrs
ka=data$Kecepatan.Angin
ka
par(mfrow=c(2,1))
plot(rrs, type="l", col="blue", xlab="Observasi", ylab="Rata-Rata Suhu", main="Suhu Udara" )
plot(ka, type="l", col="blue", xlab="Observasi", ylab="Kecepatan Angin" ,main="Kecepatan Angin")
par(mfrow=c(1,1))
plot(ch, type="l", col="brown", lwd=2, xlab="Observasi", ylab="Curah Hujan", main="Curah Hujan")
library(tseries)
par(mfrow=c(2,1))
acf(ch, main="ACF Curah Hujan")
pacf(ch, main="PACF Curah Hujan")
acf(rrs, main="ACF Rata-Rata Suhu")
pacf(rrs, main="PACF Rata-Rata Suhu")
acf(ka, main="ACF Kecepatan Angin")
pacf(ka, main="PACF Kecepatan Angin")

#Uji Stasioner
# a. Terhadap varian
#Estimasi nilai lambda
library(forecast)
lambda1=BoxCox.lambda(rrs,method="loglik")
lambda1
lambda2=BoxCox.lambda(ka,method="loglik")
lambda2
lambda3=BoxCox.lambda(ch,method="loglik")
lambda3

#Transformasi Boc-Cox
bch=BoxCox(rrs, lambda1)
bch
brrs=BoxCox(ka, lambda2)
brrs
bka=BoxCox(ch, lambda3)
bka
lambda11=BoxCox.lambda(brrs,method="loglik")
lambda11
lambda22=BoxCox.lambda(bka,method="loglik")
lambda22
lambda33=BoxCox.lambda(bch,method="loglik")
lambda33
#Transformasi Data
#rrs1=transformasi suhu udara
#ka1=transformasi kecepatan angin
#ch1=transformasi curah hujan
rrs1=rrs^9/100^6.5
rrs1
ka1=ka^-3.55
ka1
ch1=ch^0.26
ch1
lambda111=BoxCox.lambda(rrs1,method="loglik")
lambda111
lambda222=BoxCox.lambda(ka1,method="loglik")
lambda222
lambda333=BoxCox.lambda(ch1,method="loglik")
lambda333
plot(rrs1, type="l", col="brown", lwd=2, xlab="Observasi", ylab="Transformasi Rata-Rata Suhu" )
plot(ka1, type="l", col="blue", lwd=2, xlab="Observasi", ylab="Transformasi Kecepatan Angin" )
plot(ch1, type="l", col="blue", lwd=2, xlab="Observasi", ylab="Transformasi Curah Hujan" )

#b. Terhadap mean


library(tseries)
adf.test(ch1)
adf.test(rrs1)
adf.test(ka1)
par(mfrow=c(1,1))
acf(ch1, main="ACF Curah Hujan")
pacf(ch1, main="PACF Curah Hujan")
acf(rrs1, main="ACF Suhu Udara")
pacf(rrs1, main="PACF Suhu Udara")
acf(ka1, main="ACF Kecepatan Angin")
pacf(ka1, main="PACF Kecepatan Angin")
library("forecast")
library(tseries)

#Menentukan model ARIMA(p,0,q) suhu udara


modelrrs1=arma(rrs1, order=c(0,1))
modelrrs1
modelrrs2=arma(rrs1, order=c(0,2))
modelrrs2
modelrrs3=arma(rrs1, order=c(1,0))
modelrrs3
modelrrs4=arma(rrs1, order=c(2,0))
modelrrs4
modelrrs5=arma(rrs1, order=c(1,2))
modelrrs5
modelrrs6=arma(rrs1, order=c(2,1))
modelrrs6
modelrrs7=arma(rrs1, order=c(1,1))
modelrrs7
modelrrs8=arma(rrs1, order=c(2,2))
modelrrs8
summary(modelrrs1)
summary(modelrrs2)
summary(modelrrs3)
summary(modelrrs4)
summary(modelrrs5)
summary(modelrrs6)
summary(modelrrs7)
summary(modelrrs8)

#Diagnostik model ARIMA(p,0,q) suhu udara


library(fBasics)
r1=modelrrs1$residuals
r2=modelrrs2$residuals
r3=modelrrs3$residuals
r4=modelrrs4$residuals
r5=modelrrs5$residuals
r6=modelrrs6$residuals
r7=modelrrs7$residuals
r8=modelrrs8$residuals
shapiroTest(r1)
shapiroTest(r2)
shapiroTest(r3)
shapiroTest(r4)
shapiroTest(r5)
shapiroTest(r6)
shapiroTest(r7)
shapiroTest(r8)
Box.test(r1, lag=18, type ="Box-Pierce")
Box.test(r2, lag=17, type ="Box-Pierce")
Box.test(r3, lag=18, type ="Box-Pierce")
Box.test(r4, lag=16, type ="Box-Pierce")
Box.test(r5, lag=15, type ="Box-Pierce")
Box.test(r6, lag=15, type ="Box-Pierce")
Box.test(r7, lag=16, type ="Box-Pierce")
Box.test(r8, lag=14, type ="Box-Pierce")

# Menentukan model ARIMA(p,0,q) kecepatan angin


modelka1=arma(ka1, order=c(0,1))
modelka1
modelka2=arma(ka1, order=c(0,2))
modelka2
modelka3=arma(ka1, order=c(1,0))
modelka3
modelka4=arma(ka1, order=c(2,0))
modelka4
modelka5=arma(ka1, order=c(1,1))
modelka5
summary(modelka1)
summary(modelka2)
summary(modelka3)
summary(modelka4)
summary(modelka5)

#Diagnostik model ARMA(p,q) kecepatan angin


k1=modelka1$residuals
k2=modelka2$residuals
k3=modelka3$residuals
k4=modelka4$residuals
k5=modelka5$residuals
Box.test(k1, lag=18, type = "Box-Pierce")
Box.test(k2, lag= 16, type = "Box-Pierce")
Box.test(k3, lag=18, type = "Box-Pierce")
Box.test(k2, lag= 16, type = "Box-Pierce")
Box.test(k5, lag=16 type = "Box-Pierce")
shapiroTest(k1)
shapiroTest(k2)
shapiroTest(k3)
shapiroTest(k4)
shapiroTest(k5)

#Deret Pemutihan
data1=read.delim("clipboard")
data1
betha1=data1$bethach1
betha1
alprrs1=data1$alpharrs1
alprrs1
betha11=data1$bethach11
betha11
alpka1=data1$alphaka1
alpka1
ccf.suhu=Ccf(betha1,alprrs1, type="correlation",xlab="lag", ylab="CCF", main="Korelasi Silang
Curah Hujan dan Suhu Udara")
ccf.suhu
ccf.kec.angin=Ccf(betha11,alpka1,type="correlation",xlab="lag",ylab="CCF",main="Korelasi Silang
Curah Hujan dan Kecepatan Angin")
ccf.kec.angin
#Menentukan noise suhu udara
#nts=noise suhu udara
data2=read.delim("clipboard")
data2
nts=data2$noise.suhu
nts1=arma(nts, order=c(0,1))
nts1
nts2=arma(nts, order=c(0,2))
nts2
nts3=arma(nts, order=c(1,0))
nts3
nts4=arma(nts, order=c(2,0))
nts4
nts5=arma(nts, order=c(1,1))
nts5
nts6=arma(nts, order=c(2,2))
nts6
summary(nts1)
summary(nts2)
summary(nts3)
summary(nts4)
summary(nts5)
summary(nts6)

#Diagnostik model noise suhu udara


rnts1=nts1$residuals
rnts1
rnts2=nts2$residuals
rnts2
rnts3=nts3$residuals
rnts3
rnts4=nts4$residuals
rnts4
rnts5=nts5$residuals
rnts5
rnts6=nts6$residuals
rnts6
Box.test(rnts1, lag=17, type="Box-Pierce")
Box.test(rnts3, lag=17, type="Box-Pierce")
shapiro.test(rnts1)
shapiro.test(rnts3)

#Menentukan noise kecepatan angin


#ntk=noise kecepatan angin
ntk=data2$noise.kec.angin
ntk1=arima(ntk, order=c(0,0,1))
ntk1
ntk2=arima(ntk, order=c(0,0,2))
ntk2
ntk3=arima(ntk, order=c(1,0,0))
ntk3
ntk4=arima(ntk, order=c(2,0,0))
ntk4
ntk5=arima(ntk, order=c(1,0,1))
ntk5
ntk6=arima(ntk, order=c(2,0,2))
ntk6
ntk7=arima(ntk, order=c(3,0,0))
ntk7
ntk8=arima(ntk, order=c(0,0,3))
ntk8
ntk9=arima(ntk, order=c(0,0,3))
ntk9
ntk10=arima(ntk, order=c(3,0,0))
ntk10
library(lmtest)
coeftest(ntk1)
coeftest(ntk2)
coeftest(ntk3)
coeftest(ntk4)
coeftest(ntk5)
coeftest(ntk6)
coeftest(ntk7)
coeftest(ntk8)
coeftest(ntk9)
coeftest(ntk10)

#Diagnostik model noise kecepatan angin


rntk5=ntk1$residuals
rntk5
Box.test(rntk5, lag=16, type="Box-Pierce")
shapiro.test(rntk5)

#Estimasi Fungsi Transfer Input Tunggal


#a.Suhu Udara
library(TSA)
m1=arimax(ch1,order=c(0,0,1),method="ML",xtransf=alprrs1,transfer=list(c(0,0)))
m1 coeftest(m1)
m11=arimax(ch1,order=c(0,0,1),method="ML",xtransf=alprrs1,transfer=list(c(1,0))
) m11
coeftest(m11)
#b. Kecepatan angin
m2=arimax(ch1,order=c(1,0,1),method="ML",xtransf=alpka1,transfer=list(c(0,0))
) m2
coeftest(m2)
m22=arimax(ch1,order=c(1,0,1),method="ML",xtransf=alpka1,transfer=list(c(1,0))
) m22
coeftest(m22)

#Diagnostik model fungsi transfer input tunggal


#a. Suhu udara
rem11=m11$residuals
Box.test(rem11, lag=15, type = "Box-Pierce")
ccfms=ccf(alprrs1, rem11)
ccfm1=ccfms[17:33]
Box.test(ccfm1, lag=15, type=”Box-Pierce”)
#b. Kecepatan angin
rem2=m2$residuals
Box.test(rem2, lag=16, type = "Box-Pierce")
ccfmk=ccf(alpka1, rem2)
ccfm2=ccfmk[17:33]
Box.test(ccfm2, lag=16, type=”Box-Pierce”)

#Menentukan deret noise gabungan


data3=read.delim("clipboard")
data3
ntg=data3$noise.gabungan
ntg

#Menentukan model ARMA(p,q) noise gabungan


ntg1=arima(ntg, order=c(0,0,1))
ntg1
ntg2=arima(ntg, order=c(0,0,2))
ntg2
ntg3=arima(ntg, order=c(1,0,0))
ntg3
ntg4=arima(ntg, order=c(2,0,0))
ntg4
ntg5=arima(ntg, order=c(1,0,1))
ntg5
ntg6=arima(ntg, order=c(2,0,2))
ntg6
ntg7=arima(ntg, order=c(1,0,3))
ntg7
ntg8=arima(ntg, order=c(3,0,1))
ntg8
ntg9=arima(ntg, order=c(2,0,3))
ntg9
ntg10=arima(ntg, order=c(3,0,2))
ntg10
coeftest(ntg1)
coeftest(ntg2)
coeftest(ntg3)
coeftest(ntg4)
coeftest(ntg5)
coeftest(ntg6)
coeftest(ntg7)
coeftest(ntg8)
coeftest(ntg9)
coeftest(ntg10)

#Diagnostik model signifikan noise gabungan


#rng=residual model noise gabungan
rng2=ntg2$residuals
rng2
rng3=ntg3$residuals
rng3
rng5=ntg5$residuals
rng5
rng10=ntg10$residuals
rng10
Box.test(rng2, lag=16, type="Box-Pierce")
Box.test(rng3, lag=17, type="Box-Pierce")
Box.test(rng5, lag=16, type="Box-Pierce")
Box.test(rng10, lag=13, type="Box-Pierce")
shapiro.test(rng2)
shapiro.test(rng3)
shapiro.test(rng5)
shapiro.test(rng10)
AIC(ntg2)
AIC(ntg3)
AIC(ntg5)
AIC(ntg10)

#Estimasi Model Fungsi Transfer Input Ganda


ms1=arimax(ch1,order=c(3,0,2),method="ML",xtransf=cbind(alprrs1,alpka1),transfer=list(c(1,0),c(0
,
0)))
ms1
coeftest(ms1)
#Model akhir fungsi transfer
ma1=arimax(ch1,order=c(3,0,2),method="ML",xtransf=alprrs1,transfer=list(c(1,0))
) ma1
coeftest(ma1)
#Diagnostik model fungsi transfer
#1. autokorelasi residual
ra1=ma1$residuals
Box.test(ra1, type = "Box-Pierce")
#2. korelasi silang residual
ccfma=ccf(alprrs1, ra1)
ccfma1=ccfma[17:33]
Box.test(ccfma1, lag=11, type=”Box-Pierce)

#Melakukan peramalan fungsi transfer


ramalan=predict(ms1, n.ahead=36)
ramalan

#Perbandingan Data Aktual dan Data Ramalan Sebelum Transformasi


data4=read.delim(“clipboard”
data4
aktual=data4$Data.Aktual
testing=data4$Data.Testing
ramal.testing=data4$Data.Ramalan.Testing
ramalan=data4$Data.Hasil.Ramalan
library(plot3D)
ts.plot(aktual, col="red",lwd=2, ylim=c(0,700), xlab="Bulan", ylab="Curah
Hujan", main="Perbandingan Data Aktual dan Data Ramalan")
lines(aktual, col="red", lwd=2)
lines(testing, col="green", lwd=2)
lines(ramal.testing, col="purple", lwd=2)
lines(ramalan, col="blue",lwd=2)
legend(x="topright",legend=c("Data Aktual","Data Testing" ,"Ramalan Testing", "Hasil
Ramalan"),lty=c(1,1), lwd=c(2,2), col=c("red","green","purple","blue"))

#Membandingkan Data Peramalan dan Data Aktual Setelah Transformasi


data5=read.delim(“clipboard”
data5
aktual=data5$Data.Transformasi
testing=data5$Data.Testing
ramal.testing=data5$Data.Ramalan.Testing
ramalan=data5$Data.Hasil.Ramalan
library(plot3D)
ts.plot(aktual, col="red",lwd=2, ylim=c(0,10), xlab="Bulan", ylab="Curah
Hujan", main="Perbandingan Data Aktual dan Data Ramalan")
lines(aktual, col="red", lwd=2)
lines(testing, col="green", lwd=2)
lines(ramal.testing, col="purple", lwd=2)
lines(ramalan, col="blue",lwd=2)
legend(x="topright",legend=c("Data Aktual","Data Testing" ,"Ramalan Testing", "Hasil
Ramalan"),lty=c(1,1), lwd=c(2,2), col=c("red","green","purple","blue"))

You might also like