Здравствуйте, гость ( Вход | Регистрация )
12.01.2010 - 13:17
Сообщение
#1
|
|
|
Группа: Пользователи Сообщений: 244 Регистрация: 28.08.2009 Пользователь №: 6286 |
Стал разбираться с оценкой параметров функций роста.
В Statistica в модуле Nonlinear Estimation есть раздел получения МНК-оценок параметров пользовательских функций (User-specified regression, least squares). Предлагаются два итерационных метода: Gauss-Newton (Гаусса-Ньютона) и Levenberg-Marquardt (Левенберга-Маркварта). Нашел книгу с неплохим описанием этих методов, на которую многие ссылаются: Дэннис Д., Шнабель Р. Численные методы безусловной оптимизации и решения нелинейных уравнений. ? М.: Мир, 1988. ? 440 с. (есть в инете). Также ссылаются на: Бард Й. Нелинейное оценивание параметров. ? М.: Статистика, 1979. ? 349 с. Демиденко Е.З. Линейная и нелинейная регрессии. ? М.: Финансы и статистика, 1981. ? 302 с. Эти книги в инете не нашел. Методы по своим характеристикам близки, однако Levenberg-Marquardt отдается предпочтение. Оба метода являются локально сходящимися. В связи с этим возникает вопрос выбора стартовых значений. Существуют ли какие-либо подходы определения локальной области? |
|
|
![]() |
![]() |
![]() |
14.07.2010 - 10:14
Сообщение
#2
|
|
|
Группа: Пользователи Сообщений: 244 Регистрация: 28.08.2009 Пользователь №: 6286 |
Такая задача.
Изучается процесс роста: изменение переменной 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 - 10:18 |
|
|
![]() |
![]() |
14.07.2010 - 12:42
Сообщение
#3
|
|
|
Группа: Пользователи Сообщений: 1013 Регистрация: 4.10.2006 Пользователь №: 1933 |
Такая задача. Изучается процесс роста: изменение переменной 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. |
|
|
![]() |
![]() |
22.07.2010 - 06:01
Сообщение
#4
|
|
|
Группа: Пользователи Сообщений: 244 Регистрация: 28.08.2009 Пользователь №: 6286 |
Подумал вот о чем (если вернуться к первой задаче). Если в уравнение 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)?
Если нормальное распределение - можно и так (если уверены, что Y(Z,A)=f(A)+F(Z), а не, например f(A)*F(Z)). Но вообще-то, при любой нелинейной регрессии значимость влияния переменной Z уже весьма сложна для интерпретации. Даже в Вашем примере, когда-то (Z <0) рост Z приводит к уменьшению Y, когда-то (Z>0) рост Z приводит к росту Y. Иными словами интерпретация затруднена. В случае f(A)*f(Z) все будет еще сложнее. Сложнее с интерпретацией или еще какие-то другие проблемы возникают? |
|
|
![]() |
![]() |
22.07.2010 - 18:51
Сообщение
#5
|
|
|
Группа: Пользователи Сообщений: 1013 Регистрация: 4.10.2006 Пользователь №: 1933 |
Подумал вот о чем (если вернуться к первой задаче). Если в уравнение 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, например, можно делать именно так, как я написал, вначале кодировать формулы простыми буквами, а затем использовать упрощенную запись). Проблемы две - получить устойчивое решение и проинтерпретировать его. У меня при сложных нелинейных зависимостях часто появлялись проблемы с устойчивостью (меняем немного стартовые параметры и получаем другое решение), поэтому я нелинейные модели и недолюбливаю (теоретически то на модельных данных все прекрасно работает, а вот на реальных...). Может, Вам повезет больше. |
|
|
![]() |
![]() |
23.07.2010 - 05:00
Сообщение
#6
|
|
|
Группа: Пользователи Сообщений: 244 Регистрация: 28.08.2009 Пользователь №: 6286 |
Если у нас две независимых переменных А и В, то надо записывать А + В + А*В, затем вместо А и В подставляете любые формулы Просто мне казалось, что для отражения мультипликативного эффекта достаточно будет записать: Y = b0*(1-exp(-A/b1))^b2 + b3*Z^2 + b4*A*Z, а пример с dummy навел на мысль, что это неправильно, т.к. Z при взаимодействии с A, влияет на все параметры функции F(A). Может, Вам повезет больше. Видимо тоже не везет. С подбором параметров действительно не получается. Даже если брать только две группы качественного фактора, все равно процесс не сходится. А при большем количестве групп Q, вообще говорить не приходится. Если к одному сложному [F(A)] слагаемому добавлять две-три простых функции, то нормально, устойчивые оценки. Что же делать, Плав? Вы писали про процедуры множественной импутации, что это такое? Может этим можно попробовать? Что еще можно здесь придумать? Сообщение отредактировал Pinus - 23.07.2010 - 05:03 |
|
|
![]() |
![]() |
23.07.2010 - 09:39
Сообщение
#7
|
|
|
Группа: Пользователи Сообщений: 1013 Регистрация: 4.10.2006 Пользователь №: 1933 |
Видимо тоже не везет. С подбором параметров действительно не получается. Даже если брать только две группы качественного фактора, все равно процесс не сходится. А при большем количестве групп Q, вообще говорить не приходится. Если к одному сложному [F(A)] слагаемому добавлять две-три простых функции, то нормально, устойчивые оценки. Что же делать, Плав? Вы писали про процедуры множественной импутации, что это такое? Может этим можно попробовать? Что еще можно здесь придумать? Не, множественная импутация - это методика, которая позволяет анализировать пропущенные значения. Я ее упоминал только в связи с тем, что есть подходы к суммированию оценок нескольких регрессий. А действительно так уж нужна нелинейная функция? Это был мой вопрос с самого начала, но, по-моему DrgLena указала, что для Вас это критично. Если это действительно так, то надо попробовать поиграть со стартовыми параметрами. Иногда таким образом удается добиться схождения. Оптимально порисовать графики при разных стартовых параметрах и посмотреть какой параметр наилучшим образом описывает. Еще вариант - свалить все данные в кучу и сделать простейшую модель, потом использовать полученные параметры в качестве стартовых для всех (когда уже будете вводить групповые значения). Вариант номер два - посмотреть на форму зависимости. У Вас она то, что называется intractable - т.е. форма, которую невозможно линеаризовать. Может быть, посмотреть функцию exp(A/B)? Тогда log(Y)=b1*(А/В)? Еще вариант - упростить выражение, предположить, что ряд параметров одинаковы и считать исходя из этого. |
|
|
![]() |
![]() |
23.07.2010 - 15:35
Сообщение
#8
|
|
|
Группа: Пользователи Сообщений: 244 Регистрация: 28.08.2009 Пользователь №: 6286 |
Вариант номер два - посмотреть на форму зависимости. Уже тоже думал об этом. Действительно, есть линеаризуемые функции роста, попробую покрутить какую-нибудь из них (типа Гомперца). Посмотрим, что получится. А как Вы смотрите на такую процедуру "множественной ампутации": объединить все выборки, сгруппировать значения непрерывных объясняющих переменных по интервалам (группам), сделать дисперсионный анализ (3-4 факторный) и посмотреть, что там от чего зависит, а потом уже для однородных групп строить модели со сложной функцией роста? Вдруг по ANOVA не будет никаких эффектов взаимодействия, тогда все значительно упростится. Сообщение отредактировал Pinus - 23.07.2010 - 15:36 |
|
|
![]() |
![]() |
23.07.2010 - 18:05
Сообщение
#9
|
|
|
Группа: Пользователи Сообщений: 1013 Регистрация: 4.10.2006 Пользователь №: 1933 |
Уже тоже думал об этом. Действительно, есть линеаризуемые функции роста, попробую покрутить какую-нибудь из них (типа Гомперца). Посмотрим, что получится. А как Вы смотрите на такую процедуру "множественной ампутации": объединить все выборки, сгруппировать значения непрерывных объясняющих переменных по интервалам (группам), сделать дисперсионный анализ (3-4 факторный) и посмотреть, что там от чего зависит, а потом уже для однородных групп строить модели со сложной функцией роста? Вдруг по ANOVA не будет никаких эффектов взаимодействия, тогда все значительно упростится. Мне еще вот какая мысль пришла в голову (может и не новая). Вам ведь надо ответить на вопрос, различаются ли показатели в разных группах? Так вот действуем так: 1) Объединяем все наблюдения в одну группу и считает модель по Вашей формуле (общую) 2) Рассчитываем предсказанные значения и считаем квадраты разности между предсказанным значением и истинным (SSt) 3) Разбиваем данные на группы и проводим регресионный анализ внутри каждой группы 4) Для каждой группы считаем квадраты разности, затем суммируем полученные значения для всех групп (SSe) Получили модель дисперсионного анализа и используем омнибусный тест для проверки гипотезы, что разбиение на группы не приводит к снижению дисперсии. Единственно что надо внимательно считать число степеней свободы - каждый оцененный параметр - одна степень свободы. Что же касается "ампутации" я не очень люблю потерю данных при превращении количественной переменной в качественную, данных не так много, чтобы информацией разбрасываться |
|
|
![]() |
![]() |
Pinus Нелинейная регрессия 12.01.2010 - 13:17
Игорь Цитата(Pinus @ 12.01.2010 - 14:17) С... 12.01.2010 - 16:52
Pinus Игорь, спасибо за книгу и советы!
По поводу ло... 13.01.2010 - 01:28
Игорь Цитата(Pinus @ 13.01.2010 - 01:28) И... 13.01.2010 - 11:02
Pinus Цитата(Игорь @ 13.01.2010 - 18:02) Д... 14.01.2010 - 03:32
Игорь Цитата(Pinus @ 14.01.2010 - 04:32) Н... 16.01.2010 - 16:04
Pinus Может быть кто-нибудь сталкивался, в каких пакетах... 14.01.2010 - 03:37
Pinus По поводу доверительных интервалов при нелинейной ... 16.01.2010 - 09:39
Pinus Игорь, большое спасибо! 17.01.2010 - 00:17
Игорь Доступна новая версия 12.0.1 программы AtteStat с ... 31.01.2010 - 11:38
Pinus Цитата(Игорь @ 31.01.2010 - 18:38) Б... 2.02.2010 - 10:09
Игорь Цитата(Pinus @ 2.02.2010 - 11:09) Иг... 2.02.2010 - 16:41
Pinus Спасибо, Игорь! Поразбираюсь. 3.02.2010 - 03:04
Pinus Собираю разные идеи о том, как можно сравнить нели... 6.02.2010 - 01:30
Pinus Цитата(плав @ 24.07.2010 - 02:05) Та... 23.07.2010 - 23:29

