降水量栏的MCAR缺少其值的3.4%。我的目标是在考虑时间相关性(NA在其站点时间序列中的位置)和空间相关性(NA与其他点的地理关系)的情况下,估算缺失值。
我认为基于ARIMA的典型技术(例如在Amelia或ImputeTS中发现的那些技术)不会令人满意,因为它们仅限于单变量数据。
我对使用KFAS软件包感兴趣,因为我相信它将使我可以将这些不同的“站”视为“状态空间”内的“状态”,并使我能够使用卡尔曼平滑法“预测”缺失的值基于时空变量的相关性。
我的麻烦是我很难克服KFAS的学习曲线并实现此模型。 documentation稀疏,几乎没有教程或针对初学者的材料。我感觉我什至不知道如何开始。
可以以这种方式使用KFAS吗?您将如何应对这一挑战? KFAS中的基本步骤是什么样的?
由于我几乎不知道如何提出这个问题,因此我努力制作了可重复的数据。此样本数据涵盖了1个月内的三个“站点”,我认为这足以进行演示。该值是实际的,但不准确。
#defining the precip variable
set.seed(76)
precip <- sample(0:7, 30, replace=TRUE)
#defining the categorical variables
lon1 <- (-123.7500)
lon2 <- (-124.1197)
lon3 <- (-124.0961)
lat1 <- (43.9956)
lat2 <- (44.0069)
lat3 <- (44.0272)
elev1 <- 76.2
elev2 <- 115.8
elev3 <- 3.7
date1 <- seq(as.Date('2011-01-01'), as.Date('2011-01-10'),by=1)
date2 <- seq(as.Date('2011-01-11'), as.Date('2011-01-20'),by=1)
date3 <- seq(as.Date('2011-01-21'), as.Date('2011-01-30'),by=1)
#creating the df
reprex.data <- NULL
reprex.data$precip <- precip
#inserting NA's randomly into the precip vector now to easily avoid doing it to the other variables
reprex.data <- as.data.frame(lapply(reprex.data, function(cc) cc[sample(c(TRUE, NA), prob = c(0.85, 0.15), size = length(cc), replace = TRUE)]))
#creating the rest of the df
reprex.data$lon[1:10] <- lon1
reprex.data$lon[11:20] <- lon2
reprex.data$lon[21:30] <- lon3
reprex.data$lat[1:10] <- lat1
reprex.data$lat[11:20] <- lat2
reprex.data$lat[21:30] <- lat3
reprex.data$elev[1:10] <- elev1
reprex.data$elev[11:20] <- elev2
reprex.data$elev[21:30] <- elev3
reprex.data$date[1:10] <- date1
reprex.data$date[11:20] <- date2
reprex.data$date[21:30] <- date3
#viola
head(reprex.data)