- Trending Categories
Data Structure
Networking
RDBMS
Operating System
Java
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
Physics
Chemistry
Biology
Mathematics
English
Economics
Psychology
Social Studies
Fashion Studies
Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
How to calculate the sensitivity and specificity from a confusion matrix in R?
If we have a confusion matrix then the sensitivity and specificity can be calculated using confusionMatrix function of caret package. For example, if we have a contingency table named as table then we can use the code confusionMatrix(table). This will return sensitivity and specificity as well as many other metrics.
Example1
> x1<-sample(letters[1:4],20,replace=TRUE) > y1<-sample(letters[1:4],20,replace=TRUE) > table1<-table(x1,y1) > table1
Output
y1 x1 a b c d a 0 0 1 0 b 0 1 2 1 c 2 2 0 2 d 3 2 1 3
Loading caret package:
> library(caret)
Finding sensitivity and specificity of table1:
> confusionMatrix(table1)
Confusion Matrix and Statistics
Output
y1 x1 a b c d a 0 0 1 0 b 0 1 2 1 c 2 2 0 2 d 3 2 1 3
Overall Statistics
Accuracy : 0.2 95% CI : (0.0573, 0.4366) No Information Rate : 0.3 P-Value [Acc > NIR] : 0.8929 Kappa : -0.0774 Mcnemar's Test P-Value : NA
Statistics by Class:
Class: a Class: b Class: c Class: d Sensitivity 0.0000 0.20 0.0000 0.5000 Specificity 0.9333 0.80 0.6250 0.5714 Pos Pred Value 0.0000 0.25 0.0000 0.3333 Neg Pred Value 0.7368 0.75 0.7143 0.7273 Prevalence 0.2500 0.25 0.2000 0.3000 Detection Rate 0.0000 0.05 0.0000 0.1500 Detection Prevalence 0.0500 0.20 0.3000 0.4500 Balanced Accuracy 0.4667 0.50 0.3125 0.5357
Example2
> x2<-sample(c("India","China","Croatia","Indonesia"),2000,replace=TRUE) > y2<-sample(c("India","China","Croatia","Indonesia"),2000,replace=TRUE) > table2<-table(x2,y2) > table2
Output
y2 x2 China Croatia India Indonesia China 143 131 138 118 Croatia 118 118 123 119 India 115 132 115 132 Indonesia 107 126 124 141
> confusionMatrix(table2) Confusion Matrix and Statistics
y2 x2 China Croatia India Indonesia China 143 131 138 118 Croatia 118 118 123 119 India 115 132 115 132 Indonesia 107 126 124 141
Overall Statistics
Accuracy : 0.2585 95% CI : (0.2394, 0.2783) No Information Rate : 0.255 P-Value [Acc > NIR] : 0.3680 Kappa : 0.0116 Mcnemar's Test P-Value : 0.6665
Statistics by Class:
Class: China Class: Croatia Class: India Class: Indonesia Sensitivity 0.2961 0.2327 0.2300 0.2765 Specificity 0.7449 0.7589 0.7473 0.7604 Pos Pred Value 0.2698 0.2469 0.2328 0.2831 Neg Pred Value 0.7687 0.7444 0.7444 0.7543 Prevalence 0.2415 0.2535 0.2500 0.2550 Detection Rate 0.0715 0.0590 0.0575 0.0705 Detection Prevalence 0.2650 0.2390 0.2470 0.2490 Balanced Accuracy 0.5205 0.4958 0.4887 0.5184
Example3
> x3<-sample(c("Male","Female"),20,replace=TRUE) > y3<-sample(c("Male","Female"),20,replace=TRUE) > df<-data.frame(x3,y3) > confusionMatrix(table(df$x3,df$y3)) Confusion Matrix and Statistics
Female Male Female 3 7 Male 6 4 Accuracy : 0.35 95% CI : (0.1539, 0.5922) No Information Rate : 0.55 P-Value [Acc > NIR] : 0.9786 Kappa : -0.3 Mcnemar's Test P-Value : 1.0000 Sensitivity : 0.3333 Specificity : 0.3636 Pos Pred Value : 0.3000 Neg Pred Value : 0.4000 Prevalence : 0.4500 Detection Rate : 0.1500 Detection Prevalence : 0.5000 Balanced Accuracy : 0.3485 'Positive' Class : Female
- Related Articles
- How to create confusion matrix for a rpart model in R?
- How to find the confusion matrix for linear discriminant analysis in R?
- How can I plot a confusion matrix in matplotlib?
- How to plot a confusion matrix with string axis rather than integer in Python?
- How to find the column names and row names from a matrix in R?
- How to deal with missing values to calculate correlation matrix in R?
- How to remove duplicate columns from a matrix in R?
- How to take a random sample from a matrix in R?
- How to multiply single row matrix and a square matrix in R?
- How to convert a matrix to binary matrix in R?
- How to multiply a matrix columns and rows with the same matrix rows and columns in R?
- How to remove the row names or column names from a matrix in R?
- How to convert a matrix into a color matrix in R?
- How to convert a sparse matrix into a matrix in R?
- How to convert a binary matrix to logical matrix in R?

Advertisements