Какой алгоритм использовать для процентных функций в моих DV и IV, в регрессии? - PullRequest
0 голосов
/ 08 июля 2019

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

Некоторые из моих IV (независимых переменных) или Xs представлены в процентах, таких как% времени,% ядер,% используемого ресурса, в то время какдругие в числах, таких как количество байтов и т. д.

Я стандартизировал все свои X с (X-X_mean)/X_stddev.(Я неправ в этом?)

Какой алгоритм мне следует использовать в Python, если мои IV представляют собой комбинацию чисел и% s, и я прогнозирую Y в следующих случаях:

Случай 1: Прогноз непрерывного значения Y

a. Достаточно ли будет использовать регрессию Лассо?

b.Как мне интерпретировать X-коэффициент, если X стандартизирован и является числовым значением?

c.Как мне интерпретировать X-коэффициент, если X стандартизирован и является%?

Случай 2: Прогнозировать Y-значное значение Y, например, «% resource used».

a.Должен ли я использовать бета-регрессию?Если да, то какой пакет в Python предлагает это?

b.Как мне интерпретировать X-коэффициент, если X стандартизирован и является числовым значением?

c.Как мне интерпретировать X-коэффициент, если X стандартизирован и является%?

Если я ошибаюсь в стандартизации X, которые уже являются%, нормально ли использовать эти числа как 0,30 для 30%, чтобы они попадали в диапазон 0-1?Таким образом, это означает, что я не стандартизирую их, я все равно буду стандартизировать другие числовые IV.

Конечная цель для обоих случаев 1 и 2:

Чтобы найти% воздействия IVна Y. напр .: Когда X1 увеличивается на 1 единицу, Y увеличивается на 21%

Из других сообщений я понимаю, что мы НИКОГДА не можем суммировать все коэффициенты в сумме до 100, чтобы оценить% воздействиякаждого IV на DV.Я надеюсь, что я прав в этом отношении.

Ответы [ 2 ]

1 голос
/ 09 июля 2019

Наличие комбинации предикторов не имеет значения для любой формы регрессии, это только изменит то, как вы интерпретируете коэффициенты. Однако имеет значение тип / распределение вашей переменной Y

Случай 1: прогнозирование непрерывного значения Y А. Достаточно ли будет использовать регрессию Лассо?

Регулярная регрессия OLS будет работать нормально для этого

б. Как мне интерпретировать X-коэффициент, если X стандартизирован и является числовое значение?

Интерпретация коэффициентов всегда следует формату, как «для изменения X на 1 единицу мы ожидаем величину изменения коэффициента x в Y, сохраняя остальные предикторы постоянными»

Поскольку у вас есть стандартизированный X, ваше подразделение является стандартным отклонением. Таким образом, интерпретация будет звучать так: «для изменения стандартного отклонения в 1 на X мы ожидаем, что величина изменения коэффициента X в Y ...»

с. Как мне интерпретировать X-коэффициент, если X стандартизирован и является %?

То же, что и выше. Ваши единицы все еще являются стандартными отклонениями, несмотря на то, что изначально они составляли процент

Случай 2: предсказать Y-значное значение Y, например,% используемого ресурса.

а. Должен ли я использовать бета-регрессию? Если так, какой пакет в Python предлагает это?

Это сложно. Типичная рекомендация состоит в том, чтобы использовать что-то вроде биномиальной логистической регрессии, когда ваш результат Y в процентах.

б. Как мне интерпретировать X-коэффициент, если X стандартизирован и является числовое значение?

с. Как мне интерпретировать X-коэффициент, если X стандартизирован и является %?

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

Если я ошибаюсь в стандартизации X, которые уже являются%, штрафа использовать эти цифры как 0,30 на 30%, чтобы они попадали в диапазон 0-1? Так что это означает, что я не стандартизирую их, я буду по-прежнему стандартизировать другие числовые IV.

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

Окончательная цель для обоих случаев 1 и 2:

Чтобы найти% воздействия IV на Y. Например: когда X1 увеличивается на 1 единицу, Y увеличивается на 21%

