Perché la regressione lineare non è in grado di prevedere l'esito di una semplice sequenza deterministica?


9

Un mio collega mi ha inviato questo problema apparentemente facendo il giro su Internet:

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

La risposta sembra essere 200.

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

Quando eseguo una regressione lineare in 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')  

Ottengo:

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

Quindi il mio modello lineare prevede .10=154

Quando tracciamo i dati sembra lineare ... ma ovviamente ho assunto qualcosa che non è corretto.

Sto cercando di imparare a utilizzare al meglio i modelli lineari in R. Qual è il modo corretto di analizzare questa serie? Dove ho sbagliato?


7
Ahem . (i) L'espressione del problema è priva di senso. Come può 3 = 18? Sicuramente l'intento è qualcosa come ; (ii) se riesci a vedere abbastanza per scrivere 18 = 3 × 6 , 32 = 4 × 8 , ecc., sicuramente puoi vedere abbastanza per dividere il secondo termine in ognuno di questi ( 6 = 3 × 2 , 8 = 4 × 2 e così via) per scrivere: 18 = 3 × 3 × 2 , 32 =f(3)=1818=3×632=4×86=3×28=4×218=3×3×2 , ecc. Eindividuaimmediatamenteil quadratico, f ( x ) = 2 x 2 . (Hai fatto la parte difficile, il passo successivo è ancora più semplice!)32=4×4×2f(x)=2x2
Glen_b -Reststate Monica

4
Inoltre, il problema ha specificato un criterio di contenuto minimo di informazioni sulla risposta? Se ricordo bene la mia matematica, ci sono un numero infinito infinito di funzioni che si adattano a questi punti, dando tutte risposte diverse per . Non sono tipicamente pedante, ma le e-mail perdute nel tempo lo meritano. f(10)
stella luminosa il

1
@TrevorAlexander se pensi che questa domanda sia una perdita di tempo, perché preoccuparsi di rispondervi? Chiaramente alcune persone lo trovano interessante.
jwg

Risposte:


23

Un modello di regressione, come quello adattato lm()presuppone implicitamente che il processo di generazione dei dati sottostanti sia probabilistico . Stai assumendo che la regola che stai cercando di modellare sia deterministica . Pertanto, esiste una discrepanza tra ciò che si sta tentando di fare e il modo in cui si sta tentando di farlo.

Esistono altri software (cioè non R) progettati esplicitamente per trovare / adattare la funzione più semplice ai dati deterministici (un esempio potrebbe essere Eureqa ). Potrebbe esserci un pacchetto R per quello (che non conosco), ma R è inteso per la modellizzazione statistica dei dati probabilistici.

Per quanto riguarda la risposta che lm()ti ha dato, sembra ragionevole e potrebbe essere giusto. Tuttavia, raccolgo il contesto in cui questo problema è stato presentato implicava che dovesse essere compreso come deterministico. Se così non fosse stato, e ti stavi chiedendo se l'adattamento fosse ragionevole, una cosa che potresti notare è che i due punti di dati estremi sono sopra la linea di regressione, mentre i dati di mezzo sono tutti sotto di essa. Ciò suggerisce una forma funzionale specificata in modo errato. Questo può essere visto anche nella trama dei residui rispetto a quella montata ( plot(lm1, which=1):

inserisci qui la descrizione dell'immagine

Per quanto riguarda il modello adattato da @AlexWilliams, sembra molto meglio:

inserisci qui la descrizione dell'immagine


17
+1 La trama residua racconta la storia in modo tale da non poterla perdere. In effetti, mostra perché "l'aspetto lineare" dell'OP è spesso fuorviante: molte funzioni curve possono sembrare "quasi diritte" se osserviamo solo alcuni punti non vicini a una svolta. Se pensi che sia lineare, togli quella linea e vedi cosa rimane!
Glen_b

1
Informazioni incredibilmente utili! Grazie, lo apprezzo molto
Brett Phinney,

1
Ciò non ha assolutamente nulla a che fare con la distinzione tra dati probabilistici e deterministici. La regressione lineare si adatterebbe ed estrapolerebbe i dati deterministici se fossero lineari. Non riuscirebbe a prevedere bene i dati probabilistici se il modello sottostante fosse quadratico.
jwg

3
n(n1)

Non penso che stia cercando una soluzione perfetta. Sta cercando di capire perché il valore estrapolato è così lontano.
jwg

22

L'andamento è quadratico non lineare. Provare:

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

Aggiornamento: ecco il codice.

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')

E uscita:

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

Questa risposta mi sembra un po 'circolare: il punto centrale del problema è riconoscere il comportamento quadratico. Si sottolinea correttamente che una volta specificato il comportamento quadratico, la regressione lineare può trovare i coefficienti. Ma in effetti hai già fatto l'analisi cruciale quando hai scritto la prima riga di questa risposta.
whuber

5
@whuber - La domanda è perché un modello lineare fallisce. Fallisce perché la forma funzionale non è lineare, è quadratica. Volevo dare una risposta semplice e precisa. La risposta di Gung fa un buon lavoro nell'andare nei dettagli e mostra come è possibile utilizzare i grafici residui per elaborare un modello migliore. (L'ho appena fatto su carta e penna.) Sono d'accordo che la sua risposta è più dettagliata e completa e l'ho votata.
Alex Williams,

13

Esito ad aggiungere alle eccellenti risposte fornite da Alex Williams e Gung, ma c'è un ulteriore punto che dovrei pensare di essere fatto. La domanda usa le frasi "regressione lineare" e "modello lineare", suggerendo forse che significano lo stesso. Tuttavia, il significato abituale di "regressione lineare" si riferisce al modello di regressione lineare classica (CLRM) in cui "lineare" significa "lineare nei parametri". Questa è una condizione sui parametri, non sulle variabili indipendenti. Quindi un modello quadratico come:

Yi=β1+β2Xi2

β1β2

Yi=β1+β2Xi

Xi


1
Ho sempre difficoltà a ricordare questo. Questa è una grande aggiunta alle altre risposte.
nulla101
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.