![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#16
|
|
Группа: Пользователи Сообщений: 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. |
|
![]() |
![]() |
![]()
Сообщение
#17
|
|
Группа: Пользователи Сообщений: 244 Регистрация: 28.08.2009 Пользователь №: 6286 ![]() |
Ошибки вроде нормальные.
С интерпретацией мне кажется проблем не должно быть. Если 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 - 14.07.2010 - 15:12 |
|
![]() |
![]() |
![]()
Сообщение
#18
|
|
Группа: Пользователи Сообщений: 244 Регистрация: 28.08.2009 Пользователь №: 6286 ![]() |
Я исходил вообще из следующих соображений. Например, рассматриваем обычную регрессию. В книгах как пишут: если при включении в модель одного влияющего фактора получается небольшой R^2 (т.е. мы объяснили небольшую долю дисперсии), то можно попытаться включить еще один фактор, который, исходя из теоретических соображений, мог бы влиять. И обычно, такое включение в модель дополнительной объясняющей переменной предполагает прибавление (сумму) эффекта. Я нигде не встречал умножения. Можно предположить эффект взаимодействия объясняющих переменных, но его тоже надо прибавлять. А потом уже оценивать значимость этих эффектов. Или я опять запутался?
Также и в рассматриваемом примере. Возраст, если его влияние рассматривать отдельно от Z, значим. При этом R^2, например, 0,7. Хотим проверить значимость влияния Z - добавляем (суммируем эффект). Неужели возможно произведение? |
|
![]() |
![]() |
![]()
Сообщение
#19
|
|
Группа: Пользователи Сообщений: 1013 Регистрация: 4.10.2006 Пользователь №: 1933 ![]() |
Ошибки вроде нормальные. С интерпретацией мне кажется проблем не должно быть. Если 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, а потом к росту. Интерпретировать коэффициенты нелинейной регрессии на основании их знака нельзя. |
|
![]() |
![]() |
![]()
Сообщение
#20
|
|
Группа: Пользователи Сообщений: 1013 Регистрация: 4.10.2006 Пользователь №: 1933 ![]() |
Я исходил вообще из следующих соображений. Например, рассматриваем обычную регрессию. В книгах как пишут: если при включении в модель одного влияющего фактора получается небольшой R^2 (т.е. мы объяснили небольшую долю дисперсии), то можно попытаться включить еще один фактор, который, исходя из теоретических соображений, мог бы влиять. И обычно, такое включение в модель дополнительной объясняющей переменной предполагает прибавление (сумму) эффекта. Я нигде не встречал умножения. Можно предположить эффект взаимодействия объясняющих переменных, но его тоже надо прибавлять. А потом уже оценивать значимость этих эффектов. Или я опять запутался? Также и в рассматриваемом примере. Возраст, если его влияние рассматривать отдельно от Z, значим. При этом R^2, например, 0,7. Хотим проверить значимость влияния Z - добавляем (суммируем эффект). Неужели возможно произведение? Просто, видимо, смотрели книги, идущие от простоты реализации - мультипликативные эффекты столь же распространены, как и аддитивные. Более того, нормальный анализ модели включает построение полной модели (с мультипликативными взаимодействиями), а затем ее постепенное упрощение, т.е. если есть три фактора А, В, С, то полная модель A+B+C+A*B+A*C+B*C+A*B*C и ее постепенной упрощают, глядя на потерю информации (например, по AIC/BIC, используя разложение суммы квадратов и т.п.) Это все обычно описано в любой книге по дисперсионному анализу (регрессионный идеологически от него ни чем не отличается). То, что Вы описали является не совсем адекватным подходом к моделированию. Идут как раз с конца. На основании теоретических знаний определяют круг возможных влияющих переменных и строят полную модель, затем ее упрощают до значимой потери информации от упрощения. Полученная на предшествующем потере этапе модель и является адекватной, ее и интерпретируют. |
|
![]() |
![]() |
![]()
Сообщение
#21
|
|
Группа: Пользователи Сообщений: 244 Регистрация: 28.08.2009 Пользователь №: 6286 ![]() |
Это Вы все в терминах линейной регрессии мыслите. Получилось так, что написал квадратичную функцию при Z (для общего примера), а сам предполагал у себя линейный эффект, поэтому так вышло. А если f(Z) = b3*Z (линейная функция), то правильна интерпретация? Смотрите коэффициент при Z= +1, но зависимость квадратичная Ввиду нормализации примем, что минимум в районе +3 (т.е. реальная формула (Z-3)^2) Думал эти дни об этом, но не смог понять. То, что нелинейная функция может приводить то к увеличению Y, то к уменьшению, не оспариваю, просто не понятна арифметика. Откуда тройка; это условно e^1? И почему она в минимуме? |
|
![]() |
![]() |
![]()
Сообщение
#22
|
|
Группа: Пользователи Сообщений: 244 Регистрация: 28.08.2009 Пользователь №: 6286 ![]() |
Просто, видимо, смотрели книги, идущие от простоты реализации ... Наверно так. У меня всегда складывалось впечатление, что пошаговая регрессия может осуществляться двумя равнозначными способами: путем добавления переменных в более простую модель или путем изъятия их из более сложной. Но наверно так, как Вы говорите, все же более правильно. |
|
![]() |
![]() |
![]()
Сообщение
#23
|
|
Группа: Пользователи Сообщений: 1013 Регистрация: 4.10.2006 Пользователь №: 1933 ![]() |
Получилось так, что написал квадратичную функцию при Z (для общего примера), а сам предполагал у себя линейный эффект, поэтому так вышло. А если f(Z) = b3*Z (линейная функция), то правильна интерпретация? Думал эти дни об этом, но не смог понять. То, что нелинейная функция может приводить то к увеличению Y, то к уменьшению, не оспариваю, просто не понятна арифметика. Откуда тройка; это условно e^1? И почему она в минимуме? Насчет тройки, просто взятое с потолка число для того, чтобы можно было сделать численный пример. У любой квадратичной функции - очевидно будет минимум (если b>0) или максимум (если b<0). Соответственно, простого описания связи быть не должно, поскольку поведение функции до минимума (максимума) различается. Насчет вопроса, не совсем понял, но фраза "при росте Z f(Z) увеличивается (уменьшается)" является классическим описанием результатов линейной регрессии. |
|
![]() |
![]() |
![]()
Сообщение
#24
|
|
Группа: Пользователи Сообщений: 1013 Регистрация: 4.10.2006 Пользователь №: 1933 ![]() |
Наверно так. У меня всегда складывалось впечатление, что пошаговая регрессия может осуществляться двумя равнозначными способами: путем добавления переменных в более простую модель или путем изъятия их из более сложной. Но наверно так, как Вы говорите, все же более правильно. Правильно, просто забывается, что это за переменные. В стародавние времена, когда весь анализ кодировался, арифметических операций в описании моделей не было. Поэтому, если кому-то надо было проанализировать мультипликативный показатель (известный как взаимодействие), то вначале создавали новую переменную, например agesex=age*sex и ее вводили в модель. Иными словами отношения между компонентами модели описываются как аддитивные (на самом деле просто описываются), но компоненты могут быть как исходными переменными, так и различными их модификациями, включая умножение двух и более переменных. |
|
![]() |
![]() |
![]()
Сообщение
#25
|
|
Группа: Пользователи Сообщений: 244 Регистрация: 28.08.2009 Пользователь №: 6286 ![]() |
Плав, у меня есть еще вот такая (в чем-то уже старая) проблема. Если есть у Вас время, помогите разобраться. Имеется несколько нелинейных по параметрам регрессий. Возьмем ту же функцию: 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 - 15:23 |
|
![]() |
![]() |
![]()
Сообщение
#26
|
|
Группа: Пользователи Сообщений: 1013 Регистрация: 4.10.2006 Пользователь №: 1933 ![]() |
Плав, у меня есть еще вот такая (в чем-то уже старая) проблема. Если есть у Вас время, помогите разобраться. Имеется несколько нелинейных по параметрам регрессий. Возьмем ту же функцию: 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 большое, то размер выборки будет небольшим. Соответственно, доверительные интервалы для коэффициентов регрессии - широкие. Поскольку они широкие, то, следуя приведенной выше ссылке, можно объединять. Иными словами, чем больше групп, тем выше вероятность того, что уравнения регрессии будут одинаковыми. Вывод противоречащий логике. Обычно поступают иначе - работают с полной группой, но тестируют вероятность различия углов наклона дисперсионного уравнения в разных группах - это тот самый мультипликативный элемент, о котором писалось выше. Подход будет аналогичным и в случае нелинейной регрессии, но вот вероятность, что оценки модели "не сойдутся" - выше (значительно). Я бы постарался трансформировать зависимые/независимые переменные и использовать линейные модели именно по причине их более легкой оценки (из-за трансформации проблемы с интерпретацией уже никуда не денутся). |
|
![]() |
![]() |
![]()
Сообщение
#27
|
|
Группа: Пользователи Сообщений: 244 Регистрация: 28.08.2009 Пользователь №: 6286 ![]() |
Если брать более конкретный пример, то в каждой группе не менее 60-70 наблюдений более или менее равномерно распределенных по объясняющим переменным. Т.е. в принципе в каждой группе можно строить полноценную надежную регрессию (R^2 около 0,9; ошибка регрессии тоже 0,9). Остатки в регрессиях групп нормальные, дисперсии остатков стабильны. Число групп например 7. Исходя из предварительных теоретических суждений, несколько групп вероятно не будут иметь различий, а другие могут иметь.
Не обязательно такой упрощенный подход. Я и не надеюсь, что он будет простым. Но может быть есть какие-нибудь специальные Post-hoc или другие критерии и способы. С трансформацией связываться бы не хотелось, потому что очень желательно, чтобы полученные модели имели общепринятую форму функции роста. |
|
![]() |
![]() |
![]()
Сообщение
#28
|
|
Группа: Пользователи Сообщений: 1013 Регистрация: 4.10.2006 Пользователь №: 1933 ![]() |
Если брать более конкретный пример, то в каждой группе не менее 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). |
|
![]() |
![]() |
![]()
Сообщение
#29
|
|
Группа: Пользователи Сообщений: 244 Регистрация: 28.08.2009 Пользователь №: 6286 ![]() |
Вы имеете ввиду dummy variables? Я разбирался с этим методом, но не предполагал, что его можно использовать при нелинейном оценивании. Т.е. надо сформировать конструкцию с фиктивными переменными, но оценки параметров находить итерационными методами?
Обычно поступают иначе - работают с полной группой, но тестируют вероятность различия углов наклона дисперсионного уравнения в разных группах - это тот самый мультипликативный элемент, о котором писалось выше. Подход будет аналогичным и в случае нелинейной регрессии, но вот вероятность, что оценки модели "не сойдутся" - выше (значительно). "Не сойдутся" имеется ввиду сходимость/расходимость итерационного процесса?Цитата Поэтому надо просто объединить все наблюдения в одну группу (это уже будет 60*7=420 наблюдений), создать 6 переменных-пустышек и сделать регрессию с мультипликативными переменными типа: Не совсем ясно, как это сделать для нелинейной по параметрам функции. Чтоб не загромождать, давайте возьмем простой пример. Сначала функция линейная по параметрам, но нелинейная по объясняющим переменным. Например: Y = b0 + b1*A^2. Пусть действует один качественный фактор Q с двумя уровнями. Тогда:Y~per1+per2+group+per1*group+per2*group где per1|per2 - независимые переменные, group - переменная-пустышка (0- группа1, 1- группа 2). 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 - 04:04 |
|
![]() |
![]() |
![]()
Сообщение
#30
|
|
Группа: Пользователи Сообщений: 1013 Регистрация: 4.10.2006 Пользователь №: 1933 ![]() |
А как быть с функциями нелинейными по параметрам? Возьмем мой пример: 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 там в конце разбирается как раз такая ситуация |
|
![]() |
![]() |
![]() ![]() |