2016-01-24 8 views
1

У меня есть следующие таблицы, я хочу проанализировать с помощью confusionMatrix:Невозможно отобразить чувствительность/специфичность с 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)) 

Любые мысли, если я что-то делаю не так?

+1

Что вы имеете в виду под "не работает". Вы получили сообщение об ошибке? Если да, отправьте его. Кроме того, 'confusionMatrix' находится в пакете' caret', поэтому добавьте 'library (caret)' в начало вашего кода. В общем, при размещении вопроса о SO вы должны включить всю информацию, необходимую для воспроизведения вашей проблемы. Это облегчает людям помощь. – eipi10

+0

@ eipi10 хороший момент, извините за отсутствие – Oposum

ответ

3

Если вы посмотрите на свой стол, вы увидите, что он не в правильном формате. Ярлыки строк и столбцов должны быть одинаковыми, но в этом случае они не совпадают.

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