Почему линейная регрессия не способна предсказать исход простой детерминированной последовательности?


9

Мой коллега прислал мне эту проблему, очевидно, делая обходы в Интернете:

If $3 = 18, 4 = 32, 5 = 50, 6 = 72, 7 = 98$, Then, $10 =$ ?

Ответ, кажется, 200.

3*6  
4*8  
5*10  
6*12  
7*14  
8*16  
9*18  
10*20=200  

Когда я делаю линейную регрессию в R:

data     <- data.frame(a=c(3,4,5,6,7), b=c(18,32,50,72,98))  
lm1      <- lm(b~a, data=data)  
new.data <- data.frame(a=c(10,20,30))  
predict  <- predict(lm1, newdata=new.data, interval='prediction')  

Я получил:

  fit      lwr      upr  
1 154 127.5518 180.4482  
2 354 287.0626 420.9374  
3 554 444.2602 663.7398  

Итак, моя линейная модель предсказывает .10=154

Когда я строю данные, они выглядят линейными ... но, очевидно, я предположил что-то не то.

Я пытаюсь узнать, как лучше всего использовать линейные модели в R. Как правильно анализировать этот ряд? Где я неправ?


7
f(3)=1818=3×632=4×86=3×28=4×218=3×3×232=4×4×2f(x)=2x2

4
f(10)

1
@TrevorAlexander, если вы думаете, что этот вопрос - пустая трата времени, зачем отвечать на него? Очевидно, некоторые люди находят это интересным.
JWG

Ответы:


23

Модель регрессии, такая как модель соответствия, lm()неявно предполагает, что основной процесс генерации данных является вероятностным . Вы предполагаете, что правило, которое вы пытаетесь смоделировать, является детерминированным . Следовательно, существует несоответствие между тем, что вы пытаетесь сделать, и тем, как вы пытаетесь это сделать.

Есть другое программное обеспечение (то есть, не R), которое явно разработано, чтобы найти / приспособить простейшую функцию к детерминированным данным (примером может служить Eureqa ). Для этого может быть пакет R (о котором я не знаю), но R предназначен для статистического моделирования вероятностных данных.

Что касается ответа, который lm()вы дали, он выглядит разумным и может быть правильным. Однако я понимаю, что контекст, в котором эта проблема была представлена, подразумевает, что ее следует понимать как детерминистическую. Если это не так, и вы задаетесь вопросом, было ли это соответствие разумным, вы могли бы заметить одну вещь: две крайние точки данных находятся выше линии регрессии, а средние данные находятся ниже нее. Это говорит о неправильно определенной функциональной форме. Это также можно увидеть на графике остатков и подгонки ( plot(lm1, which=1):

введите описание изображения здесь

Что касается модели, подходящей от @AlexWilliams, она выглядит намного лучше:

введите описание изображения здесь


17
+1 Остаточный сюжет рассказывает историю так, что ее нельзя пропустить. Действительно, это показывает, почему «внешний вид» ОП часто вводит в заблуждение - многие изогнутые функции могут выглядеть «почти прямыми», если смотреть только на несколько точек, не близких к поворотной точке. Если вы думаете, что это линейно, возьмите эту линию и посмотрите, что осталось!
Glen_b

1
Невероятно полезная информация! Спасибо, я действительно ценю это
Бретт Финни

1
Это не имеет абсолютно никакого отношения к различию между вероятностными и детерминированными данными. Линейная регрессия будет соответствовать и экстраполировать детерминированные данные, если они будут линейными. Было бы невозможно хорошо прогнозировать вероятностные данные, если бы базовая модель была квадратичной.
JWG

3
n(n1)

Я не думаю, что он ищет идеальную посадку. Он пытается понять, почему экстраполированное значение так далеко.
JWG

22

Тенденция является квадратичной, а не линейной. Пытаться:

lm1 <- lm(b~I(a^2), data=data)

Обновление: вот код.

data <- data.frame(a=c(3,4,5,6,7),b=c(18,32,50,72,98))
lm1 <- lm(b~I(a^2), data=data)
new.data <- data.frame(a=c(10,20,30))
predict(lm1, newdata = new.data, interval='prediction')

И вывод:

   fit  lwr  upr
1  200  200  200
2  800  800  800
3 1800 1800 1800

Этот ответ кажется мне немного круглым: весь смысл проблемы в том, чтобы распознать квадратичное поведение. Вы правильно указываете, что, как только задано квадратичное поведение, линейная регрессия может найти коэффициенты. Но в действительности вы уже провели критический анализ к тому времени, как записали первую строку этого ответа.
whuber

5
@whuber - Вопрос в том, почему линейная модель терпит неудачу. Это терпит неудачу, потому что функциональная форма не линейна, она квадратична. Я хотел дать ответ простой и по существу. Ответ Ганга хорошо разбирается в деталях и показывает, как вы можете использовать остаточные графики, чтобы придумать лучшую модель. (Я только что сделал это ручкой и бумагой.) Я согласен, что его ответ является более подробным и полным, и я проголосовал за него.
Алекс Уильямс

13

Я не решаюсь добавить к отличным ответам, данным Алексом Уильямсом и Гангом, но есть еще один момент, который, я думаю, следует сделать. В вопросе используются фразы «линейная регрессия» и «линейная модель», возможно, предполагающие, что они означают одно и то же. Однако обычное значение «линейной регрессии» относится к Классической модели линейной регрессии (CLRM), в которой «линейный» означает «линейный по параметрам». Это условие для параметров, а не для независимых переменных. Итак, квадратичная модель, такая как:

Yi=β1+β2Xi2

β1β2

Yi=β1+β2Xi

Xi


1
Мне всегда трудно помнить это. Это отличное дополнение к другим ответам.
naught101
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.