Учитывая коэффициенты логистической регрессии, рассчитанные в SSAS, создайте формулу для расчета непрерывного выходного значения

Я обучил простую модель логистической регрессии в SSAS, используя Gender и NIC в качестве дискретных входных узлов (NIC равен 0 для некурящих, 1 для курильщиков) с Score (0-100) в качестве непрерывного выходного узла.

Я хочу предсказать оценку, основанную на значениях нового участника для Пола и NIC. Конечно, я могу выполнить одноэлементный запрос в DMX; например, следующее выдает значение 49,51....

  SELECT Predict(Score) 
  FROM [MyModel]
  NATURAL PREDICTION JOIN 
  (SELECT 'M' AS Gender, '1' AS NIC) as t

Но вместо того, чтобы использовать DMX, я хочу создать формулу из модели, чтобы вычислять оценки, пока они "отключены" от SSAS.

Исследуя модель, у меня есть следующая информация в NODE_DISTRIBUTION выходного узла:

  ATTRIBUTE_NAME   ATTRIBUTE_VALUE    SUPPORT PROBABILITY    VARIANCE       VALUETYPE
  Gender:F         0.459923854        0       0              0              7 (Coefficient)
  Gender:M         0.273306289        0       0              0              7 (Coefficient)
  Nic:0            -0.282281195       0       0              0              7 (Coefficient)
  Nic:1            -0.802106901       0       0              0              7 (Coefficient)
                   0.013983007        0       0              0.647513829    7 (Coefficient)
  Score            75.03691517        0       0              0              3 (Continuous

Включение этих коэффициентов в формулу логистической регрессии - которую я запрещаю загружать как нового пользователя:) - для примера курящих мужчин выше,

  f(...) = 1 / (1 + exp(0 - (0.0139830071136734   -- Constant(?)
    + 0 * 0.459923853918008                       -- Gender:F = 0
    + 1 * 0.273306289390897                       -- Gender:M = 1
    + 1 * -0.802106900621717                      -- Nic:1 = 1
    + 0 * -0.282281195489355)))                   -- Nic:0 = 0

приводит к значению 0,374.... Но как мне "сопоставить" это значение с распределением баллов 0-100? Другими словами, как мне расширить приведенное выше уравнение, чтобы получить то же значение, что и одноэлементный запрос DMX? Я предполагаю, что это потребует stdev и среднее значение моего распределения Score, но я застрял на том, как именно использовать эти значения. Я также не уверен, правильно ли я использую ATTRIBUTE_VALUE в пятом ряду в качестве константы.

Мы будем благодарны за любую помощь, которую вы можете оказать!

2 ответа

Решение

Я не эксперт, но мне кажется, что вы вообще не хотите использовать логистическую регрессию. Вы хотите тренировать линейную регрессию. В настоящее время у вас есть модель логистической регрессии, обычно она используется для двоичной классификации, а не для непрерывных значений, т. Е. От 0 до 100.

Как сделать линейную регрессию в SAS

Википедия: линейная регрессия

более подробная информация: вопрос действительно зависит, как и большинство проблем, связанных с анализом данных / обучением машин, от ваших данных. Если ваши данные являются бимодальными, более 90% тренировочного набора очень близко к 1 или 100, тогда МОЖЕТ быть использована логистическая регрессия. Уравнение, используемое в логистической регрессии, специально разработано для предоставления ответов ДА / НЕТ. Технически это непрерывная функция, поэтому возможны такие результаты, как.34, но они статистически очень маловероятны (при обычном использовании вы бы округлили до 0).

Однако, если ваши данные нормально распределены (в большинстве случаев это так), лучшим методом является линейная регрессия. Единственная проблема в том, что он МОЖЕТ предсказать за пределами вашего диапазона 0-100, если дано особенно плохое значение данных. В этом случае лучше всего округлять (обрезать результат до 0-100) или игнорировать точку данных как выброс. В случае пола быстрым хаком было бы сопоставить мужчину с 0 и женщину с 1, а затем рассматривать пол в качестве входных данных для модели.

SSAS линейная регрессия

Вы не хотите использовать логистическую регрессию, если вы пытаетесь смоделировать оценку, ограниченную интервалом [0,100]. Логистическая регрессия используется для моделирования двоичных данных или пропорций на основе биномиального распределения. Предполагая, что функция логит-связи, которую вы на самом деле моделируете с помощью логистической регрессии, является функцией вероятности (log of odds), и поэтому весь процесс направлен на получение значений в интервале [0,1]. Попытка использовать это, чтобы сопоставить с оценкой, кажется, не является правильным типом анализа вообще.

Кроме того, я не могу понять, как регулярная линейная регрессия поможет вам, так как ваша подобранная модель будет способна генерировать значения далеко за пределами вашего целевого интервала [0,100], и если вам нужно выполнить специальное усечение значений до этого диапазона, то можете ли вы неужели вы уверены, что ваши данные имеют какое-то эффективное значение?

Я хотел бы иметь возможность указать вам тип анализа, который вам требуется, но я не сталкивался с этим типом анализа. Я бы посоветовал вам отказаться от подхода логистической регрессии и рассмотреть возможность присоединения к списку рассылки ALLSTAT, используемому профессиональными статистиками и математиками, и просить совета там. Или что-то подобное.

Другие вопросы по тегам