资金流入流出预测——时间序列模型

该博客介绍了如何利用时间序列模型ARIMA预测资金流入流出。首先,进行了数据预处理,剔除周期项得到残差序列。接着,对残差序列进行ADF和Box.test检验,确保其平稳性和纯随机性。然后,通过ACF和PACF图确定最佳模型为ARIMA(1,0,0),并对比了其他可能的模型。最后,选择了ARIMA(0,1,2)作为带有漂移的最优模型。" 117604720,10217883,深入理解Kafka:核心概念与特性解析,"['消息队列', 'Kafka', '分布式流处理', '数据处理', '容错机制']
摘要由CSDN通过智能技术生成

导入工具包

library(plyr)
library(dplyr)
library(forecast)
library(data.table)
library(tseries)
options(warn=-1)

读取数据文件

user_balance=read.csv("user_balance_table.csv")
user_balance$report_date=as.Date(as.character(user_balance$report_date),format="%Y%m%d")

temp=order(user_balance$report_date)
user_balance=user_balance[temp,]

data=ddply(user_balance,.(report_date),function(D){
    colwise(sum)(D[,c(-1,-2)])})

train_data = data[274:396,]
test_data = data[397:427,]
get_score<- function(purchase_pred,redeem_pred,purchase_true,redeem_true,h=0.3){
   
  out = data.frame(purchase_pred ,redeem_pred,purchase_true,redeem_true )
  
  out$purchase_mape = abs(out$purchase_pred-out$purchase_true)/
    out$purchase_true
  out$redeem_mape = abs(out$redeem_pred-out$redeem_true)/
    out$redeem_true
  
  score = sum(exp(-out$purchase_mape/h)*10)* 0.45 + 
    sum(exp(-out$redeem_mape/h)*10)* 0.55 
  return(score)
}
#####purchase
purchase_ts=ts(train_data$total_purchase_amt,
               frequency=7,start=c(1,1))##生成时间序列
purchase_stl_res = stl(purchase_ts,s.window="periodic",robust=TRUE)##stl分解
purchase_pred_test = forecast(purchase_stl_res,h = 31)$mean##得到测试集预测结果



#####redeem
redeem_ts = ts(train_data$total_redeem_amt,
               frequency=7,start=c(1,1))
redeem_stl_res = stl(redeem_ts,s.window="periodic",robust=TRUE)
redeem_pred_test = forecast(
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值