Если ваш Y в процентах, и вы используете что-то вроде регрессии OLS, то именно так вы и будете интерпретировать коэффициенты (при изменении на 1 единицу в X1 Y изменяется на несколько процентов)

0 голосов
/ 13 июля 2019

Ваш вопрос сбивает с толку некоторые понятия и смешивает много терминологии.По сути, вы спрашиваете о а) предварительной обработке признаков для (линейной) регрессии, б) интерпретируемости коэффициентов линейной регрессии и в) анализе чувствительности (влияние функции X_i на Y) .Но будьте осторожны, потому что вы делаете огромное предположение, что Y линейно зависит от каждого X_i, см. Ниже.

  1. Стандартизация - это не «алгоритм», а просто метод предварительной обработки данных.
  2. Стандартизация необходима для регрессии, но она не требуется для алгоритмов на основе дерева (RF / XGB / GBT) - с ними вы можете напрямую вводить необработанные числовые функции (проценты, итоги, что угодно).
  3. (X-X_mean)/X_stddev - это не стандартизация, это нормализация.
    • (Альтернативой этому является (true) стандартизация , которая: (X-X_min)/(X_max-X_min), который преобразует каждую переменную в диапазон [0,1], или вы можете преобразовать в [0,1].
  4. В последний раз вы спрашиваете о анализе чувствительности в регрессии: Можем ли мы напрямую интерпретировать коэффициент регрессии для X_i как чувствительность Y к X_i?
    • Остановитесь и подумайте о вашем базовом допущении о линейности в "Окончательная цель для обоих случаев 1 и 2:найти% воздействияIVs на Y. Например: когда X1 увеличивается на 1 единицу, Y увеличивается на 21% ".
    • вы предполагаете, что зависимая переменная имеет линейную зависимость с каждой независимой переменной.Но это часто не так, это может быть нелинейным .Например, если вы посмотрите на влияние «Возраст» на зарплату, вы, как правило, увидите, что оно увеличивается до 40/50, затем постепенно уменьшается, а когда вы достигаете пенсионного возраста (скажем, 65), резко уменьшается.
    • так, вы бы смоделировали эффект возраста на зарплату как квадратичный или многочлен более высокого порядка, добавив в терминах возраст ^ 2 и, возможно, возраст ^ 3 (иначе иногда вы можете увидеть sqrt(X), log(X), log1p(X), exp(X) и т. Д. Все, что лучше всего отражает нелинейные отношения. Вы также можете увидеть термины взаимодействия переменная-переменная, хотя регрессия строго предполагает, что переменные не коррелируют друг с другом.)
    • очевидно, возраст имеетогромное влияние на зарплату, но мы не будем измерять чувствительность зарплаты к возрасту, комбинируя (абсолютное значение) коэффициенты возраста, возраста ^ 2, возраста ^ 3.
    • , если бы у нас был только линейный члендля возраста единый коэффициент для возраста в значительной степени преуменьшает влияние возраста на заработную плату, он будет "усреднять" сильные положительные отношения fили режим Age <40 против отрицательных отношений для Age> 50
  5. Итак общий ответ на вопрос «Можем ли мы интерпретировать коэффициент регрессии для X_i как чувствительность Y кX_i?» «Только если связь между Y и X_i линейна, в противном случае - нет» .
  6. В общем, лучший и более простой способ анализа чувствительности (безПредполагая линейный отклик или требуя стандартизации% функций), используются древовидные алгоритмы (RF / XGB / GBT) , которые генерируют значения функций .
    • Кроме того, я понимаю, что ваше упражнение подсказывает вам использовать регрессию, но в целом вы получаете более быструю информацию о важности функций из древовидной (RF / XGB), особенно для мелкого дерева (небольшое значение дляmax_depth, большое значение размера узла, например> 0,1% от размера набора обучения).Вот почему люди используют его, даже когда их конечной целью является регрессия.

(Ваш вопрос будет получить лучшие ответы на CrossValidated , но это нормальночтобы выйти вот на ТА, есть кроссовер).

...