2012-10-20 3 views
3

я создаю участок в R, используя:Корреляция между числовыми и логическими переменными

plot(IQ, isAtheist) 
abline(lm(isAtheist~IQ)) 

IQ является numeric и isAtheist является булево, имеющие значения TRUE или FALSE.

enter image description here

Я попытался написать:

cor(IQ, isAtheist) 

Но это дает мне ошибку:

Error in cor(IQ, isAtheist) : 'x' must be numeric 

Как я могу определить соотношение между этими двумя переменными?

ответ

2

Это то, что я думаю, что вы можете (показать различия в среднем значении IQ, наложенные на boxplot):

plot(IQ~isAtheist) 
lines(x=c(1,2), y=predict(lm(IQ~isAtheist), 
        newdata=list(isAtheist=c("NO","YES"))) , 
     col="red", type="b") 

X-позиция по умолчанию plot.formula - as.numeric(factor(isAtheist)), то есть на 1 и 2, а не на 0 и 1, что было тем, что вы предполагали при использовании abline. Не имеет смысла экстраполировать эти ценности, поэтому я выбрал график как ограниченный сегмент. Я добавлю обработанный пример и вывод.

set.seed(123) 
isAtheist=factor(c("NO","YES")[1+rep(c(0,1), 50)]) 
plot(IQ~isAtheist) 
    lines(x=c(1,2), y=predict(lm(IQ~isAtheist), 
          newdata=data.frame(isAtheist=c("NO","YES"))) , 
      col="red", type="b") 

enter image description here

+0

Спасибо! Я буду использовать ваш подход. –

5

Я действительно не знаю, как вы хотите интерпретировать корреляцию в этом случае, но вы можете попробовать cor(IQ, as.numeric(isAtheist)). В этом случае значение TRUE будет 1 и FALSE 0.

+0

Спасибо за ваш ответ! –

Смежные вопросы