r - 用 R 中的 mix 包用分类变量进行插补
问题描述
我正在尝试使用 R 中的 mix 包来估算包含分类变量(7 点李克特量表)的数据集中的缺失变量。这就是我正在做的事情:
1.加载数据:
data <- read.csv("test.csv", header=TRUE, row.names="ID")
2. 数据如下所示:
第一列是我的 ID 列,接下来的三列是分类变量(李克特 7 点量表——这些是我对估算缺失值感兴趣的部分)。然后我有三个辅助变量:aux_cat是另一个分类变量(从1到9无序,没有丢失数据),aux_one是一个整数(没有丢失数据),aux_two是数字(包含丢失数据)。
var_one var_two var_three aux_cat aux_one aux_two
1 2 1 2 6 26 0.0
2 3 2 3 7 45 32906.5
3 6 2 3 3 31 1237.5
4 7 NA NA 8 11 277.0
5 4 3 1 5 145 78201.0
6 NA NA NA 6 30 48550.0
7 7 6 3 3 48 11568.0
8 6 6 4 2 15 4482.0
9 7 6 5 5 61 NA
10 5 6 7 3 2 NA
11 5 6 5 3 11 78663.0
12 6 2 2 3 16 1235.0
13 7 2 5 3 13 5781.0
14 6 5 4 6 16 5062.0
15 5 5 3 3 43 400.0
16 7 7 5 2 114 7968.0
17 6 5 4 3 99 247.5
18 7 7 7 6 114 1877.0
19 5 5 4 5 3 5881.5
20 4 4 2 3 65 1786.0
21 4 3 6 5 9 14117.5
22 3 3 2 3 35 2093.0
23 3 4 4 5 62 23071.5
24 5 3 5 3 22 2707.5
25 3 1 2 6 128 942.0
26 5 3 6 4 57 101379.0
27 5 5 4 6 76 1398.0
28 1 3 4 3 17 1024.5
29 4 3 2 1 143 10657.0
30 7 1 4 8 14 167.5
31 7 3 7 3 22 4344.0
32 3 3 3 6 27 1582.0
33 7 1 3 2 29 66.5
34 5 5 4 2 108 513.5
35 7 6 6 7 24 936.5
36 4 5 4 7 40 5950.5
37 NA NA NA 8 15 99.5
38 2 2 2 6 21 123.5
39 6 4 5 2 61 477.5
40 6 5 5 2 16 28921.0
41 6 2 2 2 11 1063.5
42 6 2 5 3 116 97798.5
43 4 4 2 8 11 9159.5
44 6 6 6 6 4 1098.5
45 6 4 5 7 21 236.5
46 4 6 4 5 43 219.5
47 3 2 3 3 28 85.5
48 5 5 5 2 71 13483.5
49 5 5 6 8 98 18400.0
50 5 6 6 3 27 357.0
51 5 7 6 7 14 145.5
52 4 5 5 3 93 427.5
53 3 4 5 2 40 412.0
54 6 6 3 2 8 2418.0
55 5 6 5 5 8 4923.5
56 4 5 2 7 32 4135.0
57 7 7 2 6 83 1408.5
58 7 2 3 2 12 5595.0
59 7 2 1 2 32 2280.5
60 7 4 5 3 11 638.5
61 7 5 3 3 24 225.5
62 4 3 3 9 44 570.0
3. 进行初步操作
我尝试运行prelim.mix(x, p)
其中x是包含缺失值的数据矩阵,p是 x 中分类变量的数量。分类变量必须在 x 的前 p 列中,并且必须使用从 1 开始的连续正整数进行编码。例如,二进制变量必须编码为 1,2 而不是 0,1。
在我的情况下,p 应该是 4,因为我有三个李克特量表变量,我想要估算值和我的辅助变量中的另一个分类变量。
s <- prelim.mix(data,4)
这一步似乎工作正常。
4. 找到最大似然 (ML) 估计:
thetahat <- em.mix(s)
这是我遇到以下错误的地方:
EM 的步骤:1...2...3...em.mix(s) 中的错误:外部函数调用中的 NA/NaN/Inf (arg 6)
我认为这一定与我的辅助变量有关,但我不确定。任何帮助将非常感激。
解决方案
推荐阅读
- python - 在python的列表中查找项目的最快方法是什么?
- github - 从其他人的存储库上的操作下载工件
- javascript - 为什么我的州需要这么长时间才能更新?
- javascript - 不能在同一页面中复制带有自动关闭功能的 HTML5 视频灯箱
- python - Glue Crawler 为每个 csv 文件创建一个单独的表
- javascript - 如何在一个页面上添加多个滑块但保持上一个和下一个按钮适用于每个滑块?
- anylogic - 在 AnyLogic 上模拟模型时增加人工成本?
- python - 在 gitlab CI 中运行 plotly dash selenium 测试
- c# - 在线程内同步运行方法 C# .net core
- html - 使用 class="sponsor_logo" 或 class="sponsor-logo" 不显示 div