Imputation with categorical variables with mix package in R

Viewed 210

I'm trying to impute missing variables in a data set that contains categorical variables (7-point Likert scales) using the mix package in R. Here is what I'm doing:

1. Loading the data:

data <- read.csv("test.csv", header=TRUE, row.names="ID")

2. Here's what the data looks like:

The first column is my ID column, the next three columns are categorical variables (7-point Likert scales - these are the ones where I am interested in imputing the missing values). Then I have three auxiliary variables: aux_cat is another categorical variable (unordered ranging from 1 to 9, no missing data), aux_one is an integer (no missing data), aux_two is numerical (contains missing data).

   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. Performing preliminary manipulations

I try to run prelim.mix(x, p) where x is the data matrix containing missing values and p is the number of categorical variables in x. The categorical variables must be in the first p columns of x, and they must be coded with consecutive positive integers starting with 1. For example, a binary variable must be coded as 1,2 rather than 0,1.

In my case p should be 4 since I have three Likert-scale variables where I want imputed values and one other categorical variable among my auxiliary variables.

s <- prelim.mix(data,4)

This step seems to work fine.

4. Finding the maximum likelihood (ML) estimate:

thetahat <- em.mix(s)

This is where I encounter the following error:

Steps of EM: 1...2...3...Error in em.mix(s) : NA/NaN/Inf in foreign function call (arg 6)

I think this must have something to do with my auxiliary variables, but I'm not sure. Any help would be much appreciated.

0 Answers
Related