Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Нелинейная регрессия
Форум врачей-аспирантов > Разделы форума > Медицинская статистика
Страницы: 1, 2
Pinus
Стал разбираться с оценкой параметров функций роста.
В Statistica в модуле Nonlinear Estimation есть раздел получения МНК-оценок параметров пользовательских функций (User-specified regression, least squares). Предлагаются два итерационных метода: Gauss-Newton (Гаусса-Ньютона) и Levenberg-Marquardt (Левенберга-Маркварта).
Нашел книгу с неплохим описанием этих методов, на которую многие ссылаются:
Дэннис Д., Шнабель Р. Численные методы безусловной оптимизации и решения нелинейных уравнений. ? М.: Мир, 1988. ? 440 с. (есть в инете).
Также ссылаются на:
Бард Й. Нелинейное оценивание параметров. ? М.: Статистика, 1979. ? 349 с.
Демиденко Е.З. Линейная и нелинейная регрессии. ? М.: Финансы и статистика, 1981. ? 302 с.
Эти книги в инете не нашел.

Методы по своим характеристикам близки, однако Levenberg-Marquardt отдается предпочтение. Оба метода являются локально сходящимися. В связи с этим возникает вопрос выбора стартовых значений. Существуют ли какие-либо подходы определения локальной области?
Игорь
Цитата(Pinus @ 12.01.2010 - 14:17) *
Стал разбираться с оценкой параметров функций роста.
В Statistica в модуле Nonlinear Estimation есть раздел получения МНК-оценок параметров пользовательских функций (User-specified regression, least squares). Предлагаются два итерационных метода: Gauss-Newton (Гаусса-Ньютона) и Levenberg-Marquardt (Левенберга-Маркварта).
Нашел книгу с неплохим описанием этих методов, на которую многие ссылаются:
Дэннис Д., Шнабель Р. Численные методы безусловной оптимизации и решения нелинейных уравнений. ? М.: Мир, 1988. ? 440 с. (есть в инете).
Также ссылаются на:
Бард Й. Нелинейное оценивание параметров. ? М.: Статистика, 1979. ? 349 с.
Демиденко Е.З. Линейная и нелинейная регрессии. ? М.: Финансы и статистика, 1981. ? 302 с.
Эти книги в инете не нашел.

Дэннис-Шнабель - хорошая книга. Но лучше возьмите вот этот источник (встречается в электронной форме):
Носач В.В. Решение задач аппроксимации с помощью персональных компьютеров. - М.: МИКАП, 1994
Цитата(Pinus @ 12.01.2010 - 14:17) *
Методы по своим характеристикам близки, однако Levenberg-Marquardt отдается предпочтение.

Для данного типа задач (пользовательская функция), по-моему, лучше метод Бройдена-Флетчера-Голдфарба-Шанно - BFGS (у Носача неточно назван - Дэвидона-Флетчера-Пауэлла).
Цитата(Pinus @ 12.01.2010 - 14:17) *
Оба метода являются локально сходящимися. В связи с этим возникает вопрос выбора стартовых значений. Существуют ли какие-либо подходы определения локальной области?

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

Поэкспериментировать с пользовательской функцией можно в модуле "Аппроксимация..." ПО AtteStat, хотя там не регрессионный анализ (с вычислением ошибок и ДИ), конечно, а именно аппроксимация: задаются массивы абсцисс и ординат, а также, с точностью до коэффициентов, предполагаемый вид зависимости. Задача - найти коэффициенты. Формула может включать в себя любые допустимые, с точки зрения машины вычислений Excel, функции. Дополнительно в Справочной системе указанного модуле есть кое-какие теоретические соображения и ссылки.
По поводу, как дополнить функционал AtteStat для вычисления хотя бы ошибок и ДИ параметров. Это не представляет сложности, ибо можно вывести матрицу Гессе (кстати, еще одно преимущество BFGS - матрицу Гессе можно не считать отдельно, как в упомянутых Вами и прочих методах в программе Statistica http://www.statsoft.ru/HOME/TEXTBOOK/modul...lin.html#nstart, т.к. обращенная матрица Гессе в BFGS участвует в процессе) на последнем шаге итераций = дисперсии-ковариации. Отсюда стандартные ошибки, ДИ и все такое.
Pinus
Игорь, спасибо за книгу и советы!
По поводу локальной области: нашел похожие работы с коэффициентами. Задал близкие к ним, получил расчет, потом задал еще раз близкие к расчетным - изменения в коэффициентах стали только в 4-5 знаке.
В Attestate уже попробовал, но почему-то не получается (вроде бы все делаю согласно справке). Если стартовые значения параметров нулевые, то в ячейке (Функция) ПО пишет #ДЕЛ/0! (деление на ноль), а в результате расчета выдает (Неверная формула. Расчет не выполнен.). Если задать стартовые значения, то в результате расчета выдает (Ошибка вычисления модели).
Пример для функции Митчерлиха (Дракина-Вуевского): Y=b0*(1-exp(-X/b1))^b2, где Y - высота насаждений; X - возраст. Стартовые значения параметров: b0=20; b1=20; b2=1,5.
Расчетные параметры по Levenberg-Marquardt (в Statistica), при ε = 1,0*E-6: b0=22,34861; b1=35,26573; b2=1,47696.
Игорь
Цитата(Pinus @ 13.01.2010 - 01:28) *
Игорь, спасибо за книгу и советы!
По поводу локальной области: нашел похожие работы с коэффициентами. Задал близкие к ним, получил расчет, потом задал еще раз близкие к расчетным - изменения в коэффициентах стали только в 4-5 знаке.
В Attestate уже попробовал, но почему-то не получается (вроде бы все делаю согласно справке). Если стартовые значения параметров нулевые, то в ячейке (Функция) ПО пишет #ДЕЛ/0! (деление на ноль), а в результате расчета выдает (Неверная формула. Расчет не выполнен.). Если задать стартовые значения, то в результате расчета выдает (Ошибка вычисления модели).
Пример для функции Митчерлиха (Дракина-Вуевского): Y=b0*(1-exp(-X/b1))^b2, где Y - высота насаждений; X - возраст. Стартовые значения параметров: b0=20; b1=20; b2=1,5.
Расчетные параметры по Levenberg-Marquardt (в Statistica), при ε = 1,0*E-6: b0=22,34861; b1=35,26573; b2=1,47696.

Да нет, получается все. Только нужно задавать очень близкие к истинным начальные значения. BFGS использует вторые производные, а в функции - степень неизвестного параметра - очень нехорошая ситуация для численного метода. Лучше всего добавить в AtteStat один из методов, вторые производные не использующих, чтобы у пользователя был выбор. Также дать возможность выбора требуемой точности и иных параметров расчета.
Pinus
Цитата(Игорь @ 13.01.2010 - 18:02) *
Да нет, получается все. Только нужно задавать очень близкие к истинным начальные значения. BFGS использует вторые производные, а в функции - степень неизвестного параметра - очень нехорошая ситуация для численного метода.

Нет, у меня не получается даже со стартовыми, имеющими точность до третьего знака. Параметры, которые получены в Statistica, дают R^2=0,88 и кривая на диаграмме рассеяния проходит там где следует.
Pinus
Может быть кто-нибудь сталкивался, в каких пакетах на одном графике можно получить несколько диаграмм рассеяния:
1. с МНК-аппроксимациями пользовательскими функциями?
2. с возможностью накладывать функции с параметрами, заданными пользователем?
Pinus
По поводу доверительных интервалов при нелинейной регрессии. Более-менее понятно написано у Афифи А. Статистический анализ. Подход с использованием ЭВМ., 1982. на с. 210, и есть пример. Для определения доверительного интервала для среднего (предсказанного) значения Y при выборочных фиксированных значениях X(i) используется стандартное отклонение для предсказанных значений - sd(Yi). Не ясно, как его определять. Неужели по выборочным повторным наблюдениям для каждого X(i)? Кто как думает?
В каких еще источниках об этом толково можно почитать?
Игорь
Цитата(Pinus @ 14.01.2010 - 04:32) *
Нет, у меня не получается даже со стартовыми

Методом Ньютона-Гаусса (AtteStat, начиная с версии 10.11.5) воспользуйтесь.
Цитата(Pinus @ 14.01.2010 - 03:37) *
Может быть кто-нибудь сталкивался, в каких пакетах на одном графике можно получить несколько диаграмм рассеяния:
1. с МНК-аппроксимациями пользовательскими функциями?
2. с возможностью накладывать функции с параметрами, заданными пользователем?

Посмотрите http://www.alentum.com/agrapher/. Можно более раннюю версию поискать. Раньше, помнится, она была бесплатная и на русском языке (http://downloads.ru/win/5206.hts, http://iu4-x2-2007.ucoz.ru/load/11-1-0-33). Хотя могу ошибаться. Может, это разные проекты.
Pinus
Игорь, большое спасибо!
Игорь
Доступна новая версия 12.0.1 программы AtteStat с полноценным регрессионным анализом (а не "элементами", как было раньше).

Графики пользовательских функций можно легко строить в Excel. Т.к. графики в Excel - это отображение ячеек рабочего листа, то можно поступить следующим образом.
1. Ввести аргументы - столбец X. Пусть первая ячейка - A1.
2. Ввести в первую ячейку (пусть B1) столбца Y формулу - функцию от X, аргументом указав первую ячейку столбца Y. Например, нужно построить функцию Exp(x). Вводим: =EXP(A1)
3. Ткнуть мышкой в правый нижний угол первой ячейки столбца Y (при этом курсов примет вид +) и протащить по всему столбцу Y. Столбец заполнится формулами. При этом все ссылки на ячейки столбца X автоматически установятся.
4. Стандартно вывести график.

Собственно, так и делает AtteStat, но методами VBA и на основе рассчитанной регрессии.
Цитата(Pinus @ 16.01.2010 - 10:39) *
По поводу доверительных интервалов при нелинейной регрессии. Более-менее понятно написано у Афифи А. Статистический анализ. Подход с использованием ЭВМ., 1982. на с. 210, и есть пример. Для определения доверительного интервала для среднего (предсказанного) значения Y при выборочных фиксированных значениях X(i) используется стандартное отклонение для предсказанных значений - sd(Yi). Не ясно, как его определять. Неужели по выборочным повторным наблюдениям для каждого X(i)? Кто как думает?

Боюсь, у Афифи неточность (небрежность перевода + небрежность автора, знакомая по другим разделам, отмеченным на данном форуме). В этой формуле SD должно быть не Yi-го, а SD оценки - это корень квадратный из дисперсии ошибки регрессии.
Хотя, в принципе, для каждого наблюдения можно построить свою дисперсию. Например, методом скользящего среднего. Данный подход как раз используется для построения ДИ в модуле "Анализ временных рядов" AtteStat. Но данный подход не предполагает формулировку параметрической модели. Тут же как раз параметрический случай.
Цитата(Pinus @ 16.01.2010 - 10:39) *
В каких еще источниках об этом толково можно почитать?

Если интересует нечто глобальное и не является препятствием иностранный язык: Seber G.A.F., Wild C.J. Nonlinear regression. - Hoboken, NJ: John Wiley & Sons, 2003. Можно в электронном виде поискать.

Сначала хотел предложить посмотреть книги по эконометрике, т.к. регрессионный анализ традиционно широко применяется в этой науке. Однако анализ большинства иностранных источников показал, что для нас никакой ценности не представляет многосотстраничное всестороннее "обсасывание" простой линейной модели. Хороши разве что книги Айвазяна с соавт.

В Справке AtteStat "Аппроксимация и регрессионный анализ" я поместил все необходимые формулы, а также ссылку на книгу Кулаичева "Методы и средства анализа данных в среде Windows. STADIA", где эти формулы имеются. В электронном виде книга не встречалась. Посмотрите в [электронных] книжных магазинах. Стоит 64 рубля. Бесплатная версия STADIA доступна http://protein.bio.msu.su/~akula/Podr2~1.htm.
Pinus
Цитата(Игорь @ 31.01.2010 - 18:38) *
Боюсь, у Афифи неточность (небрежность перевода + небрежность автора, знакомая по другим разделам, отмеченным на данном форуме). В этой формуле SD должно быть не Yi-го, а SD оценки - это корень квадратный из дисперсии ошибки регрессии.

Игорь, если не очень затруднит, подскажите источник, где Вы видели формулу с SD оценки регрессии (мне нужно сослаться).
Игорь
Цитата(Pinus @ 2.02.2010 - 11:09) *
Игорь, если не очень затруднит, подскажите источник, где Вы видели формулу с SD оценки регрессии (мне нужно сослаться).

Параграф 8.4 Ферстера (с. 189) - тут видел (способ номер 2).

См. также:
Параграф 3.7 Носача (с. 376 и далее).
Параграф 16.8 Полларда (русское издание с. 292, англ. издание с. 287).
Параграф 1.7 Дрейпера (т. 1, с. 71).
Параграф 3.10 Чаттерджи (с. 74).

Задачи регрессионного анализа - пункт 15.1.7. Айвазяна (с. 627).

Если только об источниках на русском языке говорить, при описании регрессионного анализа взял бы только Айвазяна (основные идеи), Ферстера (пояснения и формулы) и Носача (методика расчета). Полный набор.
Pinus
Спасибо, Игорь! Поразбираюсь.
Pinus
Собираю разные идеи о том, как можно сравнить нелинейные (нелинеаризуемые) регрессии. Из того, что пока удалось собрать на форуме:
1. Дискретизация X и проведение ANOVA (метод сопряжен с некоторой потерей информации при группировке)
2. Сравнение доверительных интервалов параметров уравнений (на основании данного метода сделать более-менее точные выводы можно в случае наличия существенных различий - ДИ не пересекаются и далеко отстоят друг от друга; при наличии близости границ ДИ или незначительного пересечения однозначных выводов сделать нельзя)

Был озвучен еще один метод (Green и Nokh) - перестановочный тест (данные одной выборки подставляются в уравнение другой и сравниваются). Был бы очень благодарен за ссылки на источники. Пусть даже на иностранном, постараюсь несколько страниц перевести. Не знаю сути метода, поэтому может быть он для нелинеаризуемых регрессий и не годится?
Может кто знает другие методы?
Pinus
Такая задача.
Изучается процесс роста: изменение переменной Y от возраста (A). При этом необходимо оценить значимость одновременного влияния на Y некой переменной Z (как и все переменные в этом анализе, Z - количественная и непрерывная). Общепринятая функция роста Y = f(A) - нелинейная по параметрам. Для функции Y = f(Z) общепринятого выражения нет. Корректно ли будет поступить следующим образом: включить в уравнение функции роста дополнительный эффект от влияния Z в виде какой-либо подходящей функции (например, x^2) и затем делать нелинейное оценивание полученного составного уравнения?
Например: Y = b0*(1-exp(-A/b1))^b2 + b3*Z^2.
Значимость коэффициента b3 будет доказывать значимость влияния переменной Z (как в обычной регрессии).
Как думаете?
плав
Цитата(Pinus @ 14.07.2010 - 11:14) *
Такая задача.
Изучается процесс роста: изменение переменной Y от возраста (A). При этом необходимо оценить значимость одновременного влияния на Y некой переменной Z (как и все переменные в этом анализе, Z - количественная и непрерывная). Общепринятая функция роста Y = f(A) - нелинейная по параметрам. Для функции Y = f(Z) общепринятого выражения нет. Корректно ли будет поступить следующим образом: включить в уравнение функции роста дополнительный эффект от влияния Z в виде какой-либо подходящей функции (например, x^2) и затем делать нелинейное оценивание полученного составного уравнения?
Например: Y = b0*(1-exp(-A/b1))^b2 + b3*Z^2.
Значимость коэффициента b3 будет доказывать значимость влияния переменной Z (как в обычной регрессии).
Как думаете?

А ошибки-то как распределены? Если нормальное распределение - можно и так (если уверены, что Y(Z,A)=f(A)+F(Z), а не, например f(A)*F(Z)). Но вообще-то, при любой нелинейной регрессии значимость влияния переменной Z уже весьма сложна для интерпретации. Даже в Вашем примере, когда-то (Z <0) рост Z приводит к уменьшению Y, когда-то (Z>0) рост Z приводит к росту Y. Иными словами интерпретация затруднена. В случае f(A)*f(Z) все будет еще сложнее. Если для интерпретации характер связи не важен, а важнее создание некоей модели, то можно попробовать нейрочетевое моделирование, которое как раз является системой нелинейных уравнений. При отсутствии известной формы выражения наиболее гибкая возможность описания данных (но абсолютно неинтерпретируемая с точки зрения "нового знания").
Если распределение ошибок не нормальное, надо вначале выяснить какое, а это может потребовать подбор зависимости для Z.
Pinus
Ошибки вроде нормальные.
С интерпретацией мне кажется проблем не должно быть. Если Z значим, и есть определенный знак у коэффициента, то будет конкретный вариант: например, если получился знак "минус", то увеличение Z (например, концентрация вещества) приводит к уменьшению Y. Другими словами, в одном и том же возрасте, но при разных значениях Z имеем разную величину переменной роста (Y). А дальше интерпретируем исходя из био-, физико-, химико- и др. законов, поскольку известно, что это за фактор - Z, и какое действие в принципе он мог бы оказывать.

Вот с соотношением функций не совсем понимаю. Правильны ли будут такие рассуждения: если А и Z (возраст и хим. вещество) - независимые переменные, и достоверно известно, что возраст не усиливает и не уменьшает действие вещества, ну а вещество естественно не влияет на возраст, то и эффекта взаимодействия не будет, а значит Y(Z,A) = f(A) + F(Z)?
В каком случае вообще возможна ситуация, когда Y(Z,A) = f(A)*F(Z)? Когда есть лишь только взаимное действие А и Z (в некоем соотношении). Но в реальности наверно редко такое бывает? Может быть есть смысл на всякий случай проверить такой вариант:
Y(Z,A) = f1(A) + f2(Z) + f3(A*Z), а по значимости параметров уже посмотреть, какие слагаемые оставить?
Pinus
Я исходил вообще из следующих соображений. Например, рассматриваем обычную регрессию. В книгах как пишут: если при включении в модель одного влияющего фактора получается небольшой R^2 (т.е. мы объяснили небольшую долю дисперсии), то можно попытаться включить еще один фактор, который, исходя из теоретических соображений, мог бы влиять. И обычно, такое включение в модель дополнительной объясняющей переменной предполагает прибавление (сумму) эффекта. Я нигде не встречал умножения. Можно предположить эффект взаимодействия объясняющих переменных, но его тоже надо прибавлять. А потом уже оценивать значимость этих эффектов. Или я опять запутался?
Также и в рассматриваемом примере. Возраст, если его влияние рассматривать отдельно от Z, значим. При этом R^2, например, 0,7. Хотим проверить значимость влияния Z - добавляем (суммируем эффект). Неужели возможно произведение?
плав
Цитата(Pinus @ 14.07.2010 - 16:09) *
Ошибки вроде нормальные.
С интерпретацией мне кажется проблем не должно быть. Если Z значим, и есть определенный знак у коэффициента, то будет конкретный вариант: например, если получился знак "минус", то увеличение Z (например, концентрация вещества) приводит к уменьшению Y. Другими словами, в одном и том же возрасте, но при разных значениях Z имеем разную величину переменной роста (Y). А дальше интерпретируем исходя из био-, физико-, химико- и др. законов, поскольку известно, что это за фактор - Z, и какое действие в принципе он мог бы оказывать.


Это Вы все в терминах линейной регрессии мыслите. Смотрите коэффициент при Z= +1, но зависимость квадратичная
Ввиду нормализации примем, что минимум в районе +3 (т.е. реальная формула (Z-3)^2)
Тогда: концентрация вещества
Z 0 1 2 3 4 5 6 7
Y 9 4 1 0 1 4 9 16
Так рост Z к чему приводит? Вначале он приводит к снижению Y, а потом к росту.
Интерпретировать коэффициенты нелинейной регрессии на основании их знака нельзя.
плав
Цитата(Pinus @ 15.07.2010 - 02:35) *
Я исходил вообще из следующих соображений. Например, рассматриваем обычную регрессию. В книгах как пишут: если при включении в модель одного влияющего фактора получается небольшой R^2 (т.е. мы объяснили небольшую долю дисперсии), то можно попытаться включить еще один фактор, который, исходя из теоретических соображений, мог бы влиять. И обычно, такое включение в модель дополнительной объясняющей переменной предполагает прибавление (сумму) эффекта. Я нигде не встречал умножения. Можно предположить эффект взаимодействия объясняющих переменных, но его тоже надо прибавлять. А потом уже оценивать значимость этих эффектов. Или я опять запутался?
Также и в рассматриваемом примере. Возраст, если его влияние рассматривать отдельно от Z, значим. При этом R^2, например, 0,7. Хотим проверить значимость влияния Z - добавляем (суммируем эффект). Неужели возможно произведение?


Просто, видимо, смотрели книги, идущие от простоты реализации - мультипликативные эффекты столь же распространены, как и аддитивные. Более того, нормальный анализ модели включает построение полной модели (с мультипликативными взаимодействиями), а затем ее постепенное упрощение, т.е. если есть три фактора А, В, С, то полная модель
A+B+C+A*B+A*C+B*C+A*B*C
и ее постепенной упрощают, глядя на потерю информации (например, по AIC/BIC, используя разложение суммы квадратов и т.п.)

Это все обычно описано в любой книге по дисперсионному анализу (регрессионный идеологически от него ни чем не отличается).
То, что Вы описали является не совсем адекватным подходом к моделированию. Идут как раз с конца. На основании теоретических знаний определяют круг возможных влияющих переменных и строят полную модель, затем ее упрощают до значимой потери информации от упрощения. Полученная на предшествующем потере этапе модель и является адекватной, ее и интерпретируют.
Pinus
Цитата(плав @ 17.07.2010 - 00:53) *
Это Вы все в терминах линейной регрессии мыслите.

Получилось так, что написал квадратичную функцию при Z (для общего примера), а сам предполагал у себя линейный эффект, поэтому так вышло.
А если f(Z) = b3*Z (линейная функция), то правильна интерпретация?

Цитата(плав @ 17.07.2010 - 00:53) *
Смотрите коэффициент при Z= +1, но зависимость квадратичная
Ввиду нормализации примем, что минимум в районе +3 (т.е. реальная формула (Z-3)^2)

Думал эти дни об этом, но не смог понять. То, что нелинейная функция может приводить то к увеличению Y, то к уменьшению, не оспариваю, просто не понятна арифметика. Откуда тройка; это условно e^1? И почему она в минимуме?
Pinus
Цитата(плав @ 17.07.2010 - 01:01) *
Просто, видимо, смотрели книги, идущие от простоты реализации ...

Наверно так. У меня всегда складывалось впечатление, что пошаговая регрессия может осуществляться двумя равнозначными способами: путем добавления переменных в более простую модель или путем изъятия их из более сложной. Но наверно так, как Вы говорите, все же более правильно.
плав
Цитата(Pinus @ 19.07.2010 - 02:25) *
Получилось так, что написал квадратичную функцию при Z (для общего примера), а сам предполагал у себя линейный эффект, поэтому так вышло.
А если f(Z) = b3*Z (линейная функция), то правильна интерпретация?


Думал эти дни об этом, но не смог понять. То, что нелинейная функция может приводить то к увеличению Y, то к уменьшению, не оспариваю, просто не понятна арифметика. Откуда тройка; это условно e^1? И почему она в минимуме?


Насчет тройки, просто взятое с потолка число для того, чтобы можно было сделать численный пример. У любой квадратичной функции - очевидно будет минимум (если b>0) или максимум (если b<0). Соответственно, простого описания связи быть не должно, поскольку поведение функции до минимума (максимума) различается.

Насчет вопроса, не совсем понял, но фраза "при росте Z f(Z) увеличивается (уменьшается)" является классическим описанием результатов линейной регрессии.

плав
Цитата(Pinus @ 19.07.2010 - 02:34) *
Наверно так. У меня всегда складывалось впечатление, что пошаговая регрессия может осуществляться двумя равнозначными способами: путем добавления переменных в более простую модель или путем изъятия их из более сложной. Но наверно так, как Вы говорите, все же более правильно.

Правильно, просто забывается, что это за переменные. В стародавние времена, когда весь анализ кодировался, арифметических операций в описании моделей не было. Поэтому, если кому-то надо было проанализировать мультипликативный показатель (известный как взаимодействие), то вначале создавали новую переменную, например agesex=age*sex и ее вводили в модель. Иными словами отношения между компонентами модели описываются как аддитивные (на самом деле просто описываются), но компоненты могут быть как исходными переменными, так и различными их модификациями, включая умножение двух и более переменных.
Pinus
Плав, у меня есть еще вот такая (в чем-то уже старая) проблема. Если есть у Вас время, помогите разобраться. Имеется несколько нелинейных по параметрам регрессий. Возьмем ту же функцию: Y = b0*(1-exp(-A/b1))^b2 + b3*Z. Уравнения получены при m уровнях качественного фактора Q. Требуется оценить значимость влияния Q. Айвазян (Прикладная статистика. Основы эконометрики: Учебник для вузов; В 2 т. 2-е изд., испр. - Т. 2: Айвазян С.А. Основы эконометрики. - М.: ЮНИТИ-ДАНА, 2001. - 432 с.), например, пишет следующее (с. 167-168):
Если принимается нулевая гипотеза (при m=2) H0: B1 = B2; V(ε)1 = V(ε)2 = σ2,
где B1, B2 - векторы коэффициентов регрессий;
V(ε)1, V(ε)2 - дисперсии остатков регрессий,
то две регрессии можно считать однородными и можно объединить совокупности, по которым они строились, в одну совокупность для построения единой модели (все предпосылки регрессионного анализа считаются выполненными). Пишет, что H0 принимается, если точечные оценки коэффициентов одной регрессии находятся в пределах интервальных оценок другой регрессии.
Вопрос: можно ли этот подход распространить на более чем две регрессии, т.е. H0: B1 = B2 = ... = Bm; V(ε)1 = V(ε)2 = ... = V(ε)m = σ2? Какие еще подходы существуют для проверки данной нулевой гипотезы? Как можно проверить данную нулевую гипотезу в условиях нелинейных регрессий?
плав
Цитата(Pinus @ 19.07.2010 - 16:20) *
Плав, у меня есть еще вот такая (в чем-то уже старая) проблема. Если есть у Вас время, помогите разобраться. Имеется несколько нелинейных по параметрам регрессий. Возьмем ту же функцию: Y = b0*(1-exp(-A/b1))^b2 + b3*Z. Уравнения получены при m уровнях качественного фактора Q. Требуется оценить значимость влияния Q. Айвазян (Прикладная статистика. Основы эконометрики: Учебник для вузов; В 2 т. 2-е изд., испр. - Т. 2: Айвазян С.А. Основы эконометрики. - М.: ЮНИТИ-ДАНА, 2001. - 432 с.), например, пишет следующее (с. 167-168):
Если принимается нулевая гипотеза (при m=2) H0: B1 = B2; V(ε)1 = V(ε)2 = σ2,
где B1, B2 - векторы коэффициентов регрессий;
V(ε)1, V(ε)2 - дисперсии остатков регрессий,
то две регрессии можно считать однородными и можно объединить совокупности, по которым они строились, в одну совокупность для построения единой модели (все предпосылки регрессионного анализа считаются выполненными). Пишет, что H0 принимается, если точечные оценки коэффициентов одной регрессии находятся в пределах интервальных оценок другой регрессии.
Вопрос: можно ли этот подход распространить на более чем две регрессии, т.е. H0: B1 = B2 = ... = Bm; V(ε)1 = V(ε)2 = ... = V(ε)m = σ2? Какие еще подходы существуют для проверки данной нулевой гипотезы? Как можно проверить данную нулевую гипотезу в условиях нелинейных регрессий?

Честно говоря, меня такой подход немного смущает - нет, теоретически делать модели на нескольких группах, а затем объединять результаты можно (в конце-концов процедуры суммирования результатов множественной импутации работают именно так) - но вот такой упрощенный подход... Смотрите. Если у нас m большое, то размер выборки будет небольшим. Соответственно, доверительные интервалы для коэффициентов регрессии - широкие. Поскольку они широкие, то, следуя приведенной выше ссылке, можно объединять. Иными словами, чем больше групп, тем выше вероятность того, что уравнения регрессии будут одинаковыми. Вывод противоречащий логике.
Обычно поступают иначе - работают с полной группой, но тестируют вероятность различия углов наклона дисперсионного уравнения в разных группах - это тот самый мультипликативный элемент, о котором писалось выше. Подход будет аналогичным и в случае нелинейной регрессии, но вот вероятность, что оценки модели "не сойдутся" - выше (значительно).
Я бы постарался трансформировать зависимые/независимые переменные и использовать линейные модели именно по причине их более легкой оценки (из-за трансформации проблемы с интерпретацией уже никуда не денутся).
Pinus
Если брать более конкретный пример, то в каждой группе не менее 60-70 наблюдений более или менее равномерно распределенных по объясняющим переменным. Т.е. в принципе в каждой группе можно строить полноценную надежную регрессию (R^2 около 0,9; ошибка регрессии тоже 0,9). Остатки в регрессиях групп нормальные, дисперсии остатков стабильны. Число групп например 7. Исходя из предварительных теоретических суждений, несколько групп вероятно не будут иметь различий, а другие могут иметь.
Не обязательно такой упрощенный подход. Я и не надеюсь, что он будет простым. Но может быть есть какие-нибудь специальные Post-hoc или другие критерии и способы. С трансформацией связываться бы не хотелось, потому что очень желательно, чтобы полученные модели имели общепринятую форму функции роста.
плав
Цитата(Pinus @ 20.07.2010 - 01:07) *
Если брать более конкретный пример, то в каждой группе не менее 60-70 наблюдений более или менее равномерно распределенных по объясняющим переменным. Т.е. в принципе в каждой группе можно строить полноценную надежную регрессию (R^2 около 0,9; ошибка регрессии тоже 0,9). Остатки в регрессиях групп нормальные, дисперсии остатков стабильны. Число групп например 7. Исходя из предварительных теоретических суждений, несколько групп вероятно не будут иметь различий, а другие могут иметь.
Не обязательно такой упрощенный подход. Я и не надеюсь, что он будет простым. Но может быть есть какие-нибудь специальные Post-hoc или другие критерии и способы. С трансформацией связываться бы не хотелось, потому что очень желательно, чтобы полученные модели имели общепринятую форму функции роста.

60-70 наблюдений - это мало (за редким исключением, когда есть два параметра и четкая линейная связь между ними - для всех нелинейных моделей, это небольшое число). Поэтому надо просто объединить все наблюдения в одну группу (это уже будет 60*7=420 наблюдений), создать 6 переменных-пустышек и сделать регрессию с мультипликативными переменными типа:
Y~per1+per2+group+per1*group+per2*group
где per1|per2 - независимые переменные, group - переменная-пустышка (0- группа1, 1- группа 2).

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

Цитата(плав @ 20.07.2010 - 06:36) *
Обычно поступают иначе - работают с полной группой, но тестируют вероятность различия углов наклона дисперсионного уравнения в разных группах - это тот самый мультипликативный элемент, о котором писалось выше. Подход будет аналогичным и в случае нелинейной регрессии, но вот вероятность, что оценки модели "не сойдутся" - выше (значительно).
"Не сойдутся" имеется ввиду сходимость/расходимость итерационного процесса?

Цитата
Поэтому надо просто объединить все наблюдения в одну группу (это уже будет 60*7=420 наблюдений), создать 6 переменных-пустышек и сделать регрессию с мультипликативными переменными типа:
Y~per1+per2+group+per1*group+per2*group
где per1|per2 - независимые переменные, group - переменная-пустышка (0- группа1, 1- группа 2).
Не совсем ясно, как это сделать для нелинейной по параметрам функции. Чтоб не загромождать, давайте возьмем простой пример. Сначала функция линейная по параметрам, но нелинейная по объясняющим переменным. Например: Y = b0 + b1*A^2. Пусть действует один качественный фактор Q с двумя уровнями. Тогда:
Y = b0 + b1*A^2 + b2*Q + b3*Q*A^2 или
Y = (b0 + b2*Q) + (b1*A^2 + b3*Q*A^2).
Теперь, если Q = 0 (1 группа), то имеем Y = b0 + b1*A^2,
а если Q = 1 (2 группа), то имеем Y = (b0 + b2) + (b1 + b3)*A^2.
Таким образом, при переходе из одной группы в другую получаем изменение обоих параметров регрессии (т.е. для одного уровня Q - одна регрессия, для другого - другая). Соответственно, по значимости коэффициентов b2 и b3 можем сделать выводы о значимости влияния Q на свободный член и коэффициент при A^2. Это все известно.
А как быть с функциями нелинейными по параметрам? Возьмем мой пример: Y = b0*(1-exp(-A/b1))^b2. Ведь здесь при воздействии Q могут, в принципе, изменяться все три параметра. Как можно сконструировать модель, чтобы изменение Q (0 или 1) давало изменение b0, b1 и b2? Или это не нужно и можно просто записать: Y = b0*(1-exp(-A/b1))^b2 + b3*Q + b4*Q*A?
плав
Цитата(Pinus @ 21.07.2010 - 05:01) *
А как быть с функциями нелинейными по параметрам? Возьмем мой пример: Y = b0*(1-exp(-A/b1))^b2. Ведь здесь при воздействии Q могут, в принципе, изменяться все три параметра. Как можно сконструировать модель, чтобы изменение Q (0 или 1) давало изменение b0, b1 и b2? Или это не нужно и можно просто записать: Y = b0*(1-exp(-A/b1))^b2 + b3*Q + b4*Q*A?


Строго говоря так же, как и с линейными регрессиями. Формула, правда будет сложной, типа
Y~ b00*(1-exp(-A/b10))^b20 + Q*b01*(1-exp(-A/b11))^b21 +b99*Q

Такая конструкция может "не сойтись" или уйдет в локальный минимум, но тут уж ничего не поделаешь - как искать параметры в нелинейной регрессии выше, как я видел, обсуждалось.
Оценка довольно элементарна, если b01, b11, b21 окажутся значимыми, значит группы ведут себя различно.
Проблема однако будет, если у Вас много групп. Итак 3 параметра на группу, 6 dummy - 24 параметра (6*3+6). Для линейного оценивания надо не менее 240 наблюдений. Для нелинейного я таких эвристик не знаю, но, опасаюсь, что надо значительно больше (аналогичная задача с нейросетевой моделью потребует не менее 810 наблюдений в группе обучения и столько же в группе проверки модели, т.е. надо 1620 наблюдений). Наиболее неприятная штука в том, что Вы хотите иметь варьирующую степень - по опыту это резко ухудшает стабильность оценок.

Вообще посмотрите
http://www.ats.ucla.edu/stat/sas/library/sasnlin_os.htm
там в конце разбирается как раз такая ситуация
Pinus
Подумал вот о чем (если вернуться к первой задаче). Если в уравнение Y = b0*(1-exp(-A/b1))^b2 + b3*Z^2 добавлять мультипликативный эффект, то наверно надо делать так: Y = b00*(1-exp(-A/b10))^b20 + b01*Z^2*(1-exp(-A/b11))^b21 + b3*Z^2 (также, как с dummy)?

Цитата(плав @ 14.07.2010 - 20:42) *
Если нормальное распределение - можно и так (если уверены, что Y(Z,A)=f(A)+F(Z), а не, например f(A)*F(Z)). Но вообще-то, при любой нелинейной регрессии значимость влияния переменной Z уже весьма сложна для интерпретации. Даже в Вашем примере, когда-то (Z <0) рост Z приводит к уменьшению Y, когда-то (Z>0) рост Z приводит к росту Y. Иными словами интерпретация затруднена. В случае f(A)*f(Z) все будет еще сложнее.

Сложнее с интерпретацией или еще какие-то другие проблемы возникают?
плав
Цитата(Pinus @ 22.07.2010 - 07:01) *
Подумал вот о чем (если вернуться к первой задаче). Если в уравнение Y = b0*(1-exp(-A/b1))^b2 + b3*Z^2 добавлять мультипликативный эффект, то наверно надо делать так: Y = b00*(1-exp(-A/b10))^b20 + b01*Z^2*(1-exp(-A/b11))^b21 + b3*Z^2 (также, как с dummy)?


Сложнее с интерпретацией или еще какие-то другие проблемы возникают?

Так вообщем-то думми-недумми роли не играет. Если у нас две независимых переменных А и В, то надо записывать А + В + А*В, затем вместо А и В подставляете любые формулы (причем в SAS, например, можно делать именно так, как я написал, вначале кодировать формулы простыми буквами, а затем использовать упрощенную запись).
Проблемы две - получить устойчивое решение и проинтерпретировать его. У меня при сложных нелинейных зависимостях часто появлялись проблемы с устойчивостью (меняем немного стартовые параметры и получаем другое решение), поэтому я нелинейные модели и недолюбливаю (теоретически то на модельных данных все прекрасно работает, а вот на реальных...). Может, Вам повезет больше.
Pinus
Цитата(плав @ 23.07.2010 - 02:51) *
Если у нас две независимых переменных А и В, то надо записывать А + В + А*В, затем вместо А и В подставляете любые формулы

Просто мне казалось, что для отражения мультипликативного эффекта достаточно будет записать: Y = b0*(1-exp(-A/b1))^b2 + b3*Z^2 + b4*A*Z, а пример с dummy навел на мысль, что это неправильно, т.к. Z при взаимодействии с A, влияет на все параметры функции F(A).

Цитата(плав @ 23.07.2010 - 02:51) *
Может, Вам повезет больше.

Видимо тоже не везет. С подбором параметров действительно не получается. Даже если брать только две группы качественного фактора, все равно процесс не сходится. А при большем количестве групп Q, вообще говорить не приходится. Если к одному сложному [F(A)] слагаемому добавлять две-три простых функции, то нормально, устойчивые оценки.
Что же делать, Плав? Вы писали про процедуры множественной импутации, что это такое? Может этим можно попробовать? Что еще можно здесь придумать?
плав
Цитата(Pinus @ 23.07.2010 - 06:00) *
Видимо тоже не везет. С подбором параметров действительно не получается. Даже если брать только две группы качественного фактора, все равно процесс не сходится. А при большем количестве групп Q, вообще говорить не приходится. Если к одному сложному [F(A)] слагаемому добавлять две-три простых функции, то нормально, устойчивые оценки.
Что же делать, Плав? Вы писали про процедуры множественной импутации, что это такое? Может этим можно попробовать? Что еще можно здесь придумать?

Не, множественная импутация - это методика, которая позволяет анализировать пропущенные значения. Я ее упоминал только в связи с тем, что есть подходы к суммированию оценок нескольких регрессий.
А действительно так уж нужна нелинейная функция? Это был мой вопрос с самого начала, но, по-моему DrgLena указала, что для Вас это критично. Если это действительно так, то надо попробовать поиграть со стартовыми параметрами. Иногда таким образом удается добиться схождения. Оптимально порисовать графики при разных стартовых параметрах и посмотреть какой параметр наилучшим образом описывает. Еще вариант - свалить все данные в кучу и сделать простейшую модель, потом использовать полученные параметры в качестве стартовых для всех (когда уже будете вводить групповые значения).
Вариант номер два - посмотреть на форму зависимости. У Вас она то, что называется intractable - т.е. форма, которую невозможно линеаризовать. Может быть, посмотреть функцию exp(A/B)? Тогда log(Y)=b1*(А/В)?
Еще вариант - упростить выражение, предположить, что ряд параметров одинаковы и считать исходя из этого.
Pinus
Цитата(плав @ 23.07.2010 - 17:39) *
Вариант номер два - посмотреть на форму зависимости.

Уже тоже думал об этом. Действительно, есть линеаризуемые функции роста, попробую покрутить какую-нибудь из них (типа Гомперца). Посмотрим, что получится.
А как Вы смотрите на такую процедуру "множественной ампутации": объединить все выборки, сгруппировать значения непрерывных объясняющих переменных по интервалам (группам), сделать дисперсионный анализ (3-4 факторный) и посмотреть, что там от чего зависит, а потом уже для однородных групп строить модели со сложной функцией роста? Вдруг по ANOVA не будет никаких эффектов взаимодействия, тогда все значительно упростится.
плав
Цитата(Pinus @ 23.07.2010 - 16:35) *
Уже тоже думал об этом. Действительно, есть линеаризуемые функции роста, попробую покрутить какую-нибудь из них (типа Гомперца). Посмотрим, что получится.
А как Вы смотрите на такую процедуру "множественной ампутации": объединить все выборки, сгруппировать значения непрерывных объясняющих переменных по интервалам (группам), сделать дисперсионный анализ (3-4 факторный) и посмотреть, что там от чего зависит, а потом уже для однородных групп строить модели со сложной функцией роста? Вдруг по ANOVA не будет никаких эффектов взаимодействия, тогда все значительно упростится.

Мне еще вот какая мысль пришла в голову (может и не новая). Вам ведь надо ответить на вопрос, различаются ли показатели в разных группах?
Так вот действуем так:
1) Объединяем все наблюдения в одну группу и считает модель по Вашей формуле (общую)
2) Рассчитываем предсказанные значения и считаем квадраты разности между предсказанным значением и истинным (SSt)
3) Разбиваем данные на группы и проводим регресионный анализ внутри каждой группы
4) Для каждой группы считаем квадраты разности, затем суммируем полученные значения для всех групп (SSe)
Получили модель дисперсионного анализа и используем омнибусный тест для проверки гипотезы, что разбиение на группы не приводит к снижению дисперсии.
Единственно что надо внимательно считать число степеней свободы - каждый оцененный параметр - одна степень свободы.

Что же касается "ампутации" я не очень люблю потерю данных при превращении количественной переменной в качественную, данных не так много, чтобы информацией разбрасываться smile.gif
Pinus
Цитата(плав @ 24.07.2010 - 02:05) *
Так вот действуем так:
1) Объединяем все наблюдения в одну группу и считает модель по Вашей формуле (общую)
2) Рассчитываем предсказанные значения и считаем квадраты разности между предсказанным значением и истинным (SSt)
3) Разбиваем данные на группы и проводим регресионный анализ внутри каждой группы
4) Для каждой группы считаем квадраты разности, затем суммируем полученные значения для всех групп (SSe)
Получили модель дисперсионного анализа и используем омнибусный тест для проверки гипотезы, что разбиение на группы не приводит к снижению дисперсии.
Единственно что надо внимательно считать число степеней свободы - каждый оцененный параметр - одна степень свободы.

Как посчитать SSt и SSe понял. Что такое омнибусный тест? Посоветуйте, пожалуйста, где можно об этом почитать, чтобы разобраться и потом сослаться.
плав
Цитата(Pinus @ 24.07.2010 - 00:29) *
Как посчитать SSt и SSe понял. Что такое омнибусный тест? Посоветуйте, пожалуйста, где можно об этом почитать, чтобы разобраться и потом сослаться.

Омнибусный тест - это тот самый F-тест для сравнения дисперсий. Почитать можно в любой книге по дисперсионному анализу, только не в тех, что ориентированы на статпакеты. Тут где-то бродила ссылка на Montgomery, можно его посмотреть. Мне нравится Design an Analysis авторов Keppel и Wickens, но у меня бумажная копия, поэтому ничего не могу сказать насчет легкости приобретения - подозреваю, что не очень.
Pinus
Большое спасибо, Плав!
Возможные варианты понятны. Поработаю, посмотрим, что получится.
Pinus
Что-то не получается Nonlinear Estimation с dummy переменными.
Взять дежурный пример с прямыми линиями (исходники в файле 1).
Y - зависимая переменная, X - независимая. Качественный фактор Q с двумя уровнями. Уравнение: Y=b0+b1*X+b2*Q+b3*Q*X
Получается следующее (см. изображение):

В чем причина?
плав
Цитата(Pinus @ 30.07.2010 - 17:50) *
Что-то не получается Nonlinear Estimation с dummy переменными.
Взять дежурный пример с прямыми линиями (исходники в файле 1).
Y - зависимая переменная, X - независимая. Качественный фактор Q с двумя уровнями. Уравнение: Y=b0+b1*X+b2*Q+b3*Q*X
Получается следующее (см. изображение):

