Я знаю, как выполнить линейную регрессию на множестве точек. То есть я знаю, как подогнать полином по своему выбору для данного набора данных (в смысле LSE). Однако чего я не знаю, так это как заставить мое решение пройти через некоторые конкретные пункты моего выбора. Я видел, как это было сделано раньше, но я не могу вспомнить, как была вызвана процедура, не говоря уже о том, как это было сделано.
В качестве очень простого и конкретного примера, давайте скажем, что у меня есть 100 точек, разбросанных по плоскости xy, и я решил вписать в них полином любого порядка. Я знаю, как выполнить эту линейную регрессию очень хорошо. Однако, давайте скажем, что я хочу «заставить» свое решение пройти, скажем, три из моих точек данных в x-координатах , и , (и их соответствующие y-координаты конечно).х = 19 х = 89
Как называется эта общая процедура, как она выполняется и есть ли какие-то конкретные подводные камни, о которых мне нужно знать?
Редактировать:
Я хотел бы добавить, что я ищу конкретный способ сделать это. Я написал программу, которая фактически выполняет линейную регрессию одним из двух способов, обращая ковариационную матрицу напрямую или посредством градиентного спуска. Я спрашиваю, как именно шаг за шагом изменить то, что я сделал, чтобы заставить полиномиальное решение проходить через определенные точки?
Благодарность!
Ответы:
Рассматриваемая модель может быть написана
где - это многочлен степени проходящий через заранее определенные точки и - случайный. (Используйте интерполяционный полином Лагранжа .) Запись позволяет переписать эту модель какр ( хя) = уя ( x 1 , y 1 ) , … , ( x d , y d ) ε ( x - x 1 ) ⋯ ( x - x d ) = r ( x )d- 1 ( х1, у1) , … , ( Xd, уd) ε ( х - х1) ⋯ ( х - хd) = r ( x )
которая является стандартной множественной регрессии МНК проблема с той же структурой, что и ошибки оригинала , где независимые переменные являются величины . Просто вычислите эти переменные и запустите знакомое вам регрессионное программное обеспечение , убедившись, что оно не содержит постоянного члена. Применяются обычные предостережения о регрессиях без постоянного термина; в частности, может быть искусственно высоким; обычные интерпретации не применяются.р + 1 i = 0 , 1 , … , p R 2г ( х ) хя, я = 0 , 1 , … , р R2
(Фактически, регрессия через начало координат является частным случаем этой конструкции, где , и , так что модель имеет вид )( x 1 , y 1 ) = ( 0 , 0 ) p ( x ) = 0 y = β 0 x + ⋯ + β p x p + 1 + ε .d=1 (x1,y1)=(0,0) p(x)=0 y=β0x+⋯+βpxp+1+ε.
Вот рабочий пример (в
R
)Три фиксированные точки показаны сплошным красным цветом - они не являются частью данных. Неограниченное полиномиальное наименьшее квадратичное соответствие четвертого порядка показано черной пунктирной линией (имеет пять параметров); ограниченная подгонка (порядка пяти, но только с тремя свободными параметрами) показана красной линией.
Проверка вывода наименьших квадратов (
summary(fit0)
иsummary(fit)
) может быть поучительной - я оставляю это заинтересованному читателю.источник
Если вы хотите, чтобы линия регрессии прошла через одну точку, это можно сделать окольным путем. Допустим, ваша точка зрения . Вы просто повторно центрируете свои данные с этой точкой в качестве источника. То есть вы вычитаете из каждого значения , а из каждого значения . Теперь точка находится в начале координатной плоскости. Затем вы просто подгоняете линию регрессии, подавляя перехват (заставляя перехват быть равным (0,0). Поскольку это линейное преобразование, вы можете легко преобразовать все впоследствии, если хотите).(xi,yi) x y i yxi x yi y
Если вы хотите, чтобы линия проходила через две точки в плоскости XY, это тоже довольно легко сделать. Любые две точки могут соответствовать линии. Вы можете использовать формулу точка-наклон, чтобы вычислить ваш наклон, а затем использовать одну из точек, наклон и уравнение линии, чтобы найти точку пересечения.
Обратите внимание, что может оказаться невозможным провести прямую линию через три точки в координатной плоскости. Тем не менее, мы можем гарантировать, что они могут идеально соответствовать параболе (то есть, используя и и ). Для этого тоже есть алгебра, но по мере продвижения вверх, может быть проще установить модель с программным обеспечением, включив в набор данных только эти три (более) точки. Точно так же вы могли бы получить прямую линию, которая наилучшим образом приближает эти три точки, подгоняя модель, которая имеет доступ только к этим трем точкам. X 2X X2
Однако в этот момент я вынужден упомянуть, что это, возможно, не очень хорошая вещь (если ваша теория не дает очень веских причин для этого). Возможно, вы также захотите изучить байесовскую регрессию , где вы можете позволить своей модели находить наилучшее сочетание информации в ваших данных и некоторой предварительной информации (которую вы могли бы использовать, например, для сильного смещения вашего перехвата в ноль, без заставляя его).
источник
Чтобы добавить немного дополнительной информации к превосходному охвату @ gung линейного случая, в случае полинома более высокого порядка вы можете сделать это точно или приблизительно (но в значительной степени так, как вам нужно).
Во-первых, обратите внимание, что степени свободы для многочлена (или даже любой подобранной функции) должны быть как минимум такими же, как и число «известных» точек. Если степени свободы равны, данные вообще не нужны, так как кривая полностью определена. Если существует больше «известных» точек, вы не можете решить их (если только они не лежат на одном и том же полиноме указанной степени, и в этом случае будет достаточно любого подмножества подходящего размера). С этого момента, я просто буду говорить о том, когда многочлен имеет больше df, чем известные точки (например, кубика - с 4df - и три известные точки, так что кубика не переопределяется известными точками и не определяется ими полностью) ,
1) «кривая должна проходить через эту точку» - это линейное ограничение на параметры, приводящее к ограниченному оцениванию или ограниченному наименьшему квадрату (хотя оба члена могут включать в себя другие вещи, кроме линейных ограничений, таких как ограничения положительности). Вы можете включить линейные ограничения либо
(а) изменение параметризации для неявного включения каждого ограничения, приводящего к модели более низкого порядка.
(б) использование стандартных инструментов, которые могут включать линейные ограничения на параметры наименьших квадратов. (обычно с помощью формулы, приведенной выше)
2) Другой способ - через взвешенную регрессию. Если вы даете известным точкам достаточно большой вес, вы можете получить, по существу, такое же соответствие, как в (1). Это часто легко реализуется, может быть значительно быстрее, чем повторная параметризация, и может быть сделано в пакетах, которые не предлагают ограниченного соответствия.
Все предостережения @ gung применяются
источник