我有一个数据集,包含一个二元依赖变量(Y
)和12个独立变量(X1
到X12
),存储在csv文件中。以下是数据的前5行:
Y,X1,X2,X3,X4,X5,X6,X7,X8,X9,X10,X11,X12
0,9,3.86,111,126,14,13,1,7,7,0,M,46-50
1,7074,3.88,232,4654,143,349,2,27,18,6,M,25-30
1,5120,27.45,97,2924,298,324,3,56,21,0,M,31-35
1,18656,79.32,408,1648,303,8730,286,294,62,28,M,25-30
0,3869,21.23,260,2164,550,320,3,42,203,3,F,18-24
我使用以下代码从数据构建了逻辑回归模型:
mydata <- read.csv("data.csv")
mylogit <- glm(Y~X1+X2+X3+X4+X5+X6+X7+X8+X9+X10+X11+X12, data=mydata,
family="binomial")
mysteps <- step(mylogit, Y~X1+X2+X3+X4+X5+X6+X7+X8+X9+X10+X11+X12, data=mydata,
family="binomial")
我可以使用代码获得每个数据的预测概率:
theProbs <- fitted(mysteps)
现在,我想创建一个分类表 - 使用数据表的前20行(mydata
) - 我可以从中确定实际与数据一致的预测概率的百分比。请注意,对于因变量(Y
),0表示小于0.5的概率,1表示大于0.5的概率。
我花了很多时间试图构建分类但没有成功。如果有人建议可以帮助解决这个问题的代码,我将非常感激。
答案 0 :(得分:8)
问题有点陈旧,但我想如果有人正在浏览档案,这可能会有所帮助。 这很容易通过xtabs
完成classDF <- data.frame(response = mydata$Y, predicted = round(fitted(mysteps),0))
xtabs(~ predicted + response, data = classDF)
将生成如下表格:
response
predicted 0 1
0 339 126
1 130 394
答案 1 :(得分:1)
我认为'round'可以在这里完成这项工作 表(圆(theProbs))