Está en la página 1de 4

Regresión lineal

Recta que minimiza la distancia entre los puntos observados y los


puntos sobre la recta

Residuo → distancia entre un punto observado y el correspondiente


punto sobre la recta

r i = y i − y^ i donde y^ i es el punto iesimo sobre la recta

y^ i =c 1 x i +c o

r i = y i −(c 1 x i +c o )
N N
SSR=∑ r 2i =∑ [ y i −(c 1 x i +c o )]²
i=1 i=1

N
d SSR
=∑ (−2)[ y i −(c 1 x i +c o )]
d c o i=1
N
d SSR
=∑ (−2 x i )[ y i −(c 1 x i +c o )]
d c 1 i=1
N

∑ (−2)[ y i−(c1 xi +co)]=0


i=1

∑ (−2 xi)[ y i−(c1 xi +co )]=0


i=1

N N N

∑ c o +∑ c 1 x i =∑ y i (I)
i=1 i=1 i=1

N N N
2
∑ co xi +∑ c1 x =∑ x i yi (II)
i
i=1 i=1 i=1

N N
c o N +c 1 ∑ x i =∑ y i (I)
i=1 i=1

N N N
2
c o ∑ x i +c 1 ∑ x =∑ x i y i (II)
i
i=1 i=1 i=1

N N
1 1
c o + c 1 ( ) ∑ x i =( ) ∑ y i (I)
N i=1 N i=1
N N N
1 1 1
c o ( ) ∑ x i +c 1 ( ) ∑ x 2i =( ) ∑ x i y i (II)
N i=1 N i=1 N i=1
N N
1 1
Si x̄=( ) ∑ x i y ȳ=( ) ∑ y i
N i=1 N i=1

c o +c 1 x̄= ȳ (I)
N N N
1 1 1
c o ( ) ∑ x i +c 1 ( ) ∑ x 2i =( ) ∑ x i y i (II)
N i=1 N i=1 N i=1

1 x̄ ȳ

[ x̄ (
1
N i=1
N
2
) ∑ xi ][] [
c0
c1
= 1
N
( )∑ x i yi
N i=1 ]
A x = b

Coeficiente de determinación

∑ ( y i− y^ i)
R 2 =1− i=1
N

∑ ( yi− ȳ)
i=1
Código clase

import matplotlib.pyplot as plt


import numpy as np

N=100
x=np.sort(np.random.rand(N) * 100)
y=np.sort(np.random.rand(N) * 100)

A=[[1,(1/N)*np.sum(x)],[np.average(x),np.average(x**2)]]
b=[[np.average(y)],[np.average(x*y)]]
c=np.linalg.solve(A,b)
print(c)

p=np.polyfit(x,y,1)
xr=x #np.arange(x[0], x[-1], 1)
yr=np.polyval(p,xr)
print(p)

plt.figure()
plt.plot(x,y, ".r")
plt.plot(xr,yr,"b")
plt.plot(xr,yr,".g")

También podría gustarte