Мой коллега прислал мне эту проблему, очевидно, делая обходы в Интернете:
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
Итак, моя линейная модель предсказывает .
Когда я строю данные, они выглядят линейными ... но, очевидно, я предположил что-то не то.
Я пытаюсь узнать, как лучше всего использовать линейные модели в R. Как правильно анализировать этот ряд? Где я неправ?
r
regression
lm
Бретт Финни
источник
источник
Ответы:
Модель регрессии, такая как модель соответствия,
lm()
неявно предполагает, что основной процесс генерации данных является вероятностным . Вы предполагаете, что правило, которое вы пытаетесь смоделировать, является детерминированным . Следовательно, существует несоответствие между тем, что вы пытаетесь сделать, и тем, как вы пытаетесь это сделать.Есть другое программное обеспечение (то есть, не R), которое явно разработано, чтобы найти / приспособить простейшую функцию к детерминированным данным (примером может служить Eureqa ). Для этого может быть пакет R (о котором я не знаю), но R предназначен для статистического моделирования вероятностных данных.
Что касается ответа, который
lm()
вы дали, он выглядит разумным и может быть правильным. Однако я понимаю, что контекст, в котором эта проблема была представлена, подразумевает, что ее следует понимать как детерминистическую. Если это не так, и вы задаетесь вопросом, было ли это соответствие разумным, вы могли бы заметить одну вещь: две крайние точки данных находятся выше линии регрессии, а средние данные находятся ниже нее. Это говорит о неправильно определенной функциональной форме. Это также можно увидеть на графике остатков и подгонки (plot(lm1, which=1
):Что касается модели, подходящей от @AlexWilliams, она выглядит намного лучше:
источник
Тенденция является квадратичной, а не линейной. Пытаться:
Обновление: вот код.
И вывод:
источник
Я не решаюсь добавить к отличным ответам, данным Алексом Уильямсом и Гангом, но есть еще один момент, который, я думаю, следует сделать. В вопросе используются фразы «линейная регрессия» и «линейная модель», возможно, предполагающие, что они означают одно и то же. Однако обычное значение «линейной регрессии» относится к Классической модели линейной регрессии (CLRM), в которой «линейный» означает «линейный по параметрам». Это условие для параметров, а не для независимых переменных. Итак, квадратичная модель, такая как:
источник