默认情况下,multinom()如何处理NA值? [英] How does multinom() treat NA values by default?

查看:150
本文介绍了默认情况下,multinom()如何处理NA值?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我运行multinom()时,说Y ~ X1 + X2 + X3,如果对于一个特定行,X1NA(即丢失),但是YX2X3都有一个值,是否将整个行都扔掉(就像在SAS中一样)? multinom()中的缺失值如何处理?

When I am running multinom(), say Y ~ X1 + X2 + X3, if for one particular row X1 is NA (i.e. missing), but Y, X2 and X3 all have a value, would this entire row be thrown out (like it does in SAS)? How are missing values treated in multinom()?

推荐答案

下面是一个简单的示例(来自nnet包的?multinom)来探索不同的na.action:

Here is a simple example (from ?multinom from the nnet package) to explore the different na.action:

> library(nnet)
> library(MASS)
> example(birthwt)
> (bwt.mu <- multinom(low ~ ., bwt))

故意创建一个NA值:

> bwt[1,"age"]<-NA # Intentionally create NA value
> nrow(bwt)
[1] 189

测试4种不同的na.action:

> predict(multinom(low ~ ., bwt, na.action=na.exclude)) # Note length is 189
# weights:  12 (11 variable)
initial  value 130.311670
iter  10 value 97.622035
final  value 97.359978
converged
  [1] <NA> 0    0    0    0    0    0    0    0    0    0    0    1    1    0
 [16] 0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
 ....

> predict(multinom(low ~ ., bwt, na.action=na.omit)) # Note length is 188
# weights:  12 (11 variable)
initial  value 130.311670
iter  10 value 97.622035
final  value 97.359978
converged
  [1] 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0
 [38] 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0
 .....

> predict(multinom(low ~ ., bwt, na.action=na.fail))    # Generates error
Error in na.fail.default(list(low = c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,  :
  missing values in object

> predict(multinom(low ~ ., bwt, na.action=na.pass))    # Generates error
Error in qr.default(X) : NA/NaN/Inf in foreign function call (arg 1)

因此,na.exclude在预测中生成NA,而na.omit则完全忽略了它. na.passna.fail不会创建模型. 如果未指定na.action,则显示默认值:

So na.exclude generates a NA in the prediction while na.omit omits it entirely. na.pass and na.fail will not create the model. If na.action is not specified, this shows the default:

> getOption("na.action")
[1] "na.omit"

这篇关于默认情况下,multinom()如何处理NA值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