При расчете тенденций, как вы учитываете небольшой размер выборки?

Я выполняю некоторую работу, обрабатывая статистику разрешений домов за определенный месяц. Я хотел бы иметь возможность показать тенденции, то есть, в каких областях наблюдалось значительное относительное увеличение или уменьшение по сравнению с последним месяцем (месяцами).

Мой первый наивный подход заключался в том, чтобы просто рассчитать процентное изменение за два месяца, но это имеет проблемы, когда данных очень мало — любое изменение вообще увеличивается:

// diff = (new - old) / old
     Area      |  June  |  July  |  Diff  |
 --------------|--------|--------|--------|
 South Sydney  |   427  |   530  |  +24%  |
 North Sydney  |   167  |   143  |  -14%  |
 Dubbo         |     1  |     3  | +200%  |

Я не хочу просто игнорировать какую-либо область или значение как выброс, но я не хочу, чтобы увеличение Dubbo на 2 в месяц затмило увеличение на 103 в Южном Сиднее. Есть ли лучшее уравнение, которое я мог бы использовать для отображения более полезной информации о тенденциях?

Эти данные в конечном итоге наносятся на Google Maps. В этой первой попытке я просто конвертирую разницу в «цвет тепловой карты» (синий — уменьшение, зеленый — без изменений, красный — увеличение). Возможно, решением может быть использование какой-либо другой метрики для изменения представления каждой области, например, изменение альфа-канала на основе общего количества одобрений или что-то подобное, в этом случае Dubbo будет ярко-красным, но довольно прозрачным, тогда как Южный Сидней был бы ближе к желтому, но довольно непрозрачным.

Любые идеи о том, как лучше всего показать эти данные?


person nickf    schedule 24.09.2009    source источник
comment
Статистика, анализ данных и количественное отображение не являются программированием как таковым, но это проблемы, которые иногда передаются программистам. Классический справочник по последнему вопросу: edwardtufte.com/tufte/books_vdqi , который стоит прочитать. для всех, кому нужно отображать данные. Даже если вы используете только Excel.   -  person dmckee --- ex-moderator kitten    schedule 24.09.2009


Ответы (8)


Изучите показатели статистической значимости. Это может быть так же просто, как считать статистику.

В очень простой версии, то, что вы замышляете,

 (A_2 - A_1)/sqrt(A_2 + A_1)

то есть изменение более чем на 1 сигму в простой статистике подсчета.

Что делает приведенную выше диаграмму похожей на:

Area    Reduced difference
--------------------------
S.S.    +3.3  
N.S.    -1.3  
D.      +1.0

что интерпретируется как означающее, что в Южном Сиднее произошло значительное (то есть важное и, возможно, связанное с реальной основной причиной) увеличение, в то время как в Северном Сиднее и Даббо произошли относительно незначительные изменения, которые могут указывать или не указывать на тенденцию. Практическое правило

  • Изменения в 1 сигму — это просто шум
  • Изменения 3 сигмы, вероятно, указывают на основную причину (и, следовательно, на ожидание тенденции)
  • Изменения 5 сигм почти наверняка указывают на тенденцию

Области с очень низкими показателями (например, Dubbo) по-прежнему будут нестабильными, но они не будут перегружать дисплей.

person dmckee --- ex-moderator kitten    schedule 24.09.2009

Это действительно вопрос статистики. Я не статистик, но подозреваю, что ответ примерно такой: ну, у вас нет данных — чего вы ожидаете‽

Возможно, вы могли бы объединить Dubbo с соседним регионом? Вы нарезали свои данные достаточно маленькими, чтобы ваш сигнал упал ниже уровня шума.

Вы также можете просто не показывать Dubbo или сделать цвет для недостаточного количества данных.

person derobert    schedule 24.09.2009

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

Мое мнение: Не используйте тепловую карту. Это для непрерывных данных, а у вас есть дискретные. Используйте точки. Цвет представляет увеличение/уменьшение в окружающей области, а необработанный объем пропорционален размеру точки.

Теперь, как пользователь узнает, какой регион представляет точка? Где Южный Сидней преобразуется в Северный Сидней? Лучшим подходом было бы добавить подобные Вороному направляющие линии между точками, но правильно расположенные прямоугольники сделать тоже.

person Marcin    schedule 24.09.2009
comment
На самом деле у меня есть данные KML для каждой зоны, поэтому я могу точно отобразить границы каждой зоны... или вы предлагаете игнорировать это и использовать что-то другое? - person nickf; 24.09.2009

Если у вас есть площадь каждого региона в таких единицах, как кв. км, вы можете нормализовать свои данные, рассчитав количество одобрений домов/км ^ 2, чтобы получить плотность одобрений домов и использовать это в своем уравнении, а не количество разрешений домов. Это решает проблему, если Dubbo содержит меньше разрешений для дома, чем другие регионы, из-за своего размера. Вы также можете нормализовать население, если оно у вас есть, чтобы получить количество одобрений домов на человека.

person Andrew    schedule 24.09.2009

Может быть, вы могли бы использовать итоги. Добавьте все старые и новые значения, что дает старое = 595, новое = 676, разница = + 13,6%. Затем рассчитайте изменения на основе старой суммы, которая дает вам +17,3% / -4,0% / +0,3% для трех мест.

person Community    schedule 24.09.2009

С помощью тепловой карты вы, как правило, пытаетесь показать легко усваиваемую информацию. Все слишком сложное, вероятно, будет контрпродуктивным.

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

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

person dommer    schedule 24.09.2009

Я настоятельно рекомендую использовать иерархическую модель (т. е. частичное объединение). Анализ данных с использованием регрессионных и многоуровневых/иерархических моделей Гельмана и Хилла — отличный ресурс по этой теме.

person Jonathan Chang    schedule 24.09.2009

Вы можете использовать точный тест, такой как точный тест Фишера http://en.wikipedia.org/wiki/Fisher%27s_exact_test или используйте t-тест Sudent http://en.wikipedia.org/wiki/Student%27s_t-test , оба из которых предназначены для небольших выборок.

Следует отметить, что t-тест почти такой же, как z-тест, но в t-тесте вам не нужно знать стандартное отклонение и не нужно его аппроксимировать, как если бы вы выполняли z-тест. контрольная работа.

Вы можете применять тест az или t без какого-либо обоснования в 99,99% случаев из-за центральной предельной теоремы http://en.wikipedia.org/wiki/Central_limit_theorem (формально вам нужно только, чтобы базовое распределение X имело конечную дисперсию.) Вам также не нужно обоснование теста Фишера, он точен и не делает никаких предположений.

person ldog    schedule 25.09.2009