Пакет R для определения отношений между переменными [закрыт]

13

Есть ли пакет R, который я могу использовать, чтобы выяснить, существуют ли отношения между переменными?

Обычно, когда я ищу шаблоны, я смотрю на корреляции, а затем на фасетный график. Затем я вручную применяю некоторые преобразования к переменным в данных. Мне было интересно, смогу ли я ускорить этот процесс с помощью пакета R.

celenius
источник
Если у вас есть свой собственный процесс, вы всегда можете свернуть свой собственный пакет. Или просто повторно используемую функцию в каком-то файле, загруженном в начале вашего скрипта.
Брэндон Бертельсен

Ответы:

9

AFAIK, нет. Если быть более точным, я не знаю ни одного пакета R, который бы выполнял для вас часть того, что называется Исследовательским анализом данных (EDA), посредством одного вызова функции - я имею в виду аспекты повторного выражения и откровения обсуждается в Hoaglin, Mosteller and Tukey, Понимание надежного и разведочного анализа данных . Wiley-Interscience, 1983, в частности.

Тем не менее, в R существуют некоторые изящные альтернативы, особенно в отношении интерактивного исследования данных (смотрите интересное обсуждение: когда полезна интерактивная визуализация данных? ). Я могу думать о

  • iplots , или его преемник Acinonyx , для интерактивной визуализации (с возможностью чистки, связанных графиков и т. п.) (Некоторые из этих функций можно найти в пакете latticist ; наконец, rgl отлично подходит для трехмерной интерактивной визуализации.)
  • ggobi для интерактивных и динамических дисплеев, включая сокращение данных (многомерное масштабирование) и Projection Pursuit

Это только для интерактивного исследования данных, но я бы сказал, что это суть EDA. В любом случае, описанные выше методы могут помочь при изучении двумерных или более высоких отношений между числовыми переменными. Для категориальных данных хорошим вариантом является пакет vcd (таблицы визуализации и сводки). Тогда я бы сказал, что пакеты vegan и ade4 на первом месте для изучения отношений между переменными смешанных типов данных.

Наконец, как насчет интеллектуального анализа данных в R? (Попробуйте это ключевое слово на Rseek )

хл
источник
(+1) Приятно видеть, что вы снова отвечаете на вопросы!
whuber
+1 Кстати: маленькая опечатка - Acinonyx (я и у транспонированы).
Итератор
@Iterator Спасибо, что поймали опечатку. (Я уже +1 твой ответ, хорошо, что ты цитировал статью Уилкинсона).
ЧЛ
2
Там loonтакже waddella.github.io/loon Кредит идет к @hadleywickham за указание на это.
Ари Б. Фридман
11

Если вы просто хотите быстро взглянуть, как соотносятся переменные в вашем наборе данных, взгляните на функцию pair () или, что еще лучше, функцию pair.panels () в пакете psych. Я написал немного о функции пар здесь .

Используя функцию pair () или psych :: pair.panels (), довольно просто создать матрицы рассеяния.

pairs.panels(iris[-5], bg=c("blue","red","yellow")[iris$Species], pch=21,lm=TRUE)

введите описание изображения здесь

Стивен Тернер
источник
7

Проверьте scagnosticsпакет и оригинал исследовательской работы . Это очень интересно для двумерных отношений. Для многомерных отношений стремление к проекции является очень хорошим первым шагом.

В целом, однако, экспертиза предметной области и данных и сузит, и улучшит ваши методы для быстрого изучения отношений.

Итератор
источник
7

Функция chart.Correlation в PerformanceAnalytics обеспечивает аналогичную функциональность для упомянутой функции plot.pairs @Stephen Turner, за исключением того, что она сглаживается с помощью функции Лёсса, а не линейной модели и значения для корреляций.

library(PerformanceAnalytics)
chart.Correlation(iris[-5], bg=c("blue","red","yellow")[iris$Species], pch=21)

Диаграмма

Zach
источник
5

Если вы ищете возможные преобразования для работы с корреляцией, то инструмент, который еще не был упомянут, который может быть полезен, aceможно найти в acepackпакете (и, возможно, в других пакетах). Это делает интерактивный процесс попытки многих различных преобразований (с использованием сглаживателей) найти преобразования, чтобы максимизировать корреляцию между набором переменных x и переменной y. Построение графиков преобразований может затем предложить значимые преобразования.

Грег Сноу
источник
2

Вы можете использовать функцию DCOR в пакете 'energy', чтобы вычислить меру нелинейной зависимости, называемой корреляцией расстояний, и построить график, как указано выше. Проблема с корреляцией Пирсона заключается в том, что он может обнаруживать только линейные отношения между переменными. Убедитесь, что вы выбрали параметр записи для индекса в функции DCOR, которая сказала.

катафалк
источник