La tabella seguente riporta i dati sulla raccolta del pesce serra (in tonnellate) nella baia di Chesapeake, tra il Maryland e la Virginia (presso cui si svolse la battaglia che portò alla conclusione della guerra d'indipendenza americana), relativi a diversi anni, tratti da un giornale americano. Prova a stimare qual è la quantità di pesce pescata nel 2000. |
1940,1945,1950,1955,1960,1965,1970,1975,1980,1985,1990 8, 70, 110, 130, 120, 130, 130, 300, 550, 700,1250 |
Non è facile dare una risposta limitandosi a guardare i dati. La cosa più semplice è rappresentare i dati su carta quadrettata o usando il computer. Ecco, qui sotto a sinistra, che cosa si può ottenere. Non possiamo fare previsioni precise, ma possiamo dire che, se proseguirà a crescere la quantità di pesce raccolto più o meno nello stesso modo possiamo stimare tra le 2000 e le 2500 tonnellate il pesce che verrà pescato nel 2000.
source("http://macosa.dima.unige.it/r.R") a = 1900+c(40,45,50,55,60,65,70,75,80,85,90) p = c(8,70,110,130,120,130,130,300,550,700,1250) Plane(1930,2005, 0,2600); Point(a,p, "brown") # Osservata la disposizione dei punti posso prevedere per il 2000 circa: POINT(2000,2000,"blue"); POINT(2000,2500,"blue") line(2000,2000, 2000,2500, "blue")
Possiamo vedere (per i docenti) anche come esaminare i dati con del software. Lo facciamo soprattutto perché in manuali vari universitari per l'area biologica vengono usati senza alcuna riflessione seria strumenti raffinati (per questi dati si arriva ad esempio a prevedere l'esito con 3 cifre significative approssimando i dati con una funzione esponenziale, con una delle varie tecniche impiegabili). La figura a destra illustra gli esiti di quattro diverse approssimazioni, con una regressione lineare, con una regressione quadratica, con una regressione cubica, con una regressione esponenziale. Chi è interressato può vedere qui sotto come sono state ottenute le diverese rappresentazioni.
source("http://macosa.dima.unige.it/r.R") A = 1900+c(40,45,50,55,60,65,70,75,80,85,90) P = c(8,70,110,130,120,130,130,300,550,700,1250) BF=4; HF=3 BF=3.8; HF=2.7 Plane(1930,2005, 0,2600); Point(A,P, "brown") # Vediamo che cosa si ottiene con tecniche di regressione. Regressione lineare: regression1(A,P) # 18.91 * x + -36840 r1 = function(x) 18.91 * x + -36840 graph1(r1,1930,2005, "blue") # regressione quadratica: regression2(A,P) # messaggio di errore: numeri troppo grossi; potrei scalare tutti i dati, # ritracciare il grafico, ..., oppure uso questo "trucco" (tolgo 1940): regression2(A-1900,P) # 0.779 * x^2 + -82.3 * x + 2180 r2a = function(x) 0.779 * x^2 + -82.3 * x + 2180 r2 = function(x) r2a(x-1900) graph1(r2,1930,2005, "seagreen") # regressione cubica: regression3(A-1900,P) # 0.0307 * x^3 + -5.21 * x^2 + 293 * x + -5360 r3a = function(x) 0.0307 * x^3 + -5.21 * x^2 + 293 * x + -5360 r3 = function(x) r3a(x-1900) # trasformo i dati in scala logaritmica, trovo la regressione lineare, # e poi torno alla scala originale: graph1(r3,1930,2005, "brown") P1=log(P) regression1(A,P1) # 0.07463 * x + -141.6 a=exp(-141.6); b=0.07463 u = function(x) a*exp(b*x) graph1(u,1930,2005, "black") # ritraccio i punti Point(A,P, "brown") # Che cosa le quattro funzioni trovate associano a 2000: Point(2000,r1(2000),"blue"); Point(2000,r2(2000),"seagreen") Point(2000,r3(2000),"brown"); Point(2000,u(2000),"black")