Я бы посоветовал вам проверить, что ни одна из ваших переменных не является константой (то есть нет дисперсии). Если у вас все хорошо, проверьте, есть ли у вас комплексные переменные или бесконечные переменные.
Тристан
3
Обычно это означает, что одна или несколько ваших переменных не являются линейно независимыми, в этом случае проблемная переменная может быть выражена как комбинация других переменных. В пакете R caretесть функция, findLinearCombosкоторая скажет вам, какие из проблемных переменных.
richiemorrisroe
2
Я согласен с richiemorrisroe. Поскольку он говорит, что X'X не является положительно определенным, я думаю, что они подразумевают, что матрица дизайна X'X является единственной и, следовательно, не имеет полного ранга. Следовательно, по крайней мере один из ковариат может быть записан как точные линейные комбинации других ковариат.
Майкл Черник
Ответы:
123
Недостаток ранга в этом контексте говорит о том, что в ваших данных недостаточно информации для оценки желаемой модели. Это происходит из многих источников. Я расскажу здесь о моделировании в довольно общем контексте, а не в явной логистической регрессии, но все еще относится к конкретному контексту.
Недостаток может быть вызван просто слишком маленькими данными. В общем, вы не можете однозначно оценить n параметров с менее чем n точками данных. Это не означает, что все, что вам нужно, это n баллов, так как если в процессе есть какой-либо шум, вы получите довольно плохие результаты. Вам нужно больше данных, чтобы помочь алгоритму выбрать решение, которое будет представлять все данные в минимальном смысле ошибки. Вот почему мы используем инструменты наименьших квадратов. Сколько данных вам нужно? Мне всегда задавали этот вопрос в прошлой жизни, и ответ был больше, чем у вас, или столько, сколько вы можете получить. :)
Иногда у вас может быть больше данных, чем вам нужно, но некоторые (слишком много) точек являются копиями. Репликация ХОРОША в том смысле, что она помогает уменьшить шум, но не помогает увеличить числовой ранг. Итак, предположим, у вас есть только две точки данных. Вы не можете оценить уникальную квадратичную модель через точки. Миллион копий каждой точки по-прежнему не позволит вам уместиться больше, чем по прямой линии, через которую все еще остается только пара точек. По сути, репликация не добавляет информационного контента. Все, что он делает, это уменьшает шум в местах, где у вас уже есть информация.
Иногда у вас есть информация в неправильных местах. Например, вы не можете подогнать двумерную квадратичную модель, если все, что у вас есть, это точки, которые все лежат на одной прямой в двух измерениях. То есть предположим, что у вас есть точки, рассеянные только вдоль линии x = y на плоскости, и вы хотите подобрать модель для поверхности z (x, y). Даже имея миллионы точек (даже не повторяющихся), у вас будет достаточно информации, чтобы разумно оценить больше, чем постоянную модель. Удивительно, но это общая проблема, которую я видел в выборочных данных. Пользователь задается вопросом, почему он не может построить хорошую модель. Проблема встроена в те самые данные, которые они выбрали.
Иногда это просто выбор модели. Это можно рассматривать как «недостаточно данных», но с другой стороны. Вы хотите оценить сложную модель, но предоставили недостаточно данных для этого.
Во всех вышеперечисленных случаях ответ заключается в том, чтобы получить больше данных, интеллектуально выбранных из мест, которые предоставят информацию о процессе, который вам не хватает в настоящее время. Планирование экспериментов - хорошее место для начала.
Однако даже хорошие данные иногда неадекватны, по крайней мере, численно. (Почему плохие вещи случаются с хорошими данными?) Проблема может быть связана с моделью. Это может быть не более чем плохой выбор единиц. Это может быть связано с компьютерным программированием, выполненным для решения проблемы. (Тьфу! С чего начать?)
Во-первых, давайте поговорим о единицах и масштабировании. Предположим, я пытаюсь решить проблему, когда одна переменная на МНОГО порядков больше другой. Например, предположим, что у меня есть проблема, связанная с моим ростом и размером обуви. Я буду измерять мой рост в нанометрах. Таким образом, мой рост будет примерно 1,78 миллиарда (1,78e9) нанометров. Конечно, я выберу размер своей обуви в килопарсеках, так что 9,14e-21 килопарсеков. Когда вы делаете регрессионное моделирование, линейная регрессия - это все о линейной алгебре, которая включает в себя линейные комбинации переменных. Проблема здесь в том, что эти числа отличаются на огромное количество порядков (и даже не одинаковыми единицами). Математика потерпит неудачу, когда компьютерная программа попытается сложить и вычесть числа, которые различаются на столько порядков (для двойной точности). номер,
Хитрость заключается в том, чтобы использовать общие единицы, но в некоторых случаях проблема возникает даже тогда, когда переменные изменяются на слишком много порядков. Более важным является масштабирование ваших чисел, чтобы они были похожи по величине.
Далее вы можете увидеть проблемы с большими числами и небольшими отклонениями в этих числах. Таким образом, предположим, что вы пытаетесь построить полиномиальную модель умеренно высокого порядка с данными, где все ваши входные данные лежат в интервале [1,2]. Квадрат, кубирование и т. Д. Числа порядка 1 или 2 не вызовут проблем при работе с арифметикой двойной точности. Или добавьте 1e12 к каждому номеру. Теоретически математика позволит это. Все, что он делает, это смещает любую полиномиальную модель, которую мы строим на оси X. Он будет иметь точно такую же форму, но будет переведен на 1e12 вправо. На практике линейная алгебра потерпит неудачу из-за проблем с рангом. Вы ничего не сделали, кроме перевода данных, но внезапно вы начинаете видеть, как появляются особые матрицы.
Обычно сделанный комментарий будет предложением «центрировать и масштабировать ваши данные». Фактически это говорит о смещении и масштабировании данных так, чтобы они имели среднее значение около нуля и стандартное отклонение, равное примерно 1. Это значительно улучшит кондиционирование большинства полиномиальных моделей, уменьшая проблемы дефицита ранга.
Существуют и другие причины недостаточного ранга. В некоторых случаях он встроен непосредственно в модель. Например, предположим, что я предоставляю производную функции, могу ли я однозначно вывести саму функцию? Конечно, нет, поскольку интеграция включает в себя константу интеграции, неизвестный параметр, который обычно определяется знанием значения функции в некоторой точке. Фактически, это иногда возникает и в задачах оценки, где особенность системы вытекает из фундаментальной природы исследуемой системы.
Я, конечно, не учел некоторые из многих причин недостаточного ранга в линейной системе, и я слишком долго болтал. Надеюсь, мне удалось объяснить те, о которых я рассказывал, простыми терминами и способом облегчить проблему.
Чтобы определить ранг матрицы, вы можете обратиться к любому хорошему учебнику по линейной алгебре или взглянуть на страницу Википедии .
матрица называется полный ранг , если , и ее столбцы не являются линейной комбинацией друг друга. В этом случае матрица является положительно определенной, что означает, что она имеет обратную .n×pXn≥pp×pXTX(XTX)−1
Если не полный ранг, один из столбцов полностью объясняется другими в том смысле, что он представляет собой линейную комбинацию других. Тривиальный пример, когда столбец дублируется. Это также может произойти, если у вас есть переменная 0-1, а столбец состоит только из 0 или только 1. В этом случае ранг матрицы меньше а не имеет обратного.XXnXTX
Поскольку решение многих задач регрессии (в том числе логистической регрессии) требует промежуточного вычисления , тогда невозможно оценить параметры модели. Из любопытства, вы можете проверить здесь , как этот термин участвует в формуле множественной линейной регрессии.(XTX)−1
Это было из-за недостатка абсолютного ранга. Но иногда проблема проявляется, когда матрица «почти» не имеет полного ранга, как подробно описано @woodchips. Эта проблема обычно упоминается как мультиколлинеарность . Эта проблема довольно распространена, вы можете узнать больше о том, как с ней бороться, в соответствующих публикациях здесь и там .X
Ответ user974 фантастический с точки зрения моделирования, а gui11aume - фантастический с математической точки зрения. Я хочу уточнить первый ответ строго с точки зрения смешанного моделирования: в частности, с точки зрения обобщенного смешанного моделирования (GLMM). Как видите, вы ссылались на функцию R, mer_finalizeкоторая находится в фантастическом lme4пакете. Вы также говорите, что подходите к модели логистической регрессии.
Есть много проблем, которые возникают с такими типами численных алгоритмов. Вопрос о матричной структуре модельной матрицы фиксированных эффектов, безусловно, заслуживает рассмотрения, как отметил пользователь 974. Но это очень легко оценить, просто вычислите model.matrixсвои аргументы formula=и data=аргументы в модели и определите ее с помощью detфункции. Случайные эффекты, однако, значительно усложняют интерпретацию, процедуру численной оценки и вывод о фиксированных эффектах (то, что вы обычно воспринимаете как коэффициенты регрессии в «обычной» модели регрессии).
Предположим, что в простейшем случае вам подходит только модель случайных перехватов. Тогда вы в основном рассматриваете наличие тысяч неизмеренных источников неоднородности, которые постоянно повторяются в кластерах. Вы оцениваете «большой» перехват, но учитываете неоднородность, предполагая, что перехваты, специфичные для кластера, имеют некоторое среднее нормальное распределение. Перехваты оцениваются итеративно и используются для обновления эффектов модели до тех пор, пока не будет достигнута сходимость (логарифмическая вероятность - или ее приближение - максимизирована). Смешанную модель очень легко представить, но математически вероятность очень сложна и подвержена проблемам с особенностями, локальными минимумами и граничными точками (отношение шансов = 0 или бесконечность). Смешанные модели не имеют квадратичной вероятности, как канонические GLM.
К сожалению, Venerables и Ripley не вкладывали много средств в диагностику сбоев, таких как ваша. Практически невозможно даже предположить множество возможных ошибок, приводящих к такому сообщению. Рассмотрим типы диагностики, которые я использую ниже:
Сколько наблюдений существует на кластер?
Каковы результаты применения маржинальной модели с использованием GEE?
Что такое ICC кластеров? Является ли внутрикластерная гетерогенность близкой к гетерогенности между кластерами?
Установите 1-ступенчатый оценщик и посмотрите на предполагаемые случайные эффекты. Они примерно нормальные?
Подберите байесовскую смешанную модель и посмотрите на заднее распределение для фиксированных эффектов. У них, кажется, есть приблизительно нормальное распределение?
Посмотрите на групповой график кластеров, показывающих воздействие или регрессор интереса на результат с использованием сглаживателя. Являются ли тенденции последовательными и четкими, или есть много возможных способов объяснения таких тенденций? (например, каков «риск» среди неэкспонированных объектов, является ли воздействие защитным или вредным?)
Можно ли ограничить выборку только субъектами, имеющими достаточное количество наблюдений на человека (скажем, n = 5 или n = 10), чтобы оценить «идеальный» эффект лечения?
Кроме того, вы можете рассмотреть несколько различных подходов к моделированию:
Достаточно ли мало кластеров или временных точек, чтобы вы могли использовать фиксированный эффект (например, групповые индикаторы или полиномиальный эффект времени) для моделирования уровня кластера / авторегрессионной неоднородности?
Подходит ли предельная модель (использование GEE для повышения эффективности стандартной оценки ошибок, но при этом используются только фиксированные эффекты)
Может ли байесовская модель с информативным априором о случайных эффектах улучшить оценку?
caret
есть функция,findLinearCombos
которая скажет вам, какие из проблемных переменных.Ответы:
Недостаток ранга в этом контексте говорит о том, что в ваших данных недостаточно информации для оценки желаемой модели. Это происходит из многих источников. Я расскажу здесь о моделировании в довольно общем контексте, а не в явной логистической регрессии, но все еще относится к конкретному контексту.
Недостаток может быть вызван просто слишком маленькими данными. В общем, вы не можете однозначно оценить n параметров с менее чем n точками данных. Это не означает, что все, что вам нужно, это n баллов, так как если в процессе есть какой-либо шум, вы получите довольно плохие результаты. Вам нужно больше данных, чтобы помочь алгоритму выбрать решение, которое будет представлять все данные в минимальном смысле ошибки. Вот почему мы используем инструменты наименьших квадратов. Сколько данных вам нужно? Мне всегда задавали этот вопрос в прошлой жизни, и ответ был больше, чем у вас, или столько, сколько вы можете получить. :)
Иногда у вас может быть больше данных, чем вам нужно, но некоторые (слишком много) точек являются копиями. Репликация ХОРОША в том смысле, что она помогает уменьшить шум, но не помогает увеличить числовой ранг. Итак, предположим, у вас есть только две точки данных. Вы не можете оценить уникальную квадратичную модель через точки. Миллион копий каждой точки по-прежнему не позволит вам уместиться больше, чем по прямой линии, через которую все еще остается только пара точек. По сути, репликация не добавляет информационного контента. Все, что он делает, это уменьшает шум в местах, где у вас уже есть информация.
Иногда у вас есть информация в неправильных местах. Например, вы не можете подогнать двумерную квадратичную модель, если все, что у вас есть, это точки, которые все лежат на одной прямой в двух измерениях. То есть предположим, что у вас есть точки, рассеянные только вдоль линии x = y на плоскости, и вы хотите подобрать модель для поверхности z (x, y). Даже имея миллионы точек (даже не повторяющихся), у вас будет достаточно информации, чтобы разумно оценить больше, чем постоянную модель. Удивительно, но это общая проблема, которую я видел в выборочных данных. Пользователь задается вопросом, почему он не может построить хорошую модель. Проблема встроена в те самые данные, которые они выбрали.
Иногда это просто выбор модели. Это можно рассматривать как «недостаточно данных», но с другой стороны. Вы хотите оценить сложную модель, но предоставили недостаточно данных для этого.
Во всех вышеперечисленных случаях ответ заключается в том, чтобы получить больше данных, интеллектуально выбранных из мест, которые предоставят информацию о процессе, который вам не хватает в настоящее время. Планирование экспериментов - хорошее место для начала.
Однако даже хорошие данные иногда неадекватны, по крайней мере, численно. (Почему плохие вещи случаются с хорошими данными?) Проблема может быть связана с моделью. Это может быть не более чем плохой выбор единиц. Это может быть связано с компьютерным программированием, выполненным для решения проблемы. (Тьфу! С чего начать?)
Во-первых, давайте поговорим о единицах и масштабировании. Предположим, я пытаюсь решить проблему, когда одна переменная на МНОГО порядков больше другой. Например, предположим, что у меня есть проблема, связанная с моим ростом и размером обуви. Я буду измерять мой рост в нанометрах. Таким образом, мой рост будет примерно 1,78 миллиарда (1,78e9) нанометров. Конечно, я выберу размер своей обуви в килопарсеках, так что 9,14e-21 килопарсеков. Когда вы делаете регрессионное моделирование, линейная регрессия - это все о линейной алгебре, которая включает в себя линейные комбинации переменных. Проблема здесь в том, что эти числа отличаются на огромное количество порядков (и даже не одинаковыми единицами). Математика потерпит неудачу, когда компьютерная программа попытается сложить и вычесть числа, которые различаются на столько порядков (для двойной точности). номер,
Хитрость заключается в том, чтобы использовать общие единицы, но в некоторых случаях проблема возникает даже тогда, когда переменные изменяются на слишком много порядков. Более важным является масштабирование ваших чисел, чтобы они были похожи по величине.
Далее вы можете увидеть проблемы с большими числами и небольшими отклонениями в этих числах. Таким образом, предположим, что вы пытаетесь построить полиномиальную модель умеренно высокого порядка с данными, где все ваши входные данные лежат в интервале [1,2]. Квадрат, кубирование и т. Д. Числа порядка 1 или 2 не вызовут проблем при работе с арифметикой двойной точности. Или добавьте 1e12 к каждому номеру. Теоретически математика позволит это. Все, что он делает, это смещает любую полиномиальную модель, которую мы строим на оси X. Он будет иметь точно такую же форму, но будет переведен на 1e12 вправо. На практике линейная алгебра потерпит неудачу из-за проблем с рангом. Вы ничего не сделали, кроме перевода данных, но внезапно вы начинаете видеть, как появляются особые матрицы.
Обычно сделанный комментарий будет предложением «центрировать и масштабировать ваши данные». Фактически это говорит о смещении и масштабировании данных так, чтобы они имели среднее значение около нуля и стандартное отклонение, равное примерно 1. Это значительно улучшит кондиционирование большинства полиномиальных моделей, уменьшая проблемы дефицита ранга.
Существуют и другие причины недостаточного ранга. В некоторых случаях он встроен непосредственно в модель. Например, предположим, что я предоставляю производную функции, могу ли я однозначно вывести саму функцию? Конечно, нет, поскольку интеграция включает в себя константу интеграции, неизвестный параметр, который обычно определяется знанием значения функции в некоторой точке. Фактически, это иногда возникает и в задачах оценки, где особенность системы вытекает из фундаментальной природы исследуемой системы.
Я, конечно, не учел некоторые из многих причин недостаточного ранга в линейной системе, и я слишком долго болтал. Надеюсь, мне удалось объяснить те, о которых я рассказывал, простыми терминами и способом облегчить проблему.
источник
Чтобы определить ранг матрицы, вы можете обратиться к любому хорошему учебнику по линейной алгебре или взглянуть на страницу Википедии .
матрица называется полный ранг , если , и ее столбцы не являются линейной комбинацией друг друга. В этом случае матрица является положительно определенной, что означает, что она имеет обратную .n×p X n≥p p×p XTX (XTX)−1
Если не полный ранг, один из столбцов полностью объясняется другими в том смысле, что он представляет собой линейную комбинацию других. Тривиальный пример, когда столбец дублируется. Это также может произойти, если у вас есть переменная 0-1, а столбец состоит только из 0 или только 1. В этом случае ранг матрицы меньше а не имеет обратного.X X n XTX
Поскольку решение многих задач регрессии (в том числе логистической регрессии) требует промежуточного вычисления , тогда невозможно оценить параметры модели. Из любопытства, вы можете проверить здесь , как этот термин участвует в формуле множественной линейной регрессии.(XTX)−1
Это было из-за недостатка абсолютного ранга. Но иногда проблема проявляется, когда матрица «почти» не имеет полного ранга, как подробно описано @woodchips. Эта проблема обычно упоминается как мультиколлинеарность . Эта проблема довольно распространена, вы можете узнать больше о том, как с ней бороться, в соответствующих публикациях здесь и там .X
источник
Ответ user974 фантастический с точки зрения моделирования, а gui11aume - фантастический с математической точки зрения. Я хочу уточнить первый ответ строго с точки зрения смешанного моделирования: в частности, с точки зрения обобщенного смешанного моделирования (GLMM). Как видите, вы ссылались на функцию R,
mer_finalize
которая находится в фантастическомlme4
пакете. Вы также говорите, что подходите к модели логистической регрессии.Есть много проблем, которые возникают с такими типами численных алгоритмов. Вопрос о матричной структуре модельной матрицы фиксированных эффектов, безусловно, заслуживает рассмотрения, как отметил пользователь 974. Но это очень легко оценить, просто вычислите
model.matrix
свои аргументыformula=
иdata=
аргументы в модели и определите ее с помощьюdet
функции. Случайные эффекты, однако, значительно усложняют интерпретацию, процедуру численной оценки и вывод о фиксированных эффектах (то, что вы обычно воспринимаете как коэффициенты регрессии в «обычной» модели регрессии).Предположим, что в простейшем случае вам подходит только модель случайных перехватов. Тогда вы в основном рассматриваете наличие тысяч неизмеренных источников неоднородности, которые постоянно повторяются в кластерах. Вы оцениваете «большой» перехват, но учитываете неоднородность, предполагая, что перехваты, специфичные для кластера, имеют некоторое среднее нормальное распределение. Перехваты оцениваются итеративно и используются для обновления эффектов модели до тех пор, пока не будет достигнута сходимость (логарифмическая вероятность - или ее приближение - максимизирована). Смешанную модель очень легко представить, но математически вероятность очень сложна и подвержена проблемам с особенностями, локальными минимумами и граничными точками (отношение шансов = 0 или бесконечность). Смешанные модели не имеют квадратичной вероятности, как канонические GLM.
К сожалению, Venerables и Ripley не вкладывали много средств в диагностику сбоев, таких как ваша. Практически невозможно даже предположить множество возможных ошибок, приводящих к такому сообщению. Рассмотрим типы диагностики, которые я использую ниже:
Кроме того, вы можете рассмотреть несколько различных подходов к моделированию:
источник