плав Цитата(Pinus @ 24.07.2010 - 00:29) К... 24.07.2010 - 15:25
Pinus Возвращаясь к разговору о значимости различий межд... 11.12.2010 - 07:37
Pinus Ошибки вроде нормальные.
С интерпретацией мне каже... 14.07.2010 - 15:09
плав Цитата(Pinus @ 14.07.2010 - 16:09) О... 16.07.2010 - 16:53
Pinus Цитата(плав @ 17.07.2010 - 00:53) Эт... 19.07.2010 - 01:25
плав Цитата(Pinus @ 19.07.2010 - 02:25) П... 19.07.2010 - 15:00
Pinus Я исходил вообще из следующих соображений. Наприме... 15.07.2010 - 01:35
плав Цитата(Pinus @ 15.07.2010 - 02:35) Я... 16.07.2010 - 17:01
Pinus Цитата(плав @ 17.07.2010 - 01:01) Пр... 19.07.2010 - 01:34
плав Цитата(Pinus @ 19.07.2010 - 02:34) Н... 19.07.2010 - 15:05
Pinus Плав, у меня есть еще вот такая (в чем-то уже стар... 19.07.2010 - 15:20
плав Цитата(Pinus @ 19.07.2010 - 16:20) П... 19.07.2010 - 22:36
Pinus Вы имеете ввиду dummy variables? Я разбирался с эт... 21.07.2010 - 04:01
плав Цитата(Pinus @ 21.07.2010 - 05:01) А... 21.07.2010 - 11:42
Pinus Если брать более конкретный пример, то в каждой гр... 20.07.2010 - 00:07
плав Цитата(Pinus @ 20.07.2010 - 01:07) Е... 20.07.2010 - 19:35
Pinus Большое спасибо, Плав!
Возможные варианты поня... 24.07.2010 - 23:02
Pinus Что-то не получается Nonlinear Estimation с dummy ... 30.07.2010 - 16:50
плав Цитата(Pinus @ 30.07.2010 - 17:50) Ч... 30.07.2010 - 17:36
DrgLena Нелинейное оценивание в Statistica будет абсолютно... 31.07.2010 - 12:18
Pinus Цитата(плав @ 31.07.2010 - 01:36) а ... 2.08.2010 - 05:25
Pinus Вопрос к пользователям профессиональных стат.прогр... 2.08.2010 - 05:39
плав Цитата(Pinus @ 2.08.2010 - 06:39) Во... 2.08.2010 - 10:29
DrgLena Цитата(Pinus @ 2.08.2010 - 05:39) Не... 2.08.2010 - 14:30
Pinus Цитата(DrgLena @ 2.08.2010 - 22:30) ... 3.08.2010 - 09:14
плав Цитата(Pinus @ 3.08.2010 - 10:14) С ... 3.08.2010 - 11:45
DrgLena Я понимаю, что шутки про лес сейчас не уместны, по... 3.08.2010 - 12:51
Pinus Размышлял вот на досуге, и появились такие мысли:
... 26.09.2010 - 02:24
Игорь Цитата(Pinus @ 26.09.2010 - 03:24) Р... 27.09.2010 - 13:30
Pinus Цитата(Игорь @ 27.09.2010 - 21:30) К... 27.09.2010 - 23:24
Pinus В книге Ферстер, Ренц Методы корреляционного и рег... 2.12.2010 - 13:03
Игорь Цитата(Pinus @ 2.12.2010 - 14:03) В ... 2.12.2010 - 17:24
плав Цитата(Игорь @ 2.12.2010 - 17:24) А ... 2.12.2010 - 23:01
Pinus Цитата(плав @ 3.12.2010 - 07:01) Да,... 3.12.2010 - 01:47
Игорь Цитата(плав @ 3.12.2010 - 00:01) Да,... 3.12.2010 - 10:41
DrgLena И мне так показалось.
Вне зависимости от модели в... 3.12.2010 - 11:19
Pinus Цитата(DrgLena @ 3.12.2010 - 19:19) ... 3.12.2010 - 13:31

Игорь Цитата(Pinus @ 3.12.2010 - 13:31) Су... 3.12.2010 - 15:57

Pinus Цитата(Игорь @ 3.12.2010 - 23:57) Ст... 4.12.2010 - 02:50
плав Цитата(DrgLena @ 3.12.2010 - 11:19) ... 4.12.2010 - 17:54
Pinus Цитата(DrgLena @ 6.12.2010 - 02:26) ... 5.12.2010 - 19:34
DrgLena Цитата(Pinus @ 3.12.2010 - 14:31) St... 3.12.2010 - 17:49
Pinus Цитата(DrgLena @ 4.12.2010 - 01:49) ... 4.12.2010 - 02:28
Юсуфходжа Цитата(Pinus @ 4.12.2010 - 03:28) Не... 22.03.2016 - 09:20
DrgLena В данном примере коэффициенты МНК совпадают с по... 4.12.2010 - 18:58
Игорь Цитата(Pinus @ 4.12.2010 - 03:28) Ур... 4.12.2010 - 20:40
Pinus Авторы книги (Ферстер, Ренц) приводят две формулы ... 5.12.2010 - 08:31
Olga44 Ответ DrgLena 4.12.2010-18:58
"У Афифи (стр... 11.12.2010 - 01:58
DrgLena Нужно сохранить AtteStat для широкой виндовской об... 4.12.2010 - 22:12
DrgLena В том, что 3938,337+658,66=4596,997 , а не равно 4... 5.12.2010 - 13:33
Pinus Цитата(DrgLena @ 5.12.2010 - 21:33) ... 5.12.2010 - 16:32
Игорь Исправлена неточность в AtteStat - неверно брались... 5.12.2010 - 16:41
DrgLena pinus, Вы просили меня посчитать в статистике коэф... 5.12.2010 - 16:49
Pinus Цитата(DrgLena @ 6.12.2010 - 00:49) ... 5.12.2010 - 17:25
Pinus Еще раз посмотрел ссылку, которую привел Плав.
Сле... 5.12.2010 - 18:13
DrgLena Так и я вам именно это пытаюсь объяснить, поскольк... 5.12.2010 - 18:26
DrgLena Да, мне так показалось, и я привела строчки из док... 5.12.2010 - 20:34
skrayd Преобразовать нелинейные уравнения системы к виду ... 10.12.2010 - 07:23
nokh Цитата(Pinus @ 11.12.2010 - 09:37) В... 11.12.2010 - 09:18
Pinus Цитата(nokh @ 11.12.2010 - 17:18) За... 11.12.2010 - 10:56
DrgLena Я думала это проблемы моего Internet Expl. захожу ... 11.12.2010 - 11:53
Ivdioni Преобразовать нелинейные уравнения системы к виду ... 11.12.2010 - 22:30
Olga44 Цитата(Ivdioni @ 11.12.2010 - 23:30)... 12.12.2010 - 02:41
DrgLena Цитата(Olga44 @ 11.12.2010 - 01:58) ... 12.12.2010 - 13:49
nokh Цитата(nokh @ 11.12.2010 - 12:18) За... 15.01.2011 - 22:56
Rodgers Здравствуйте уважаемые коллеги! У меня созрел ... 26.01.2013 - 20:18
100$ Цитата(Rodgers @ 26.01.2013 - 20:18)... 27.01.2013 - 00:04
nokh Весёлый Rodgers, будучи настоящим пиратом, не имее... 3.02.2013 - 00:09![]() ![]() |