我有面板数据,某些年份之前的许多变量缺少观测值。这些年份因变量而异。有没有一种有效的方法来推断跨越多个列的缺失数据点?我考虑的是从线性趋势进行外推,但我希望找到一种有效的方法将预测应用于多个列。下面是一个类似于我正在处理的缺失数据的样本数据集。在这个例子中,我希望使用在每列观察到的数据点计算的线性趋势来填充“国家GDP”和“国家预期寿命”变量中的NA值。
###Simulate National GDP values
set.seed(42)
nat_gdp <- c(replicate(20L, {
foo <- rnorm(3, mean = 2000, sd = 300) + c(0,1000,2000)
c(NA,NA,foo)}))
###Simulate national life expectancy values
nat_life <- c(replicate(20L, {
foo <- rnorm(2, mean = 55, sd = 7.8) + c(0,1.5)
c(NA,NA,NA,foo)}))
###Construct the data.table
data.sim <- data.table( GovernorateID = c(rep(seq.int(11L,15L,by=1L), each = 20)),
DistrictID =rep(seq.int(1100,1500,by=100),each=20 ) + rep(seq_len(4), each = 5),
Year = seq.int(1990,1994,by=1L),
National_gdp = nat_gdp ,
National_life_exp = nat_life )
replicate
。我已经编辑以显示更简单和更有效的方法。 - mnelL
。如果有人想知道,我在这个有用的SO讨论中找到了答案:https://dev59.com/5mEh5IYBdhLWcg3wpEtF - Dr. Beeblebrox