我正在进行物流回归,并希望在厨师的帮助下删除异常值。所以我试图找到我的数据集并烹饪d值。 我已经删除了缺失的值,所以这不是一个问题。我的摘要中没有(由于缺失而删除x观察)行。 以下是我的代码 -
fit<-glm(CHURN~CHILDREN+CREDITA+CREDITAA+CREDITB+ CREDITC+CREDITDE+CREDITGY+ CREDITZ+PRIZMRUR+
PRIZMUB+PRIZMTWN+REFURB+WEBCAP+TRUCK+RV+OCCPROF+OCCCLER+ OCCCRFT+OCCSTUD+OCCHMKR+
OCCRET+ OCCSELF+OWNRENT+MARRYUN+MARRYYES+MARRYNO+ MAILORD+MAILRES+MAILFLAG+TRAVEL+PCOWN+
CREDITCD+ NEWCELLY+NEWCELLN+INCMISS +MCYCLE+SETPRCM + REVENUE +MOU+RECCHRGE+
DIRECTAS+OVERAGE+ROAM+CHANGEM+CHANGER+DROPVCE+BLCKVCE+ UNANSVCE+CUSTCARE+THREEWAY+
MOUREC+OUTCALLS+INCALLS+PEAKVCE+OPEAKVCE+DROPBLK+ CALLFWDV+CALLWAIT+MONTHS+UNIQSUBS+
ACTVSUBS+PHONES+MODELS+EQPDAYS+AGE1+AGE2+REFER+INCOME+ CREDITAD+SETPRC,data = mydata1,
family = binomial(logit))
summary(fit)
cd <- cooks.distance(fit)
mydata2<-cbind(mydata1,cd)
我得到错误 - data.frame(...,check.names = FALSE)出错: 参数意味着不同的行数:40000,38941
我的数据集(mydata1)有40000个值,cd有38941。 为什么会这样?
答案 0 :(得分:1)
根据评论中建议的JDL,由于缺少或不适当的数据,这“很可能”。
要解释我稍微改变了cooks.distance
函数的帮助示例,方法是将yi
变量编辑为具有单个NA值。
xi <- 1:5
yi <- c(0,2,14,19,NA) # number of mice responding to dose xi
mi <- rep(40, 5) # number of mice exposed
glmI <- glm(cbind(yi, mi -yi) ~ xi, family = binomial)
summary(glmI)
如果您运行此操作,您可以注意到所有代码仍然有效。但是,如果您运行该帮助示例的下一行而不是获得与xi
和yi
相同长度的5个输出值由于NA
中的yi
值,您将获得4。
signif(cooks.distance(glmI), 3)
1 2 3 4
0.311 0.258 1.430 13.100
如果Inf
或其他不可能的值“破坏”glm
,则可能会出现类似的问题。请注意,如果您查看summary(glmI)
,则其中包含以下行:
(1 observation deleted due to missingness)