簡體   English   中英

使用 R 對不均勻間隔的單變量時間序列進行缺失值插補

[英]missing value imputation for unevenly spaced univariate time series using R

我有以下數據集:

timestamp   value

1           90

3           78

6           87

8           NA

12          98

15          100

18          NA

24          88

27          101

如您所見,連續時間戳之間的間隔不是等距的。 有沒有一種方法可以使用時間戳相關方法來估算值以替換 NA?

我找到的所有包都只適用於等間隔時間序列......謝謝!

動物園R package 可用於處理不規則間隔/不均勻間隔時間序列。

首先,您必須創建一個動物園 ts object。您可以指定索引或使用 POSIXct 時間戳。

之后你可以在這個 object 上使用插補方法。Zoo 的插補方法是有限的,但它們也適用於不規則的特定時間序列。 您可以使用線性插值 (na.approx) 或樣條插值 (na.spline),這也說明了不均勻的時間戳。

# First create a unevenly spaced zoo time series object
# First vector with values, second with your indices
zoo_ts <- zoo(c(90,78,87,NA,98,100,NA,88,101), c(1, 3, 6,8,12,15,18,24,27))

# Perform the imputation
na.approx(zoo_ts)

你的動物園 object 看起來像這樣:

>  1   3   6   8  12  15  18  24  27 
> 90  78  87  NA  98 100  NA  88 101 

之后你的推算系列是這樣的:

> 1         3         6         8        12        15        18        24        27 
> 90.00000  78.00000  87.00000  90.66667  98.00000 100.00000  96.00000  88.00000 101.00000 

當您有時間戳並且每個時間戳的序列僅略微/幾秒時,您還可以嘗試通過將您的值映射到正確的規則間隔來將該序列轉換為常規時間序列。 (只有在差異很小的情況下才合理)。 通過這樣做,您還可以使用其他插補方法,例如imputeTS package(僅適用於常規間隔數據)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM