Как оценить верхнюю границу для логистической регрессии только от 5 до 7 точек данных?

11

У меня есть данные в форме . Для оценки от до я использую формулы этой статьи: Джон Фокс - Нелинейная регрессия и нелинейные наименьшие квадраты В этой статье оценивается путем просмотра данных. Если я это сделаю, это будет работать нормально, даже если у меня всего три очка. Из этого я могу рассчитать два других. Я проверил свои параметры с помощью nls () в R и LevenbergMarquardt в C #. Модели, возвращенные ими, удовлетворяют. β1β3β1y=β11+exp(β2+β3x)β1β3β1

Проблема в том, что я не хочу смотреть на данные, чтобы получить хорошую оценку для , я хочу, чтобы моя программа вычисляла их. Некоторое время я использовал значения, которые были немного выше максимума моих значений (что-то между и \ max * 1.5 . Это работало нормально, если точки покрывали большую часть функции. Это также работало нормально, если Точки данных находились где-то от «вершины» кривой, но когда все они пришли из области «ниже» точки перегиба, эта оценка была определенно ниже, чем должна быть, и я не смог бы соответствовать модели. Если я что-то использую это определенно выше максимальной точки (умножая ее на смехотворно высокие значения), модель не подходит никаким полезным способом.β1max1.1max1.5

Измерения могут выглядеть так:

x = (40, 50, 60, 70), y = (1000, 950, 400, 200) -> легко оценить

x = (40, 50, 60, 70), y = (1000, 950, 800, 100) -> легко оценить

х = (40, 50, 60, 70), у = (500, 200, 100, 50) -> не так легко оценить

Я думаю, я мог бы узнать, где я нахожусь в функции (внизу, вверху, на склоне), вычислив дельты в заданных точках и рассчитав верхнюю границу в зависимости от этого. У кого-нибудь есть подсказка для лучшего решения? Дополнительная информация: Если это невозможно сделать, для меня более важно, чтобы измерения, которые могут быть выполнены, были как можно более хорошими, и я принимаю, что некоторые измерения не могут быть выполнены вообще.

(хотя я хочу реализацию в C #, я разместил ее здесь, но я не думаю, что проблема зависит от языка)

обновление (применение этого):

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

обновление (некоторые составили данные с 7 точками данных и известной точкой перегиба на 60):

//first I made up some data without any noise and enough (13) points
double[] x17 = { 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90 };
double[] y17 = { 2000, 1920, 1820, 1700, 1500, 1280, 1000, 720, 500, 300, 180, 80, 0 };
//calculated inflection point: 59.642....

//Then I took three different parts of that data 
(to simulate how much data I will have in the real world)
double[] x18 = { 30, 35, 40, 45, 50, 55, 60 };
double[] y18 = { 2000, 1920, 1820, 1700, 1500, 1280, 1000 };
//calculated inflection point: 59.263.... is ok!

double[] x19 = { 60, 65, 70, 75, 80, 85, 90 };
double[] y19 = { 1000, 720, 500, 300, 180, 80, 0 };
//calculated inflection point: 53.447.... to small!

double[] x20 = { 45, 50, 55, 60, 65, 70, 75 };
double[] y20 = { 1700, 1500, 1280, 1000, 720, 500, 300 };
//calculated inflection point: 59.868... almost perfect!

Мой текущий подход для оценки верхней границы - y0 * y0 / y1. Таким образом, я надеюсь принять во внимание, что у меня не всегда может быть значение, близкое к максимальному.

обновление: значения x и y никогда не будут отрицательными. x всегда будет {40, 45, 50, 55, 60, 65, 70}, если точка данных не потеряна.

Обновление: я сделал много, много тестов с симулированными данными, которые должны быть легко вписаны (я выбираю точки данных, которые были точно на кривой = без шума), и я вижу, что это работает нормально, если только первая или вторая точка данных (где х = 40 или х = 45) отсутствует. Я думаю, мне придется отказаться от таких измерений, и пользователь должен будет жить с этим.

Верена Хауншмид
источник
С таким небольшим количеством баллов, я думаю, что ваша настоящая проблема заключается в неточности оценок, а не в том, как вы их рассчитываете.
Майкл Р. Черник
1
Проблема с последним примером состоит в том, что гораздо лучшее соответствие получается функцией вида (обратите внимание на отрицательный знак). Это приемлемое решение? Если нет, у вас останутся проблемы, потому что вам придется принимать решения на границе между двумя моделями (и это ужасно). y=β11exp(β2+β3x))
whuber
@MichaelChernick Полагаю, вы правы, проблема в том, что я никогда не получу больше 7 точек данных. Я думаю, что я должен выкинуть результаты с меньшими затратами. Я добавил тестовые случаи с результатами, которые должны быть одинаковыми. Есть ли место для улучшения или это ближе всего я могу получить?
Верена Хауншмид
@whuber Я попытался сопоставить данные с отрицательным знаком, но для каждого набора параметров я получил ошибку матрицы с единичным градиентом (в R). Какие оценки вы взяли? Я добавил информацию об области, в которой я ее использую, чтобы подчеркнуть, почему кривая должна выглядеть именно так. (Я еще не уверен, удовлетворяет ли ваша формула этим требованиям)
Verena Haunschmid
(1) В каких единицах находятся значения ? Если они могут быть отрицательными, то ваша модель, вероятно, не будет работать. (2) Что вы можете сказать нам о природе "шума" или ошибок в значениях ? Это может иметь решающее значение для подгонки. yy
whuber

Ответы:

1

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

Интуитивно понятно, что это решение основывается на предпосылке, что все логистические кривые с одинаковыми параметрами скорости и местоположения являются самоподобными, так что установка верхней границы просто означает «растяжение» сигмоидальной кривой до соответствующего максимума.

Sycorax говорит восстановить Монику
источник