[英]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.