Un de mes collègues m'a envoyé ce problème apparemment en faisant le tour sur Internet:
If $3 = 18, 4 = 32, 5 = 50, 6 = 72, 7 = 98$, Then, $10 =$ ?
La réponse semble être 200.
3*6
4*8
5*10
6*12
7*14
8*16
9*18
10*20=200
Quand je fais une régression linéaire dans 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')
Je reçois:
fit lwr upr
1 154 127.5518 180.4482
2 354 287.0626 420.9374
3 554 444.2602 663.7398
Mon modèle linéaire prédit donc .
Quand je trace les données, elles semblent linéaires ... mais évidemment j'ai supposé quelque chose qui n'est pas correct.
J'essaie d'apprendre comment utiliser au mieux les modèles linéaires dans R. Quelle est la bonne façon d'analyser cette série? Où me suis-je trompé?
r
regression
lm
Brett Phinney
la source
la source
Réponses:
Un modèle de régression, tel que celui ajusté par,
lm()
suppose implicitement que le processus de génération de données sous-jacent est probabiliste . Vous supposez que la règle que vous essayez de modéliser est déterministe . Par conséquent, il y a un décalage entre ce que vous essayez de faire et la façon dont vous essayez de le faire.Il existe d'autres logiciels (c'est-à-dire pas R) qui sont explicitement conçus pour trouver / adapter la fonction la plus simple à des données déterministes (un exemple serait Eureqa ). Il peut y avoir un package R pour cela (que je ne connais pas), mais R est destiné à la modélisation statistique des données probabilistes.
Quant à la réponse qui
lm()
vous a été donnée, elle semble raisonnable et pourrait être exacte. Cependant, je suppose que le contexte dans lequel ce problème a été présenté implique fortement qu'il doit être compris comme déterministe. Si cela n'avait pas été le cas et que vous vous demandiez si l'ajustement était raisonnable, une chose que vous pourriez remarquer est que les deux points de données extrêmes sont au-dessus de la ligne de régression, tandis que les données du milieu sont toutes en dessous. Cela suggère une forme fonctionnelle mal spécifiée. Cela peut également être vu dans les graphiques résiduels vs ajustés (plot(lm1, which=1
):Quant au modèle ajusté par @AlexWilliams, il semble beaucoup mieux:
la source
La tendance est quadratique et non linéaire. Essayer:
Mise à jour: voici le code.
Et sortie:
la source
J'hésite à ajouter aux excellentes réponses données par Alex Williams et Gung, mais il y a un autre point qui devrait, je pense, être souligné. La question utilise les expressions «régression linéaire» et «modèle linéaire», suggérant peut-être qu'elles signifient la même chose. Cependant, le sens habituel de «régression linéaire» fait référence au modèle de régression linéaire classique (CLRM) dans lequel «linéaire» signifie «linéaire dans les paramètres». C'est une condition sur les paramètres, pas sur les variables indépendantes. Donc un modèle quadratique tel que:
la source