我知道我的问题对于这个社区来说可能听起来太天真,但我自己无法弄清楚,需要更有经验的人提供一些见解。因此,我试图解决的问题与我应该使用
xgboost
包来插补 data.frame 中缺失值的方式有关。
换句话说,我的任务是以某种方式生成一个脚本,利用 xgboost 库来估算数据集中缺失的(也称为 NA)值。我想我知道如何让 xgboost 使用完整的数据集进行数据预测,但我不太明白设置它来填充 NA 的正确方法。
我将非常感谢有关此事的任何帮助/见解。首先,很高兴知道社区对逻辑/算法的看法,然后我就可以对其进行编码。
下面是我作为 xgboost 输入的 300 行文件的摘录。我的任务是使用其他 4 个变量(年、月、国家/地区、Var_2)的信息来估算
Var_1
变量中的 NA。事实上,Var_1 取决于数据集中的另一个变量。
Year Month Country Var_1 Var_2
<dbl> <dbl> <dbl> <dbl> <dbl>
2021 1 36 599 16022.
2021 1 56 99224 612030.
2021 1 124 1159 33535.
2021 1 156 28 16119.
2021 1 208 215 68027.
2021 1 251 84898 1479103.
2021 1 276 142545 634540.
2021 1 344 14 1397.
2021 1 372 1893654 6993299.
2021 1 380 176 2483.
2021 1 392 58 22968.
2021 1 484 61028 74968.
2021 1 528 7742 125132.
2021 1 616 313 4877.
2021 1 703 55 510.
2021 1 724 364573 2829297.
2021 1 826 NA 1622357.
2021 1 842 575020 3536907.
2021 2 36 45 3604.
2021 2 56 46395 278347.
2021 2 124 11760 90933.
2021 2 208 29768 393233.
2021 2 251 31397 177593.
2021 2 276 4316 23745.
2021 2 320 3926 25794.
2021 2 344 13859 93853.
2021 2 372 1233218 4527629.
2021 2 380 209 5354.
2021 2 392 NA 230771.
2021 2 528 16891 164109.
2021 2 591 2 3443.
2021 2 699 5505 91394.
2021 2 703 144 995.
2021 2 710 6464 5112.
2021 2 724 122337 1037545.
2021 2 752 433 4598.
2021 2 757 23 1672.
2021 2 784 671 21453.
2021 2 826 NA 703348.
2021 2 842 906031. 5314218.
2021 3 56 655375 4037557.
2021 3 124 25789 200786.
2021 3 156 65 60928.
2021 3 170 5 1391.
2021 3 208 21383 489739.
2021 3 251 105713 416264.
2021 3 276 63063 438859.
2021 3 344 9 18422.
2021 3 372 1192275 5794848.
2021 3 376 972 22502.
2021 3 392 11910 327853.
2021 3 528 11472 59048.
2021 3 554 23 1473.
2021 3 702 9058 86097.
2021 3 703 14 309.
2021 3 710 2369 38682.
2021 3 724 67483 534919.
2021 3 752 4222 31359.
2021 3 757 145 13019.
2021 3 764 13133 72650.
2021 3 826 NA 1114520.
2021 3 842 1029945 6163697.
我在谷歌上搜索并阅读了很多论文,声称 xgboost 是一个用于估算缺失值的出色工具,但我无法找到有人用来实际执行估算的任何代码示例。我在 link 阅读了手册,其中没有提到如何使用算法进行估算。最后,我发现了
mixgb
包,它是执行此过程的一个很好的工具。
我在研究中尝试并使用该库以及
mice
、missForest
、Amelia
、tidymodels
和其他一些软件包。
假设您想在列
c_i
上估算值。c_j
用作 j != i
并使用它们。如果
c_i
是离散的,就用分类,如果是连续的就用回归。