R 中的 mice 包/函数抛出一个我不明白的 lm.fit 错误

问题描述 投票:0回答:0

我正在尝试使用 mice 包来估算大型数据集。有 14 个变量缺少值,我需要 mice() 函数来估算,但是当我尝试使用该函数时,它不断抛出相同的错误:

Error in lm.fit(x = x, y = y) : 'x' must be a matrix

我数据中的每个值都是数字,并且函数本身没有错误告诉我输入错误。我不知道是什么导致了这个错误。我假设我误解了 predictorMatrix 或块。

下面是函数调用以及块和预测矩阵的构造:

b <- make.blocks(c("CountHU","HH","D1A","D1C8_OFF","D4A","D4C","D4D","D4E","D5BR","D5BE","D5DR","D5DRI","D5DE","D5DEI"))
pm <- matrix(0, nrow = length(b), ncol = ncol(df))
pm[1,c(24,28)] <- 1 #AutoOwn1, Workers predict CountHU
pm[2,c(18,24,28)] <- 1 #TotPop, AutoOwn1, Workers predict HH
pm[3,c(23,52)] <- 1 #D1B, Pct_AO0 predict D1A
pm[4,c(40,62)] <- 1 #E8_off, D1C8_SVC predict D1C8_OFF
pm[5,c(23,27,82)] <- 1 #Pct_AO0, Pct_AO2p, D3A predict D4A
pm[6,c(27,94,95)] <- 1 #Pct_AO2p, D4B025, D4B050 predict D4C
pm[7,c(23,52,93)] <- 1 #Pct_AO0, D1B, D4B025 predict D4D
pm[8,c(93,94)] <- 1 #D4B025, D4B050 predict D4E (badly)
pm[9,c(86,98,99)] <-1 #D3B, D5AR, D5AE predict D5BR
pm[10,c(98,99)] <- 1 #D5AR, D5AE predict D5BE
pm[11,c(102,104)] <- 1 #D5CR, D5CE predict D5DR
pm[12,c(103,105)] <- 1 #D5CRI, D5CEI predict D5DRI
pm[13,c(102,104)] <- 1 #D5CR, D5CE predict D5DE
pm[14,c(103,105)] <- 1 #D5CRI, D5CEI predict D5DEI
df_imputed_all <- mice(data = df, method = "norm.boot", predictorMatrix = pm, blocks = b)
r lm imputation r-mice
© www.soinside.com 2019 - 2024. All rights reserved.