首页 文章

在R中有很多时间序列对象的问题

提问于
浏览
0

我在处理某些预算数据的任意时间序列对象时非常困难 .

原始数据是~1800份合约的14,460行付款,其中每一行都有DD / MM / YYYY和金额特征 . 从2000年1月1日到2014年12月31日之间有5296天,但实际上只有3133天付款 . 因此,这些日子是不规则的,有些日子会出现多个 Contract 付款,而对其他日子则是零付款 .

我遇到的主要问题是这些时间序列对象在被喂食不定时间间隔的日常数据时表现出的残酷顽固性 . 我甚至将付款合并到一个连续的日期向量,并且仍然有相同的问题,即频率,周期性或order.by .

CTS_date_V <- data.frame(Date = seq(as.Date("2000/07/01"), as.Date("2014/12/31"), "days"))
exp_d <- merge(exp, CTS_date_V, by="Date", all.y = T)
exp_d$Amount[is.na(exp_d$Amount)] <- 0

head(exp_d[,c("Amount","Date")],20)
      Amount       Date
1        0.0 2000-07-01
2        0.0 2000-07-02
3        0.0 2000-07-03
4        0.0 2000-07-04
5   269909.4 2000-07-05
6   130021.9 2000-07-06
7  1454135.3 2000-07-06
8   140065.5 2000-07-07
9        0.0 2000-07-08
10       0.0 2000-07-09
11       0.0 2000-07-10
12  274147.2 2000-07-11
13  106959.2 2000-07-11
14  119208.6 2000-07-12
15       0.0 2000-07-13
16       0.0 2000-07-14
17       0.0 2000-07-15
18  125402.5 2000-07-16
19 1170603.1 2000-07-16
20 1908463.3 2000-07-16

我熟悉的大多数预测包(以及我迄今为止在SO上发现的任何问题),如fpp,预测,timeSeries,tseries,xts等都需要更加有序的日期功能 order.by 或者其他一些这样的担忧 .

我关心的是R包的适当性,而不是统计方法 . 例如,我尝试了几种不同的方法来构建预测包所需的时间序列对象,包括XTS,TS,并且它们都有频率,周期性或要求订单的问题 . .

更新:

我用它构建我的xts对象

exp_xts <- xts(exp_d$Amount, start = min(exp$Date), end = max(exp$Date), order.by=exp_d$Date, colnames = "Amount", frequency = "") 

head(exp_xts,15)
                [,1]
2000-07-01       0.0
2000-07-02       0.0
2000-07-03       0.0
2000-07-04       0.0
2000-07-05  269909.4
2000-07-06  130021.9
2000-07-06 1454135.3
2000-07-07  140065.5
2000-07-08       0.0
2000-07-09       0.0
2000-07-10       0.0
2000-07-11  274147.2
2000-07-11  106959.2
2000-07-12  119208.6
2000-07-13       0.0

没有问题,那个对象可以 plot.xts() 编辑,但是当我尝试

fit_xts <- stl(exp_xts, s.window="periodic",robust = T)

是说

Error in if (frequency > 1 && abs(frequency - round(frequency)) < ts.eps) frequency <- round(frequency) : missing value where TRUE/FALSE needed`

2 回答

  • 1

    我尝试在R中使用时间序列对象kaggle competition . 我发现使用各种时间序列预测方法使用时间序列预测对我来说效果不佳 . 对我有用的是创建一个正常的标准R数据帧,并根据上下文数据创建一个神经网络,如:温度,星期几,一年中的某一天,今天是假日与否,等等 .

    这对您来说意味着什么,因为您没有进行预测,但简单的统计分析是,您可能根本不需要时间序列功能,可以简单地使用标准的“R”数据帧?

    我到底是9th,使用标准数据帧和神经网络,没有时间序列的东西:-)

  • 0

    我认为这可能与我最近遇到的以下问题有关 .

    我试图在时间序列( acf() )上运行自相关函数 . 使用xts / zoo包将数据转换为合适的时间序列格式 . 但是, acf() 是一个函数,它存在于R而不安装任何包,因此它被调整为由更多'traditional'函数转换为时间序列的数据,在本例中为 ts() . 因此,此代码返回与您的情况相同的错误:

    ts<- xts(dane.filtered$CRO, dane.filtered$Date_xts)
    acf(ts, col="red")
    

    解决方案是使用内置于R中的默认时间序列函数创建时间序列(此代码运行完美):

    ts <- ts(dane.filtered$CRO)
    acf(ts, col="red")
    

    希望能帮助到你 .

相关问题