library(readr)
data <- read.csv("C:/Users/LENOVO/OneDrive/Documents/saham_idx.csv")
data
## t Periode Saham
## 1 11/1/2020 1 883.06
## 2 12/1/2020 2 934.89
## 3 1/1/2021 3 911.98
## 4 2/1/2021 4 944.75
## 5 3/1/2021 5 902.79
## 6 4/1/2021 6 893.73
## 7 5/1/2021 7 888.65
## 8 6/1/2021 8 844.85
## 9 7/1/2021 9 823.04
## 10 8/1/2021 10 866.49
## 11 9/1/2021 11 894.68
## 12 10/1/2021 12 952.59
## 13 11/1/2021 13 930.98
## 14 12/1/2021 14 931.41
## 15 1/1/2022 15 939.63
## 16 2/1/2022 16 985.54
## 17 3/1/2022 17 1022.99
## 18 4/1/2022 18 1085.44
## 19 5/1/2022 19 1056.78
## 20 6/1/2022 20 991.94
## 21 7/1/2022 21 978.63
## 22 8/1/2022 22 1022.82
## 23 9/1/2022 23 1011.48
## 24 10/1/2022 24 1014.12
## 25 11/1/2022 25 1008.28
## 26 12/1/2022 26 937.18
## 27 1/1/2023 27 936.49
## 28 2/1/2023 28 942.97
## 29 3/1/2023 29 937.68
## 30 4/1/2023 30 961.75
## 31 5/1/2023 31 949.67
## 32 6/1/2023 32 954.24
x <- data$Periode
y <- data$Saham
model<-lm(y~x)
plot(model$residuals)

plot(model,1)

plot(model,2)

library(wavelets)
wav <- function(wave, nlv){
mra_value <- mra(y, filter = wave, n.levels = nlv)
# MSE
pendekatan <- c(1:(nlv-1))
mse <- NULL
for(i in (nlv-1):1){
m = unlist(mra_value@S[i])
mu = mean((y-m)^2)
mse = c(mse,mu)
}
mse_value = data.frame(pendekatan, mse)
cat('===============',wave,'=============== \n')
print(mse_value)
cat('Untuk wavelet',wave,
'nilai mse terkecilnya =',min(mse_value$mse),
'pada pendekatan ke-',which.min(mse_value$mse),'\n')
# Grafik
plot(x,y,xlab = 'Periode',ylab = 'Saham', main = wave,type = 'o')
lines(x,mra_value@S$S4, col = 'green')
lines(x,mra_value@S$S3, col = 'magenta')
lines(x,mra_value@S$S2, col = 'blue')
lines(x,mra_value@S$S1, col = 'red')
legend('topleft',
legend = c('Pendekatan 1','Pendekatan 2','Pendekatan 3','Pendekatan 4'),
fill = c('green','magenta','blue','red'))
}
nlv = log(length(y),2)
wave<- c("haar", "d4", "c6", "la8", "bl14")
tugas <- function(){
for(i in wave){
wav(i,nlv)
}
}
tugas()
## =============== haar ===============
## pendekatan mse
## 1 1 1812.5989
## 2 2 1180.9821
## 3 3 785.6744
## 4 4 451.1179
## Untuk wavelet haar nilai mse terkecilnya = 451.1179 pada pendekatan ke- 4

## =============== d4 ===============
## pendekatan mse
## 1 1 1242.4494
## 2 2 632.8797
## 3 3 593.6188
## 4 4 301.7571
## Untuk wavelet d4 nilai mse terkecilnya = 301.7571 pada pendekatan ke- 4

## =============== c6 ===============
## pendekatan mse
## 1 1 1734.7933
## 2 2 949.5436
## 3 3 723.3291
## 4 4 269.4271
## Untuk wavelet c6 nilai mse terkecilnya = 269.4271 pada pendekatan ke- 4

## =============== la8 ===============
## pendekatan mse
## 1 1 1300.2082
## 2 2 987.9061
## 3 3 693.2655
## 4 4 238.6151
## Untuk wavelet la8 nilai mse terkecilnya = 238.6151 pada pendekatan ke- 4

## =============== bl14 ===============
## pendekatan mse
## 1 1 1602.0577
## 2 2 1021.6107
## 3 3 644.2742
## 4 4 174.8934
## Untuk wavelet bl14 nilai mse terkecilnya = 174.8934 pada pendekatan ke- 4

H <- 451.1179
D <- 301.7571
C <- 269.4271
LA <- 238.6151
BL <- 174.8934
wavelet <- c('Haar', 'Daubechies', 'Coiflet', 'Least Asymetric', 'Best Localized')
best_mse <- c(H, D, C, LA, BL)
banding <- data.frame(wavelet,best_mse)
print(banding)
## wavelet best_mse
## 1 Haar 451.1179
## 2 Daubechies 301.7571
## 3 Coiflet 269.4271
## 4 Least Asymetric 238.6151
## 5 Best Localized 174.8934
cat('Maka model terbaiknya adalah Wavelet',which.min(banding$best_mse),
'dengan nilai mse sebesar',min(banding$best_mse))
## Maka model terbaiknya adalah Wavelet 5 dengan nilai mse sebesar 174.8934