В чем причина?

а что там у Вас v4, v3, v2, v7?
Кроме того, не стоит брать две прямые линии, наложите хоть немного вариабельности, иначе может быть все, что угодно.

У меня, на самом деле (в SAS) - все получается вот результат GLM:
proc glm;
model y= x q x*q;
run;
=================
стандартная
Параметр оценка ошибка t-значение Pr > |t|

Свободный 12.22299828 1.27733679 9.57 <.0001
x 0.21098012 0.01789595 11.79 <.0001
q 5.16139852 1.87225244 2.76 0.0147
x*q 0.36251510 0.02760308 13.13 <.0001

А вот NLIN
proc nlin;
parms a=0.5 b=0.5 c=0.5 z=0.5;
model y=a*x+b*q+c*q*x+z;
run;
=================
Приближение
стандартной
Параметр Оценка ошибки Приближенные 95% доверительные интервалы

a 0.2110 0.0179 0.1728 0.2491
b 5.1614 1.8723 1.1708 9.1520
c 0.3625 0.0276 0.3037 0.4213
z 12.2230 1.2773 9.5004 14.9456

Видна крайняя "похожесть" результатов
Единственно, я чуть поменял данные, чтобы не было прямой линии:
data new;
input y x q;
cards;
15 20 0
20 30 0
20 41 0
25 50 0
25 60 0
25 70 0
30 80 0
30 92 0
35 100 0
35 110 0
30 20 1
35 29 1
40 40 1
45 50 1
50 60 1
55 70 1
65 79 1
70 90 1
75 100 1
;
run;
DrgLena
Нелинейное оценивание в Statistica будет абсолютно то же, что у плава, dummy можете создавать или не создавать, как новую перменную, а задать только вид функции.
Pinus
Цитата(плав @ 31.07.2010 - 01:36) *
а что там у Вас v4, v3, v2, v7?
Это обозначения переменных в таблице исх.данных (Statistica).

