
Bruno Cornelio
PreguntaHola, ¿Cómo funciona el código que dice np.sum((x - m_x) * (y - m_y))? Es decir, x es un conjunto de datos (ejemplo: 5 objetos) y cada uno tiene un orden, lo mismo para y. Entonces python agarra el promedio de esta lista y lo resta por cada uno de sus datos, esto me daría otro conjunto de 5 objetos en esa operación, lo mismo para y - m_y. Según tenía entendido, si multiplicamos estos dos conjuntos me tendría que dar 25 objetos (?). Es un poco confuso ya que también sería lógico decir que haga la sumatoria de estos 25 objetos. Entonces para que la lógica funcione, python acá respeta el orden del conjunto x y del conjunto y y solo hace la multiplicación entre los que están en el mismo numero de orden, cierto? Cómo haría con un conjunto desigual, x tiene 5 e y tiene 6 objetos (caso que no tiene nada que ver), mi teoría es que solo hace la multiplicación de todos los objetos del grupo x y solamente los 5 primeros del conjunto.

Daniela Betancur
hola bruno, fijate que en main tenemos un pedacito de la funcion main
def main(): #dataset x=np.array([1,2,3,4,5]) y=np.array([2,3,5,6,5]) #es una lista que comezara a iterar mas adelante # aca llamamos a esta funcionmiremos que contiene #obtenemos b1 y b2 b= estimate_b0_b1(x,y) #veamos esta funcion def estimate_b0_b1(x,y): n= np.size(x) #nos ayuda a contar el tamaño de x #calculo de los promedios de x y y m_x, m_y = np.mean(x), np.mean(y) #se calcula el promedio de los valores x Y y #calculo sumatoria de xy y sumatoria de xx sumatoria_xy= np.sum((x-m_x)*(y-m_y))
ahora mira, lo importante aca es que como se indica en el video sum se refiere a sumatoria no a una suma aritmética "+" eso hace que para cada valor x en la posición cero de mi lista. fijate que le damos un argumento esta operacion:
(x - m_x) * (y - m_y)
indica, x=np.array([1,2,3,4,5]) se reste con el promedio m_x y luego se multiplique con la operacion similar (y-m_y) donde se esta iterando y=np.array([2,3,5,6,5])... y luego vamos hacer todo con la posicion 0.. en numeros seria algo como:
recuerda: m_x=3 m_y=4.2 primera iteracion pocision 0, x=1 y=2 (1-3)(2-4.2) (-2)(-2.2)= 4,4
ahora la segunda iteración posición , x=2 y=3 (1-2)*(3-4.2)= 1.2 ...
asi continuamos y tendremos 5 resultados que seran= 4,4 1,2 0 1.8 1.6
ahora sum hará la sumatoria y arrojara el valor de 9
solo nos dara un valor, en 5 iteraciones que realizo... hizo todos estos calculos por que se lo pedimos en
si quieres te fijas haciendo un print en estimate_bo_b1
def estimate_b0_b1(x,y): n= np.size(x) #nos ayuda a contar el tamño de x #calculo de los promedios de x y y m_x, m_y = np.mean(x), np.mean(y) #calculo sumatoria de xy y sumatoria de xx sumatoria_xy= np.sum((x-m_x)*(y-m_y)) sumatoria_xx= np.sum(x*(x-m_x)) print(sumatoria_xy)
has la opraciones a mano como lo pidio el profe y todo te quedara muy claro