以下使我目前用的全部代码
rm(list = ls())
data <-read.csv('cc_close.csv')
library(zoo)
LINK_miss <- na.approx(data$LINK)
source("fineco_fun.R")
data$time <- as.Date(data$time, format="%Y/%m/%d")
BCH <-lr(data$BCH)
BTC <-lr(data$BTC)
BNB <-lr(data$BNB)
ADA <-lr(data$ADA)
LINK<-lr(LINK_miss)
DOGE<-lr(data$DOGE)
ETC <-lr(data$ETC)
ETH <-lr(data$ETH)
LTC <-lr(data$LTC)
XMR <-lr(data$XMR)
XLM <-lr(data$XLM)
USDT<-lr(data$USDT)
TRX <-lr(data$TRX)
XRP <-lr(data$XRP)
data1<- cbind( BCH, BTC, BNB, ADA,
LINK, DOGE,ETC, ETH, LTC,
XMR, XLM, USDT, TRX, XRP)
Rm_all <- rowMeans(data1)
n <- 14
CSAD_all <- (1/n) * (abs(BCH - Rm_all) + abs(BTC - Rm_all) + abs(BNB - Rm_all) +
abs(ADA - Rm_all) + abs(LINK - Rm_all)+ abs(DOGE - Rm_all)+
abs(ETC - Rm_all) + abs(ETH - Rm_all) + abs(LTC - Rm_all)+
abs(XMR - Rm_all) + abs(TRX - Rm_all) + abs(USDT - Rm_all)+
abs(XRP - Rm_all) + abs(XLM - Rm_all)
)
CSAD <- CSAD_all[-(1:5)]
Rm<- Rm_all[-(1:5)]
#MS
install.packages("MSwM")
library(MSwM)
aic_values <- numeric()
bic_values <- numeric()
abs_Rm =abs(Rm)
df <- data.frame(CSAD_df = CSAD, abs_Rm_df = abs_Rm, Rm2_df= Rm2)
for (m in 1:10) {
lm_model <- lm(CSAD_df ~ abs_Rm_df + Rm2_df, data = df)
model1 <- msmFit(lm_model, k = m, p = 0,
sw = c(TRUE,TRUE,TRUE,TRUE),control=list(parallel=FALSE))
aic_values[m] <- AIC(model1)
bic_values[m] <- BIC(model1)
}
# find k
optimal_k_aic <- which.min(aic_values)
optimal_k_bic <- which.min(bic_values)
cat("Optimal k based on AIC:", optimal_k_aic, "\n")
cat("Optimal k based on BIC:", optimal_k_bic, "\n")