Цитата(плав @ 31.07.2010 - 01:36) *
У меня, на самом деле (в SAS) - все получается...
Цитата(DrgLena @ 31.07.2010 - 20:18) *
Нелинейное оценивание в Statistica будет абсолютно то же, что у плава...
Да, действительно, все получается. С параболами (по другим исх.данным) тоже.
Pinus
Вопрос к пользователям профессиональных стат.программ (кроме Statistica). Какие еще итерационные методы получения МНК-оценок параметров нелинейной регрессии имеются в софте? В Statistica 6 есть только методы Гаусса-Ньютона и Левенберга-Маркуардта. Немного посложнее степень, в которую возводится функция, и все - оба не переваривают. Есть вообще что-нибудь еще стоящее из методов, которые можно было бы в этой ситуации попробовать?
плав
Цитата(Pinus @ 2.08.2010 - 06:39) *
Вопрос к пользователям профессиональных стат.программ (кроме Statistica). Какие еще итерационные методы получения МНК-оценок параметров нелинейной регрессии имеются в софте? В Statistica 6 есть только методы Гаусса-Ньютона и Левенберга-Маркуардта. Немного посложнее степень, в которую возводится функция, и все - оба не переваривают. Есть вообще что-нибудь еще стоящее из методов, которые можно было бы в этой ситуации попробовать?

