Правильный способ стандартизации / масштабирования / нормализации нескольких переменных в соответствии со степенным распределением для использования в линейной комбинации - PullRequest
6 голосов
/ 01 апреля 2009

Я бы хотел объединить несколько метрик узлов в графе социальной сети в одно значение для ранжирования узлов:

in_degree + betweenness_centrality = informal_power_index

Проблема в том, что in_degree и betweenness_centrality измеряются в разных масштабах, скажем, 0-15 против 0-35000 и следуют степенному закону распределения (по крайней мере, определенно не нормальному распределению)

Есть ли хороший способ изменить масштаб переменных, чтобы один не доминировал над другим при определении informal_power_index?

Три очевидных подхода:

  • Стандартизация переменных (вычтите mean и разделите на stddev). Кажется, что это слишком сильно сократит распределение, скрывая огромную разницу между значением в длинном хвосте и значением около пика.
  • Изменение масштаба переменных до диапазона [0,1] путем вычитания min(variable) и деления на max(variable). Это кажется ближе к решению проблемы, поскольку это не изменит форму дистрибутива, но, возможно, это не решит проблему? В частности, средства будут другими.
  • Выровняйте средние, разделив каждое значение на mean(variable). Это не устранит разницу в масштабах, но, возможно, средние значения более важны для сравнения?

Есть еще идеи?

Ответы [ 4 ]

4 голосов
/ 01 апреля 2009

Похоже, вы хорошо понимаете основные распределения. Естественное изменение масштаба заключается в замене каждого варианта его вероятностью. Или, если ваша модель неполная, выберите преобразование, которое приблизительно достигает этого. В противном случае, вот связанный подход: если у вас есть много одномерных данных, из которых можно построить гистограмму (каждого изменения), вы можете преобразовать каждое из них в 10-балльную шкалу, основываясь на том, находится ли он в процентиле 0-10% или 10-20% - процентиль ... 90-100% процентиль. Эти преобразованные вариации по построению имеют равномерное распределение на 1,2, ..., 10, и вы можете комбинировать их по своему желанию.

1 голос
/ 28 июня 2012

Очень интересный вопрос. Может ли что-то вроде этой работы:

Предположим, что мы хотим масштабировать обе переменные в диапазоне [-1,1] Возьмите пример сединства между центром, который имеет диапазон 0-35000

  1. Выберите большое число в порядке диапазона переменной. В качестве примера давайте выберем 25000
  2. создать 25 000 ячеек в исходном диапазоне [0-35000] и 25 000 ячеек в новом диапазоне [-1,1]
  3. Для каждого числа х-я узнаю корзину №, она попадает в исходную корзину. Пусть это будет Б-я
  4. Найти диапазон B-i в диапазоне [-1,1].
  5. В качестве масштабной версии x-i используйте максимум / мин диапазона B-i в [-1,1].

Это сохраняет распределение по степенному закону, а также уменьшает его до [-1,1] и не имеет проблемы, с которой сталкивается (x-mean) /sd.

1 голос
/ 01 апреля 2009

вы можете перевести каждый в процент, а затем применить каждый к известному количеству. Затем используйте сумму нового значения.

((1 - (in_degee / 15) * 2000) + ((1 - (Между_Центральность / 35000) * 2000) =?

0 голосов
/ 01 апреля 2009

нормализация до [0,1] будет моей краткой рекомендацией по объединению двух значений, поскольку она будет поддерживать форму распределения, как вы упомянули, и должна решить проблему объединения значений.

если распределение двух переменных отличается, что звучит скорее всего, это не даст вам того, что вы думаете после, что является комбинированной мерой того, где каждая переменная находится в пределах данного распределения. вам нужно было бы придумать метрику, которая определяет, где в данном распределении лежит значение, это можно было бы сделать многими способами, одним из которых было бы определить, сколько стандартных отклонений от среднего значения данного значения вы могли бы затем объедините эти 2 значения, чтобы получить индекс. (дополнение может быть уже недостаточно)

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...