Хороший способ показать много данных в графическом виде


15

Я работаю над проектом, который включает 14 переменных и 345 000 наблюдений для данных о жилье (такие как год постройки, квадратные метры, проданная цена, округ проживания и т. Д.). Меня интересует попытка найти хорошие графические методы и библиотеки R, которые содержат хорошие методы построения графиков.

Я уже вижу, что в ggplot и lattice будет работать хорошо, и я думаю о создании графиков для скрипки для некоторых из моих числовых переменных.

Какие другие пакеты люди порекомендуют для отображения большого количества числовых или типографских переменных в четкой, отточенной и, что наиболее важно, краткой манере?


«Чисто, отполировано и, самое главное, лаконично» для меня звучит как ggplot2.
Брэндон Бертельсен

1
Я ищу не только R библиотеки, но и любые конкретные типы графиков. Мои знания о графиках ограничены разбросом, квадратом, qq, гистограммами, скрипками, оценками плотности ядра и т. Д. Любые чуть более непонятные графики, которые могут показать больше данных, чем это было бы фантастически.
Кристофер Аден

2
параллельные координаты звучат как еще один, чтобы упомянуть. Также могут быть полезны методы уменьшения размерности.
Тал Галили

Ответы:


13

Лучший «график» настолько очевиден, что никто еще не упомянул: создавайте карты. Данные по жилью зависят в основном от пространственного местоположения (согласно старому взгляду на недвижимость), поэтому самое первое, что нужно сделать, - составить четкую подробную карту каждой переменной. Чтобы сделать это хорошо с одной третью миллиона баллов, на самом деле требуется промышленная ГИС, которая может ускорить процесс. После этого имеет смысл пойти дальше и составить вероятностные и блокпосты для изучения одномерных распределений, а также для построения матриц рассеяния и блуждающих схематических блокпостов и т. Д., Чтобы исследовать зависимости - но карты сразу предложат, что исследовать, как моделировать отношения данных и как разбить данные географически на осмысленные подмножества.


Отличная идея! У меня уже есть широта и долгота всех точек данных, поэтому такая задача была бы относительно элементарной. Я думал, что библиотека карт будет хорошим способом, если нет чего-то лучшего.
Кристофер Аден

2
@Christopher Вы также можете сделать это с ggplot2(особенно если вам не нужно рисовать границы стран), had.co.nz/ggplot2/coord_map.html . В противном случае maps, gmapsлучше. Там также GeoXpи интерфейс R для GRASS. Кстати, у Мондриана есть плагин для географических данных :)
chl

Присвоить лучший ответ может быть сложно, когда есть несколько отличных предложений, но я чувствую, что это правильное направление, помня о «краткости». Я попробую ggplot2 и посмотрю на карты, GeoXp и Mondrian. Спасибо за идею пространственного построения графиков!
Кристофер Аден

Несколько классных постов о картах blog.revolutionanalytics.com/2012/07/… stevendkay.wordpress.com/2010/04/21/…
Крис Били

Я имел хороший успех lattice«s levelplotи contourplot. Пакет fieldsимеет некоторые приятные функции, в том числе, quiltplotкоторые хороши, если ваши данные не строго в сетке. Он также имеет хорошую функцию сплайна тонких пластин Tpsдля сглаживания данных без сетки в сетку. Что касается специализированного программного обеспечения ГИС, GRASS почему-то никогда не имеет смысла для меня, я предпочитаю QGIS.
Уэйн

6

Я бы рекомендовал взглянуть на GGobi , который также имеет интерфейс R, по крайней мере, для ознакомительных целей. Он имеет ряд графических дисплеев, особенно полезных для работы с большим количеством наблюдений и переменных и для их объединения. Возможно, вы захотите начать с просмотра некоторых видеороликов в разделе «Просмотр демонстрации» на странице « Learn GGobi» .

Обновить

Ссылки на инструменты Хэдли Уикхема для GGobi, как предложено chl в комментариях:

  • DescribeDisplay "R пакет, который предоставляет способ воссоздать графику ggobi в R"
  • clusterfly «Исследуйте результаты кластеризации в больших размерах»
  • rggobi "R пакет, который обеспечивает простой интерфейс с GGobi"

1
@ars Давайте добавим R инструменты Хэдли, чтобы улучшить опыт GGobi, например, DescribeDisplayи clusterfly.
ЧЛ

Привет, как я уже писал в своем ответе - мой опыт работы с ggobi заключается в том, что он плохо обрабатывает большие наборы данных. У вас есть другой опыт с этим?
Тал Галили

@Tal Проблема возникает из-за того, что вы не полагаетесь на глиф для отображения / рендеринга экрана, который является обычным для базовой графики R. Это обсуждалось на последней конференции DSC ( j.mp/bpOhBH ). Фактически, существует текущий проект с Qt в качестве бэкэнда и новым портом GGobi для улучшения интерактивного отображения больших наборов данных.
ЧЛ