Гаусса и наиболее крутого градиента (ЛМ - промежуточный между ними) в SAS, Mathematica, в стандартной функции nls системы R реализованы Гаусс-Ньютон, Голуб-Перейра, и функция библиотеки port. Кроме того, функция nls2 обеспечивает нахождение решения путем перебора (brute force), ML-оценки в пакете nlreg (и в PROC NLMIXED в SAS).
Но, на самом деле, я не думаю, что попытки применить другой метод что-то сильно изменят. С нелинейной регрессией надо долго играться с точки зрения стартовых параметров, проблема, скорее всего, там. Можно, конечно, попробовать brute force. Оптимально, конечно, взять хорошую книжку по регрессионному анализу (типа Дрейпера, которого я упоминал ранее) и попытаться решить задачу (упрощение) без использования пакетов - тогда станет понятно, в чем может быть проблема. Когда начнете брать производные, может станет понятно, почему методы не "берут" сложные степени (по определению нахождение максимума/минимума предполагает наличие производной - если она не определена... frown.gif ).
DrgLena
Цитата(Pinus @ 2.08.2010 - 05:39) *
Немного посложнее степень, в которую возводится функция, и все - оба не переваривают.

А на что жалуется Statistica при непереваривании?

Я, может, уже не в теме. Было много постов про рост деревьев, сейчас цель исследования для меня несколько потерялась.
Перейдя к нелинейному оцениванию, почему нужно использовать только МНК оценки? Потому, что они по умолчанию в этой программе? Можно уйти от производных используя альтернативу МНК, например ? MLM.
A common alternative to the least squares loss function is to maximize the likelihood or log-likelihood function (or to minimize the negative log-likelihood function; the term maximum likelihood was first used by Fisher, 1929a; see also Maximum Likelihood Method). These functions are typically used when fitting non-linear models.
Тогда в Statistica появятся 7 других методов оценки. Но для этого нужно выбрать custom loss function в нелинейных оценках. Тогда будут доступны и симплексные методы и комбинация методов.
Simplex
Simplex and Quasi-Newton
Hooke-Jeeves pattern moves
Hooke-Jeeves and quasi-Newton
Rosenbrock pattern search
И комбинация Hooke-Jeeves, and Rosenbrock
Коротко об этих методах в хелпах есть и ссылки тоже.

