Un grande magazzino che vende il prodotto Q per esigenze di pianificazione
vuole individuare una funzione che approssimi il numero di Q venduti complessivamente (anche da altri)
in funzione del tempo. Dispone dei dati seguenti, relativi alle vendite complessive di Q in particolari giorni,
dove il numero di Q è espresso in centinaia:
giorni | 0 | 20 | 40 | 60 | 80 | 100 | 120 |
n. di Q | 704 | 550 | 518 | 402 | 391 | 327 | 312 |
Non ha molto senso affrontare con tecniche statistiche questo problema. Vediamo
il perché.
••• Facciamo, inizialmente, calcoli e rappresentazioni grafiche con R (vedi).
Potremmo pensare di interpolare i dati mediante usa spline cubica
(vedi curve approssimanti; sotto, (a), le istruzioni):
Potremmo pensare di approssimarli mediante una retta di regressione (vedi Correlazione tra variabili casuali; sotto, (b), le istruzioni):
Bastano questi esempi per rendersi conto che è minimamente significativo ricorrere in casi come questo
a strumenti matematici così raffinati:
• abbiamo dati certi, ma non ha molto senso ricorrere ad una
interpolazione nel caso di dati come questi, né per stimare i valori di "y" per valori di
"x" minori di 120, né per stimarli per valori di "x" maggiori di 120 (per x=180
si avrebbe y=1710!);
• l'approssimazione mediante una regressione lineare o polinomiale
di secondo grado, come evidenziato dai grafici, danno luogo ciascuna a valori molto diversi;
• ha senso solo stimare, con un po' di buon senso, in circa 37000
il numero dei prodotti vednuti il giorno 85º.
••• Per lo studio dei polimoni di regressione si possono usare anche questi script online e per fare i grafici questi altri:
••• Possiamo anche usare online www.wolframalpha.com. Vedi qui.
linear fit {(0,704), (20,550), (40,518), (60,402), (80,391),(100,327),(120,312) }
645.107 - 3.12321 x
quadratic fit {(0,704), (20,550), (40,518), (60,402), (80,391),(100,327),(120,312) }
0.0221726 x^2 - 5.78393 x + 689.452
plot y=645.107 - 3.12321 x, y=0.0221726 x^2 - 5.78393 x + 689.452, x=0..200
(a)
x = c( 0, 20, 40, 60, 80,100,120) y = c(704,550,518,402,391,327,312) range(x); range(y) # 0 120 312 704 # Ricavo la spline cubica, e ne stimo il range tra 0 e 180 SF = splinefun(x,y); RANGE0(SF, 0,180) # "~ min F(min) Max F(Max) mFMF[1:4] = " # 112.9793 302.8431 180.0000 1710.3206 BF=4; HF=2.5; Plane(0,185, 0,1750); POINT(x,y, "brown") graph2(SF, 0,185, "seagreen") xx = c(85,180); SF(xx); point0(xx,SF(xx), "brown") # 381.036 1710.321
(b)
regression1(x,y) # -3.123 * x + 645.1 f = function(x) -3.123 * x + 645.1 Plane(0,185, 0,750); POINT(x,y, "brown") f(xx); point0(xx,f(xx), "brown") # 379.645 82.960
(c)
regression2(x,y) # 0.0222 * x^2 + -5.78 * x + 689 g = function(x) 0.0222 * x^2 + -5.78 * x + 689; RANGE0(g, 0,180) # "~ min F(min) Max F(Max) mFMF[1:4] = " # 130.1890 312.7793 0.0000 689.0000 Plane(0,185, 0,700); POINT(x,y, "brown"); graph2(g, 0,185, "seagreen") g(xx) # 358.095 367.880 point0(xx,g(xx), "brown")