1
@Tal: Мой опыт показывает, что он довольно медленный при обновлении / перерисовке представлений, например, при добавлении переменной или перетаскивании для изменения порядка отображения в PCP. Тем не менее, он может использоваться, хотя и не так интерактивно, как рекламируется с большими данными. @chl: Это действительно приятно знать, спасибо!
АРС

1
@ars @Tal Вот ссылки на интерфейс Qt для R ( j.mp/d1AJp7 ) и GGobi ( j.mp/cUOvfp ). Смотрите также репозиторий Hadley's Github!
ЧЛ

6

Я чувствую, что вы на самом деле задаете два вопроса: 1) какие типы визуализаций использовать и 2) какой пакет R может их создать.

В зависимости от того, какой тип графика использовать, их много, и это зависит от ваших потребностей (например: типы переменных - числовые, факторные, географические и т. Д., А также тип соединений, которые вы хотите отобразить):

Теперь о том, как это сделать. Одна проблема со многими точками данных - время до создания графика. ggplot2, iplots, ggobi не очень хороши для слишком большого количества точек данных (по крайней мере, из моего опыта). В этом случае вы можете сосредоточиться на базовых графических средствах R или отобрать свои данные и использовать все остальные инструменты. Или вы можете надеяться, что люди, разрабатывающие iplots extreme (или Acinonyx ), дойдут до стадии предварительного релиза.


Спасибо за ссылки о rflowcytи Acinonyx.
ЧЛ

Кстати, rflowcytбыл объявлен устаревшим с недавними выпусками Bioconductor, теперь рекомендуется использовать flowViz. Во всяком случае, оба полагаются на lattice.
ЧЛ

Очень тщательный ответ, Тал! Время создания сюжета не должно быть огромной проблемой. Я делал большинство своих графиков с помощью базового пакета, и проблема в том, чтобы графики выглядели лучше, была для меня, когда я решил использовать график для статьи. Я рассматривал возможность использования матрицы рассеяния для числовых переменных, но, поскольку многие из них имеют разные единицы (некоторые в долларах, другие в sqft), единственной ценной информацией, которую я получу, были бы общие тенденции, но с ~ 8 числовыми переменных, 8x8 SPM немного загроможден.
Кристофер Аден

3

Mondrian предоставляет интерактивные функции и обрабатывает довольно большие наборы данных (правда, на Java).

Paraview включает в себя 2D / 3D, а именно. функции.


Спасибо за две новые библиотеки. Мой главный конфликт с этими двумя заключается в том, что я отправляю свой отчет в бумажном виде, поэтому интерактивная графика может использоваться не полностью. Графика Мондриана выглядит довольно сложной. Я посмотрю.
Кристофер Аден

@Christopher Для Мондриана у вас есть «эквивалентная» версия R, на которую iplotsссылается @Tal. Что касается Paraview, у вас есть возможность сохранить скриншот вашего viz. DescribeDisplayэто способ экспорта динамической визуализации из GGobi, cran.r-project.org/web/packages/DescribeDisplay/index.html .
ЧЛ

-3

Я хотел бы обратить ваше внимание на « Параллельные координаты: визуальная многомерная геометрия и ее приложения» , в которой содержатся последние достижения и приложения в этой области.

Книга была высоко оценена Стивеном Хокингом среди других. Поверхности описываются (используя двойственность) своими нормальными векторами в своих точках. Он содержит приложения для управления воздушным движением (автоматическое предотвращение столкновений - 3 патента США), многофакторный анализ данных (на реальных наборах данных, некоторые с сотнями переменных), многоцелевая оптимизация, управление процессом, интеллектуальные дисплеи интенсивной терапии, безопасность, визуализация сети и недавно большой Данные.


5
Привет, Альфред, спасибо, что присоединился к сайту, хотя это выглядит как промоутер. Возможно, у вас есть пример, аналогичный набору данных ОП (14 переменных и 345 000 наблюдений), который вы можете представить в виде картинки и описать / продемонстрировать, как параллельные координаты могут быть полезны? Многие из статических диаграмм параллельных координат, которые я видел с таким большим количеством наблюдений, имеют тенденцию выглядеть как спагетти на тарелке, я подозреваю, что у вас есть лучшее понимание того, как понимать такие большие данные N.
Энди W

Привет Энди, у меня нет примера с таким количеством наблюдений. В
Альфред Инсельберг

Привет Энди, у меня нет примера с таким количеством наблюдений. Интерактивность необходима для исследования данных. Я работал над набором данных с около 800 переменными и 10 000 наблюдений в сотовой телефонной сети, чтобы обнаружить «таинственные» сбои. С помощью классификаторов поэтапно и с помощью интерактивных функций были найдены 11 ответственных переменных и прослежены их назад во времени. Необычная активность в сети была обнаружена за 3-4 до обнаружения сбоя.
Альфред Инсельберг
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.