Pinus
Цитата(DrgLena @ 2.08.2010 - 22:30) *
Я, может, уже не в теме. Было много постов про рост деревьев, сейчас цель исследования для меня несколько потерялась.
Это не важно. Цели - это мои проблемы. Я стараюсь ставить задачу в общем, теоретически, чтобы информация была полезна и другим участникам форума (а не только исследователям деревьев). Поэтому вместо деревьев - символы X, Y, Z и т.п. Всячески стараюсь деревья вуалировать, потому что понимаю, что я здесь не совсем на своем месте. А Вы, вот, DrgLena, нет-нет да и напоминаете всем про деревья..., и все мои старания скрыть те деревья разом перечеркиваете. А что деревья? Деревья как деревья. Они ведь как люди... И растут они подобно всем живым организмам. Со своими особенностями конечно, но это уже частные вопросы.
Поэтому, DrgLena, пожалуйста, давайте больше не будем про деревья, а то у меня на этой почве сформируется какой-нибудь комплекс или другая какая болезня. Придется тогда на форуме не только учиться, но и лечиться.
Да здравствует Биометрия - наука, объединяющая людей, деревья и тех, кто их изучает! (Аминь).

Цитата(DrgLena @ 2.08.2010 - 22:30) *
А на что жалуется Statistica при непереваривании?
Типичные симптомы: покраснение, зуд и неадекватные реакции. В тяжелых случаях: дегенеративные изменения, ступор и отторжение (Degenerated result, the values may not correct !!!). Антидот не известен.

Цитата(DrgLena @ 2.08.2010 - 22:30) *
Перейдя к нелинейному оцениванию, почему нужно использовать только МНК оценки? Потому, что они по умолчанию в этой программе? Можно уйти от производных используя альтернативу МНК, например - MLM.
С максимальным правдоподобием еще разобраться надо, пока только на пути к этому. Пусть пока будет МНК. Не получится, значит возьмем модели попроще.
плав
Цитата(Pinus @ 3.08.2010 - 10:14) *
С максимальным правдоподобием еще разобраться надо, пока только на пути к этому. Пусть пока будет МНК. Не получится, значит возьмем модели попроще.

Насчет деревьев вынужден не согласиться - в статистике невозможно решать задачи в общем виде. Надо знать предметную область, поэтому что справедливо для роста волос у негра может быть не справедливо для роста волос у шведа. Модель строится исходя из знаний о предмете (этой фразой, я, наверное, уже всем надоел). Не знай я, например, про условия задачи и функцию роста, уже давно бы утверждал, что в медицине любая нелинейная модель (если не фармакокинетика) - от лукавого.
Что же касается degenerated result (вырождение), скорее всего а) выраженная внутренняя корреляция между показателями (более 0,9); б) слишком много параметров; в) подгруппы с нулевой численностью д) модель 100% точно описывает данные (нет степеней свободы для ошибки).
Я бы рекомендовал начать строить модель от простой к сложной, т.е. вводить дополнительные параметры постепенно и смотреть, когда модель выродится.
DrgLena
Я понимаю, что шутки про лес сейчас не уместны, поэтому я про свое.
Из опыта роста хвостов у мышей (joke) могу добавить, что наилучшая модель роста была получена с помощью Кусочно - линейной регрессии с одной точкой разрыва (Statistica, тоже в модуле нелинейного оценивания). При этом фактор освещенности в возрасте до 10 дней не влиял, а после, ускорял рост хвостов. Вывод: не чего зря электричество палить в виварии в первые 10 дней, пусть растут как в утробе матери.
Pinus
Размышлял вот на досуге, и появились такие мысли:
Берем уравнение: Y=b0+b1*X. Полагаем, что кроме X на Y еще действует Z (тоже количественная). Как Z может воздействовать на Y (т.е. в данном случае на прямую)? Она может или сдвигать прямую вдоль оси OY (воздействие на b0), или изменять угол наклона прямой относительно оси OX (воздействие на b1). Другими словами, Z воздействует на параметры прямой, а значит уравнение в участием Z можно записать так:
Y=(b00+b01*Z)+(b10+b11*Z)*X.
Если раскрыть скобки, получим Y=b00+b10*X+b01*Z+b11*Z*X, т.е. известный вид модели, включающий все (аддитивные и мультипликативные эффекты).

Тогда, почему не поступать аналогично с нелинейными моделями?
Берем пресловутую Y=b0*(1-exp(-A/b1))^b2. Тогда, исходя из вышесказанного, получаем:
Y=(b00+b01*Z)*(1-exp(-A/(b10+b11*Z)))^(b20+b21*Z).
Также можно для Z задать любые функции (Z^2; lnZ и т.п.).
Аналогично, если Z - dummy. Тогда при Z=0, имеем одни параметры уравнения, при Z=1 - другие.
Что очень важно, исходная функция при таком рассмотрении остается всегда той же самой (с теми же свойствами: теоретическими, общепринятыми и т.п.). Просто при воздействии Z изменяются параметры функции, т.е. мы получаем другую ассимтоту (предельное значение Y), другой наклон (скорость роста) и т.п., что и является отражением реального процесса: при воздействии некоего фактора характеристики роста изменяются, но процесс (функция) все равно исходит из нуля, имеет определенный характер ускорений и замедлений и стабилизируется, бесконечно приближаясь к некоторому предельному значению.
Кроме того, в такой постановке мы включаем мультипликативный эффект (т.е. исследуем полную модель) и нет проблем с интерпретацией (если, конечно, параметры исходной функции имеют биологический смысл).
Сначала в дискуссии я не смог сформулировать то, что хотел получить, поэтому разговор пошел не совсем в том русле (моя исходная модель: Y = b0*(1-exp(-A/b1))^b2 + b3*Z^2, и все прочее). А вот это, похоже оно, то самое.
Что скажут знатоки?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2025 IPS, Inc.