我有一个下表要分析使用confusionMatrix
:
value<-cbind(c(rnorm(100,500,90),rnorm(100,800,120)))
genotype<-cbind(c(rep("A",100),rep("B",100)))
df<-cbind(value,genotype)
df<-as.data.frame(df)
colnames(df)<-c("value","genotype")
df$value<-as.numeric(as.character(df$value))
table(value>600,genotype)
我想使用来分析敏感性和特异性的输出,confusionMatrix
但它不起作用:
confusionMatrix(table(value>600,genotype))
如果我做错了任何想法?
如果您查看表格,就会发现表格格式不正确。行标签和列标签应该相同,但是在这种情况下它们不是相同的。
tab = table(value>600,genotype)
tab
genotype
A B
FALSE 83 6
TRUE 17 94
运行时confusionMatrix
,由于行和列的标签不同,因此会出现错误(错误消息告诉您):
confusionMatrix(tab)
Error in !all.equal(rownames(data), colnames(data)) : invalid argument type
通常,要创建混淆矩阵,您应该有一列预测标签和一列参考标签(真实值),因此我不确定您创建的表作为混淆矩阵是否有意义。无论如何,为了显示正确的表格格式,我们将行标签更改为与列标签相同。然后该函数将起作用:
dimnames(tab)[[1]] = c("A","B")
tab
genotype
A B
A 83 6
B 17 94
confusionMatrix(tab)
Confusion Matrix and Statistics genotype A B A 83 6 B 17 94 Accuracy : 0.885 95% CI : (0.8325, 0.9257) No Information Rate : 0.5 P-Value [Acc > NIR] : < 2e-16 Kappa : 0.77 Mcnemar's Test P-Value : 0.03706 Sensitivity : 0.8300 Specificity : 0.9400 Pos Pred Value : 0.9326 Neg Pred Value : 0.8468 Prevalence : 0.5000 Detection Rate : 0.4150 Detection Prevalence : 0.4450 Balanced Accuracy : 0.8850 'Positive' Class : A
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句