[go: up one dir, main page]

0% found this document useful (0 votes)
77 views8 pages

Lampiran 18. Sintak Data

This document defines variables for rainfall, average temperature, and wind speed from collected data. It performs various time series analyses on the data, including Box-Cox transformations, ARIMA modeling, and transfer function modeling to determine the relationships between rainfall and the other variables. Optimal transfer function models are identified relating rainfall to temperature and wind speed. Forecasts are generated from the final transfer function model.

Uploaded by

farah
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
77 views8 pages

Lampiran 18. Sintak Data

This document defines variables for rainfall, average temperature, and wind speed from collected data. It performs various time series analyses on the data, including Box-Cox transformations, ARIMA modeling, and transfer function modeling to determine the relationships between rainfall and the other variables. Optimal transfer function models are identified relating rainfall to temperature and wind speed. Forecasts are generated from the final transfer function model.

Uploaded by

farah
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 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