16年二手交易金额时间序列

本文通过R语言实现从数据库读取房地产交易数据,并进行数据清洗、可视化展示及ARIMA时间序列预测分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

library(RMySQL)
connect <- dbConnect(drv = MySQL(), 
                     host = 'localhost', 
                     user = 'root',
                     password = '123456', 
                     dbname = 'ninashuju')
# 只需给数据库传递一条命令,就可解决乱码。
dbSendQuery(connect, 'SET NAMES GBK')
nian_16 <- dbReadTable(connect, 'nian_16')
dbDisconnect(connect) # 取消连接
library(sqldf)
detach("package:RMySQL", unload=TRUE) #为使sqldf可以正常使用
shijian <- sqldf('select sum(总价),签约日期 from nian_16
                 group by 签约日期')
names(shijian) <- c('money','time_16')
shijian$time_16 <- as.Date(shijian$time_16)
library(ggplot2)
p1 = ggplot(data=shijian,aes(x=time_16,y=money))+ labs(x='date',y='money',title='原始序列')+
  geom_line(size=0.2) + theme_bw() + theme(plot.title = element_text(hjust = 0.5)) #原始序列图
p1
shijian$money <- log(shijian$money)
p2 = ggplot(data=shijian,aes(x=time_16,y=money))+ labs(x='date',y='money',title='原始序列')+
  geom_line(size=0.2) + theme_bw() + theme(plot.title = element_text(hjust = 0.5)) 
p2
ats <- ts(shijian[,2],frequency=7) 
new <- decompose(ats)
plot(new)
newdata = array(ats - new$seasonal) 
diffshijian = diff(newdata)
ggplot(data=NULL,aes(x=c(1:length(diffshijian)),y=diffshijian)) + xlab('Index')+ ylab('diff(money)') + 
  geom_line(size=0.2) + theme_bw()
install.packages('tseries')
library(tseries)
install.packages('forecast')
library(forecast)
adf.test(diffshijian) 
Box.test(diffshijian)
acf(diffshijian)
pacf(diffshijian)
fit = auto.arima(newdata,trace=T)
Box.test(fit$residuals)
residuals <- array(fit$residuals) 
ggplot(data=NULL,aes(x=c(1:length(residuals)),y=residuals)) + 
  xlab('Index')+ ylab('residuals') + geom_line(size=0.2) + theme_bw()
newfit = fitted(fit) + array(new$seasonal)
expfit <- exp(newfit) 
expshijian <- exp(shijian[,1]) 
ggplot(data=NULL,aes(x=shijian$time_16,y=expshijian )) + xlab('Index')+ ylab('money') +
  geom_line(aes(y=expshijian),size=0.5,colour = "black")  +
  geom_line(aes(y=expfit),colour = "blue",alpha=0.5,size=0.5) + theme_bw()
forecast<-forecast(fit,h=31,level=c(95))
head(forecast)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值