Форум врачей-аспирантов

Здравствуйте, гость ( Вход | Регистрация )

> Трансплантация коэффициентов уравнения линейной регрессии от одной модели другой, в R
ИНО
сообщение 28.04.2025 - 19:05
Сообщение #1





Группа: Пользователи
Сообщений: 262
Регистрация: 1.06.2022
Из: Донецк
Пользователь №: 39632



Задача в том, чтобы обучить модель линейной регрессии (см. тему соседнюю) на одних данных, а потом применить к другим, при этом не меняя коэффициентов. Извлечь коэффициенты из объекта класса "lm" легко, но как правильно передать другой модели? С некоторым удивлением не обнаружил в синтаксисе функции lm() возможности задачи пользовательских коэффициентов для каждого члена уравнения. На буржуйских формах что-то пишут о применении служебной функции offset(), но я так и не понял как ее запрограммировать в случае множественной регрессии со взаимодействиями категориальных переменных с числовыми. Поэтому возникла идея тупой "пересадки органов". Логика подсказывает, что помимо $coefficients требуется пересадить еще и $fitted.values (в моем случае все наблюдения во модели-реципиенте являются подмножеством наблюдений на которых построена модель-донор, так что можно просто выкинуть лишние значения). Если бы это было не так, можно было бы подогнать новые, применив к модели-донору функцию predict() с наблюдениями, используемыми в модели-реципиенте, в качестве аргумента newdata. Далее следует поменять остатки ($residuals). Их можно не пересаживать, а вычислить, вычтя пересаженные $fitted.values из родных для реципиента $model$имя_зависимой_переменной. Достаточно ли перечисленных операций для того, чтобы модель-реципиент стала вести себя так, будто была построена на априорно заданных коэффициентах в таких задачах как построение доверительных интервалов, вычисление F-статистики и R2? Или надо пересаживать что-то еще? Просто внутри объекта "lm", помимо вышеназванного, напихано много всякого, что недоступно моему разумению. Быть может, без редактирования чего-нибудь из этого в дополнение к проделанным трансплантациям органов, чье назначение мне ясно, организм донора будет функционировать не совcем правильно, выдавая вместо ожидаемых от него результатов погоду на Луне?

Сообщение отредактировал ИНО - 28.04.2025 - 19:05
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
 
Открыть тему
Ответов
Игорь
сообщение 4.05.2025 - 13:24
Сообщение #2





Группа: Пользователи
Сообщений: 1141
Регистрация: 10.04.2007
Пользователь №: 4040



Цитата(ИНО @ 28.04.2025 - 19:05) *
Задача в том, чтобы обучить модель линейной регрессии (см. тему соседнюю) на одних данных
Это стадия обучения. Получится обученная модель.
Цитата(ИНО @ 28.04.2025 - 19:05) *
а потом применить к другим, при этом не меняя коэффициентов.
Это стандартная стадия распознавания.

Задача в любых электронных таблицах решается на "ура".

В чем сложность? Предположу, сложность в выбранной реализации. Когда-то тоже думал, что было бы неплохо иллюстрировать алгоритмы программными текстами на чем-либо типа R в дополнение к теории с формулами. Оказалось всё гораздо печальнее. Книжный рынок заполнили издания по анализу данных, во многих из которых вообще нет формул, только вызовы R или Python. Нескольких лет хватило для выработки иммунитета: знакомство с книгами или статьями с упоминанием R или Python - пустая трата времени.

Сообщение отредактировал Игорь - 4.05.2025 - 13:25


Signature
Ebsignasnan prei wissant Deiws ainat! As gijwans! Sta ast stas arwis!
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 

Сообщений в этой теме


Добавить ответ в эту темуОткрыть тему