无法使用confusionMatrix显示灵敏度/特异性
我有一个下表,我想使用无法使用confusionMatrix显示灵敏度/特异性,r,confusion-matrix,R,Confusion Matrix,我有一个下表,我想使用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.num
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)
如果我做错了什么,你有什么想法吗?如果你看看你的桌子,你会发现它的格式不对。行和列标签应该相同,但在本例中不是这样
tab = table(value>600,genotype)
tab
genotype
A B
FALSE 83 6
TRUE 17 94
因此,当我们运行confusionMatrix
时,由于行和列标签不同,我们会得到一个错误(错误消息就是这样告诉您的):
通常,要创建混淆矩阵,您应该有一列预测标签和一列参考标签(真值),因此我不确定您创建的表作为混淆矩阵是否有意义。在任何情况下,为了显示表的正确格式,让我们将行标签更改为与列标签相同。然后该功能将工作:
dimnames(tab)[[1]] = c("A","B")
tab
genotype
A B
A 83 6
B 17 94
confusionMatrix(tab)
混淆矩阵与统计
基因型
A B
A 83 6
B 17 94
准确度:0.885
95%可信区间:(0.8325,0.9257)
无信息率:0.5
P值[Acc>NIR]:<2e-16
卡帕:0.77
麦克内马尔试验P值:0.03706
灵敏度:0.8300
特异性:0.9400
位置预测值:0.9326
负预测值:0.8468
流行率:0.5000
检出率:0.4150
检出率:0.4450
平衡精度:0.8850
“积极”类:A
如果你看一下你的表格,你会发现它的格式不对。行和列标签应该相同,但在本例中不是这样
tab = table(value>600,genotype)
tab
genotype
A B
FALSE 83 6
TRUE 17 94
因此,当我们运行confusionMatrix
时,由于行和列标签不同,我们会得到一个错误(错误消息就是这样告诉您的):
通常,要创建混淆矩阵,您应该有一列预测标签和一列参考标签(真值),因此我不确定您创建的表作为混淆矩阵是否有意义。在任何情况下,为了显示表的正确格式,让我们将行标签更改为与列标签相同。然后该功能将工作:
dimnames(tab)[[1]] = c("A","B")
tab
genotype
A B
A 83 6
B 17 94
confusionMatrix(tab)
混淆矩阵与统计
基因型
A B
A 83 6
B 17 94
准确度:0.885
95%可信区间:(0.8325,0.9257)
无信息率:0.5
P值[Acc>NIR]:<2e-16
卡帕:0.77
麦克内马尔试验P值:0.03706
灵敏度:0.8300
特异性:0.9400
位置预测值:0.9326
负预测值:0.8468
流行率:0.5000
检出率:0.4150
检出率:0.4450
平衡精度:0.8850
“积极”类:A
你说的“它不起作用”是什么意思。你收到错误信息了吗?如果是,请张贴。另外,
confusionMatrix
来自caret
包,因此将library(caret)
添加到代码的开头。一般来说,在SO上发布问题时,您应该包含重现问题所需的所有信息。这使人们更容易帮助你。@eipi10很好的一点,很抱歉错过了它“它不起作用”是什么意思。你收到错误信息了吗?如果是,请张贴。另外,confusionMatrix
来自caret
包,因此将library(caret)
添加到代码的开头。一般来说,在SO上发布问题时,您应该包含重现问题所需的所有信息。这使得人们更容易帮助你。@eipi10很好,很抱歉错过了
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