强制在lmer中包含缺少数据的观察结果

时间:2016-09-13 14:04:58

标签: r missing-data lme4

我希望使用 let x = yourClassname.setStringAsCardNumberWithSartNumber(4, withString: str!, withStrLenght: 8) ### output:- 4111XXXXXXXX1111 let x = yourClassname.setStringAsCardNumberWithSartNumber(0, withString: str!, withStrLenght: 12) ### output: - XXXXXXXXXXXX1111 */ func setStringAsCardNumberWithSartNumber(Number:Int,withString str:String ,withStrLenght len:Int ) -> String{ //let aString: String = "41111111111111111" let arr = str.characters var CrediteCard : String = "" if arr.count > (Number + len) { for (index, element ) in arr.enumerate(){ if index >= Number && index < (Number + len) { CrediteCard = CrediteCard + String("X") }else{ CrediteCard = CrediteCard + String(element) } } return CrediteCard }else{ print("\(Number) plus \(len) are grether than strings chatarter \(arr.count)") } print("\(CrediteCard)") return str } 拟合线性混合效果模型,而不会丢弃缺少数据的观察结果。也就是说,我希望lme4::lmer继续使用所有数据来最大化可能性。

我认为使用lmer产生这种行为是否正确? This unanswered question让我想知道这可能是错的。

1 个答案:

答案 0 :(得分:0)

lmer(与大多数模型函数一样)无法处理缺失的数据。为了说明这一点:

data(Orthodont,package="nlme")
Orthodont$nsex <- as.numeric(Orthodont$Sex=="Male")
Orthodont$nsexage <- with(Orthodont, nsex*age)
Orthodont[1, 2] <- NA

lmer(distance ~ age + (age|Subject) + (0+nsex|Subject) +
       (0 + nsexage|Subject), data=Orthodont, na.action = na.pass)
#Error in lme4::lFormula(formula = distance ~ age + (age | Subject) + (0 +  : 
#  NA in Z (random-effects model matrix): please use "na.action='na.omit'" or "na.action='na.exclude'"

如果您不想丢弃缺少数据的观察结果,那么您唯一的选择就是估算。查看miceAmelia等包。