R中逻辑回归的列联表,缺失拟合值

时间:2012-07-18 01:00:49

标签: r regression

在R中的R逻辑回归中,我试图创建一个列联拟合到观测值的列联表(即0或1实际与0或1拟合值)。但是,我的数据在各种变量的各行中缺少值,因此拟合值向量的长度比原始数据集短。这是一个例子:

test <- data.frame(male=c(1,0,1,0,0,1,1,0,1,0,0,1), 
                 height=c(58,100,NA,19,20,69,58,24,46,19,97,69))

model <- glm(male~height, family=binomial("logit"),data=test)

check_model <- table(test$male,fitted.values(model)>0.5)
  

表中的错误(test $ male,fitted.values(model)&gt; 0.5):     所有参数必须具有相同的长度

是否有人知道只在模型fitted.value不是NULL的行中输入实际值(测试$ male)的方式?

2 个答案:

答案 0 :(得分:2)

如果查看?glm,您会看到它将model.frame(默认情况下)作为glm对象的一个​​组件返回

这包含用于拟合模型的数据

因此你可以使用

table(model.frame(model)$male, fitted(model) > 0.5)

table(model$model$male, fitted(model) > 0.5)

返回所需结果

##      FALSE TRUE
##   0     4    2
##   1     3    2

答案 1 :(得分:1)

> table(test$male[complete.cases(test)], fitted(model)>0.5)

    FALSE TRUE
  0     4    2
  1     3    2