Esempio 1¶

Chiede l'inserimento manuale di $n$ coppie, ciascuna nella forma $[x_i,y_i]$, calcola i coefficienti della retta di regressione e li riporata nell'output in forma testuale.

Importa le funzioni del modulo (libreria) NumPy

In [ ]:
import numpy as np

Presenta un prompt e chiede il numero $n$ delle coppie di dati. Evidentemente dev'essere $n>2$.

In [ ]:
n = int(input("Inserire il numero di coppie di dati: "))

Chiede l'inserimento di ciascuna coppia, valuta la correttezza del contenuto e quindi la aggiunge all'array delle coppie di dati.

In [ ]:
coppie_dati = []
for i in range(n):
    coppia_dati = np.array(eval(input(" " + str(i+1) + "^ :> ")))
    coppie_dati.append(coppia_dati)

nparray = np.array(coppie_dati)

Traspone le coppie di dati separando in un array le ascisse dalle ordinate.

In [ ]:
nparrayX_Y = nparray.transpose()

Assegna le ascisse all'array dati_x e le ordinate a dati_y.

In [ ]:
dati_x = nparrayX_Y[0]
dati_y = nparrayX_Y[1]

Esegue i prodotti $x_i\cdot y_i$ e formandone un array.

In [ ]:
XY = dati_x*dati_y

Esegue il quadrato delle $x_i$.

In [ ]:
quadrato_x = dati_x**2

Applica le formule (12) e (11) della pagina di teoria regressione01.html per il calcolo della pendenza $a$ e dell'intercetta $b$.

In [ ]:
a = (n*sum(XY) - sum(dati_x)*sum(dati_y)) / (n*sum(quadrato_x) - sum(dati_x)**2)
b = (sum(dati_y) - a*sum(dati_x))/n

Riporta in output la pendenza $a$ della retta di regressione e della sua intercetta $b$.

In [ ]:
print("dati inseriti")
print(nparray)
print("output")
print("a = " + str(a))
print("b = " + str(b))
dati inseriti
[[ 0  0]
 [ 1  1]
 [-5 -5]]
output
a = 1.0
b = 0.0