#r #statistics #correlation
#r #Статистика #корреляция
Вопрос:
Я очень новичок в R и плохо разбираюсь в статистике (не очень хорошая комбинация, я знаю). У меня есть набор данных (гены) с генами, найденными у разных видов. Это выглядит примерно так:
genes sp1 sp2 sp3 sp4 sp5
genea 100 100 100 100 100
geneb 0 0 8.333 0 11.11
genec 100 11.11 16.6 0 16.6
Числа соответствуют проценту присутствия гена для каждого вида. Я хочу знать корреляцию наличия / отсутствия генов между собой, используя эти данные. Я попытался использовать cor() и corrplot для визуализации. И corr_cross(), чтобы показать значимые корреляции:
genes<- t(genes) #just to transpose the rowxcolumn
corr_cross(genes, # to show top 10 couples of variables (by correlation coefficient)
max_pvalue = 0.05, # display only significant correlations (at 5% level)
top = 10
)
genes <- cor(genes)
corrplot(genes,
type = "lower",
order = "AOE",
tl.srt = 45,
col = brewer.pal(n = 8, name = "RdYlGn"),
bg = "lightblue",
title = "Association of virulence factors",
mar=c(0,0,1,0))
dev.off()
Когда я делаю это, я получаю значения NA и предупреждающее сообщение, в котором говорится, что стандартное отклонение равно нулю. Я знаю, что это связано с некоторыми генами, которые присутствуют во всех штаммах всех видов, поэтому имеют одинаковые данные «100» для всех видов.
Как я могу пересмотреть свой код, чтобы показать связи между всеми генами даже при одинаковых значениях для некоторых столбцов? Или я должен изменить свой статистический метод?
Комментарии:
1. вы должны исключить строки с нулевым стандартным отклонением
2. Но я также хочу знать корреляцию этих значений с другими значениями?
3. невозможно узнать корреляцию одной переменной с константой
4. Корреляцию можно ОЧЕНЬ грубо представить как «насколько тесно связаны изменения в X с изменениями в Y». Итак, если X или Y никогда не меняются, у вас не может быть корреляции