无法使用 confusionMatrix 显示 sensitivity/specificity
Unable to display sensitivity/specificity with confusionMatrix
我想使用 confusionMatrix
分析以下 table:
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))
如果我做错了什么,有什么想法吗?
如果您查看 table,您会发现它的格式不正确。行和列标签应该相同,但在本例中不同。
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
通常,要创建混淆矩阵,您应该有一列预测标签和一列参考标签(真实值),所以我不确定您创建的 table 是作为混淆矩阵有意义。无论如何,为了显示 table 的正确格式,让我们将行标签更改为与列标签相同。然后该函数将起作用:
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
我想使用 confusionMatrix
分析以下 table:
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))
如果我做错了什么,有什么想法吗?
如果您查看 table,您会发现它的格式不正确。行和列标签应该相同,但在本例中不同。
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
通常,要创建混淆矩阵,您应该有一列预测标签和一列参考标签(真实值),所以我不确定您创建的 table 是作为混淆矩阵有意义。无论如何,为了显示 table 的正确格式,让我们将行标签更改为与列标签相同。然后该函数将起作用:
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