[这里是我的数据集(df8)的摘录,其中包含194个国家/地区从2000年到2018年的时间序列。
iso3 year anc4 median
<chr> <dbl> <dbl> <dbl>
1 BIH 2000 NA 0.739
2 BIH 2001 NA 0.746
3 BIH 2002 NA 0.763
4 BIH 2003 NA 0.778
5 BIH 2004 NA 0.842
6 BIH 2005 NA 0.801
7 BIH 2006 NA 0.819
8 BIH 2007 NA 0.841
9 BIH 2008 NA 0.845
10 BIH 2009 NA 0.840
11 BIH 2010 0.842 0.856
12 BIH 2011 NA 0.873
13 BIH 2012 NA 0.867
14 BIH 2013 NA 0.889
15 BIH 2014 NA 0.879
16 BIH 2015 NA 0.883
17 BIH 2016 NA 0.854
18 BIH 2017 NA 0.891
19 BIH 2018 NA 0.920
20 BWA 2000 NA 0.739
21 BWA 2001 NA 0.746
22 BWA 2002 NA 0.763
23 BWA 2003 NA 0.778
24 BWA 2004 NA 0.842
25 BWA 2005 NA 0.801
26 BWA 2006 0.733 0.819
27 BWA 2007 NA 0.841
28 BWA 2008 NA 0.845
29 BWA 2009 NA 0.840
30 BWA 2010 NA 0.856
31 BWA 2011 NA 0.873
32 BWA 2012 NA 0.867
33 BWA 2013 NA 0.889
34 BWA 2014 NA 0.879
35 BWA 2015 NA 0.883
36 BWA 2016 NA 0.854
37 BWA 2017 NA 0.891
38 BWA 2018 NA 0.920
[我想做的是使用基于区域中位数(中位数)的线性回归的斜率来估算变量anc4的缺失数据。我想在国家/地区一级这样做,因为每个国家/地区都不属于同一地区。
这是我尝试过的。。
df_model <- df8 predictions <- vector() for(i in unique(df_model$iso3)) { temp <- df_model[df_model[,2]==i,] predictions <- c(predictions,predict(lm(median~year,temp),df8[is.na(df8$anc4) & df8$iso3==i,])) } df8[is.na(df8$anc4),]$anc4 <- predictions
[我使用我观察到的anc4数据点的线性回归来插补缺失的anc4数据时所使用的代码,并尝试使用中位数来对此进行改编..但效果不佳!
非常感谢!
这里是我的数据集(df8)的摘录,其中包含194个国家/地区从2000年到2018年的时间序列。 iso3年anc4中位数
您的最后一条评论清楚了您的问题:您从中位数的线性回归中获得了斜率,而从唯一的非缺失值中得到了截距。