Regresión lineal por mínimos cuadrados en Matlab: Tutorial paso a paso

Tutoingeniero
8 Feb 202213:10

Summary

TLDREl video ofrece una guía detallada sobre cómo realizar una regresión lineal por mínimos cuadrados en MATLAB. Se describen los pasos necesarios para crear un código que tome dos vectores de entrada de igual longitud, que representan los pares de coordenadas x e y. La función resultante calculará los coeficientes de la recta, así como los valores estadísticos relevantes, como el error estándar y los coeficientes de determinación y correlación. Además, se muestra cómo evaluar la recta en un punto específico y cómo generar una gráfica que incluya los datos y la recta ajustada. El video concluye con la posibilidad de calcular un valor en la recta y cómo visualizarlo en la gráfica. El contenido es adecuado tanto para principiantes como para usuarios avanzados de MATLAB que deseen mejorar sus habilidades en análisis de datos.

Takeaways

  • 📐 Se está creando un código en MATLAB para realizar regresiones lineales por mínimos cuadrados.
  • 📈 Se necesitan dos vectores de entrada de la misma longitud que representan los pares de coordenadas x e y.
  • 🔢 Se define una función que, dado los vectores de entrada, devuelve los coeficientes a0 y a1 de la recta.
  • 📊 Se pueden incluir datos adicionales para evaluar la recta en un punto específico.
  • 📈 Se busca que el valor de r (correlación) esté lo más cercano a cero y r cuadrado esté lo más cercano a uno para un modelo lineal bueno.
  • 🧮 Se resuelve el problema mediante la construcción de un sistema de ecuaciones lineales 2x2.
  • 🛠️ MATLAB puede realizar cálculos complejos de forma sencilla, como sumas y multiplicaciones de vectores.
  • 📉 Se calculan sumas totales, sumas al cuadrado y multiplicaciones de vectores para establecer el sistema de ecuaciones.
  • 📝 Se resuelve el sistema de ecuaciones utilizando la inversa de una matriz para encontrar los coeficientes.
  • 📊 Se calculan valores estadísticos adicionales como el error estándar y los coeficientes de determinación.
  • 📈 Se puede usar la función `plot` para graficar los datos y la recta ajustada, y se puede evaluar un punto específico en la recta.

Q & A

  • ¿Qué tipo de regresión se realiza en el vídeo?

    -Se realiza una regresión lineal por mínimos cuadrados.

  • ¿Cuántas variables de entrada se necesitan para la regresión lineal?

    -Se necesitan dos variables de entrada que actúen como pares de coordenadas x e y.

  • ¿Qué hace la tercera variable de entrada que se menciona en el script?

    -La tercera variable de entrada representa un punto en los datos donde se desea evaluar la recta creada.

  • ¿Cómo se calculan los coeficientes de la recta en MATLAB?

    -Se calculan los coeficientes resolviendo un sistema de ecuaciones lineales de 2x2 utilizando la función de MATLAB que prefieras, como por ejemplo la inversa de la matriz.

  • ¿Qué valores se esperan para r y r cuadrado para que el modelo lineal sea considerado bueno?

    -Se espera que r esté lo más cercano a cero y que r cuadrado sea lo más cercano a uno, lo que indica un modelo lineal de alta calidad.

  • ¿Cómo se calcula el error estándar del estimado en MATLAB?

    -Se calcula tomando la raíz cuadrada de la suma de los cuadrados de las diferencias entre los datos y la recta, dividido por n-2.

  • ¿Qué función de MATLAB se puede usar para graficar los datos y la recta?

    -Se puede usar la función 'plot' para graficar los datos como círculos y luego utilizar la función 'fplot' para graficar la recta.

  • ¿Cómo se evalúa un punto en la recta usando la función anónima creada en MATLAB?

    -Se evalúa un punto en la recta aplicando la función anónima a los valores de x donde se desea evaluar.

  • ¿Cómo se ajustan los límites de la gráfica en MATLAB?

    -Se calculan los valores más grandes y más chicos en x e y, y se establecen los límites de la gráfica con un margen adicional de 2 unidades en ambos ejes.

  • ¿Qué son los valores de cierre y st que se mencionan en el script?

    -Los valores de cierre y st son los valores que se calculan para entender la calidad del ajuste de la recta a los datos, incluyendo el error estándar y los coeficientes de determinación y correlación.

  • ¿Cómo se puede mejorar la presentación de los resultados en MATLAB?

    -Se puede utilizar una tabla para mostrar todos los valores calculados de manera clara y organizada.

Outlines

00:00

😀 Creación de un código MATLAB para regresión lineal

En el primer párrafo se describe cómo crear un código en MATLAB para realizar regresiones lineales por mínimos cuadrados. Se requieren dos vectores de entrada de la misma longitud que representan los pares de coordenadas x e y. Estos vectores se utilizarán como variables de entrada en una función que devuelve los coeficientes de la recta. Además, se puede incluir una tercera variable de entrada para evaluar la recta en un punto específico de los datos. Se discuten los conceptos de error estándar, coeficientes de determinación y correlación, y cómo estos afectan la calidad del modelo lineal. Finalmente, se menciona cómo resolver el problema utilizando un sistema de ecuaciones lineales y se ofrecen instrucciones para calcular las sumas necesarias con MATLAB.

05:01

📊 Construcción de la matriz y vector para la regresión lineal

Este párrafo se enfoca en la construcción de la matriz y el vector necesarios para resolver el sistema de ecuaciones lineales en MATLAB. Se explica cómo formar la matriz A con n y sigma x, y el vector b con sigma xy y sigma x. Luego, se discute el uso de diferentes métodos para resolver el sistema, sugiriendo la inversa de la matriz A multiplicada por b como la opción más elegante. Se presentan las fórmulas para calcular los valores estadísticos, como el error cuadrático medio (ECM) y el error estándar del estimado, y cómo implementarlas en MATLAB. Además, se ofrece código para generar una tabla con los resultados y se menciona el uso de la función 'scatter' para graficar los datos.

10:01

📈 Trazar la recta y evaluar valores en el modelo lineal

El tercer párrafo aborda cómo trazar la recta resultante de la regresión lineal en MATLAB. Se describe el uso de la función 'polyval' para evaluar la recta en un punto dado, utilizando los coeficientes calculados previamente. Luego, se explica cómo crear una función simbólica para la recta y cómo utilizarla con 'fplot' para graficarla. Se proporcionan detalles sobre cómo ajustar los límites de la gráfica y cómo incluir una variable de entrada adicional para evaluar un valor específico en la recta. Finalmente, se ofrece código para agregar el valor evaluado en la gráfica, representado como un círculo rojo, y se alienta a los espectadores a mantener la curiosidad y a preguntar en caso de tener dudas.

Mindmap

Keywords

💡Regresión lineal

La regresión lineal es un método estadístico que se utiliza para modelar la relación entre una variable dependiente y una o más variables independientes. En el video, se utiliza para encontrar la recta que mejor ajusta un conjunto de datos, representando la relación entre los vectores de entrada.

💡Mínimos cuadrados

Mínimos cuadrados es un principio utilizado en la estadística para encontrar la mejor aproximación de una línea a un conjunto de datos. Se refiere a minimizar la suma de las diferencias al cuadrado entre los puntos de datos y la recta ajustada, como se busca en la creación del código en el video.

💡Vectores de entrada

Los vectores de entrada son conjuntos de datos que se utilizan en la función para representar las coordenadas en un espacio. En el contexto del video, estos vectores son los pares de coordenadas x e y que se emplean para calcular la recta de regresión lineal.

💡Coeficientes

Los coeficientes son los valores que definen la posición y la pendiente de la recta en un modelo de regresión lineal. En el video, los coeficientes a0 y a1 son los resultados finales que representan la recta que mejor ajusta los datos proporcionados.

💡Pares de coordenadas

Los pares de coordenadas son las combinaciones de valores x e y que componen los puntos en un sistema de coordenadas. Son fundamentales en la regresión lineal, ya que representan los datos reales que se ajustarán a la recta, como se menciona en el video.

💡Sumatoria

La sumatoria es un concepto matemático que se refiere a la adición de todos los elementos de un conjunto. En el video, se calculan sumatorias como sigma x y sigma x al cuadrado, que son necesarias para resolver el sistema de ecuaciones lineales que define la recta de regresión.

💡Sistema de ecuaciones lineales

Un sistema de ecuaciones lineales es una colección de ecuaciones que deben satisfacerse simultáneamente. En el video, se resuelve un sistema de 2x2 para encontrar los coeficientes de la recta de regresión, que es un paso clave en la creación del modelo.

💡Error estándar

El error estándar es una medida de la dispersión o variabilidad de los errores en un modelo estadístico. Se calcula en el video como parte de los valores estadísticos útiles para evaluar el ajuste de la recta de regresión.

💡Coeficiente de determinación

El coeficiente de determinación, también conocido como r cuadrado, es una estadística que indica la cantidad de variabilidad en los datos que se puede explicar con el modelo de regresión lineal. Se busca que sea lo más cercano a uno, lo que implica un buen ajuste del modelo, como se destaca en el video.

💡Correlación

La correlación es una medida que expresa la relación entre dos variables. En el video, se menciona el coeficiente de correlación 'r', que indica el grado de asociación entre los puntos de datos y la recta de regresión.

💡Gráfica

Una gráfica es una representación visual de datos, en este caso, los puntos de datos y la recta de regresión. En el video, se describe cómo generar una gráfica para visualizar los resultados del modelo de regresión lineal y cómo incluir la recta ajustada y los puntos de datos en ella.

Highlights

Se realizará un código en MATLAB para realizar regresiones lineales por mínimos cuadrados.

Se necesitarán dos variables de entrada que representen pares de coordenadas x e y.

La función generará dos coeficientes a0 y a1 que conformarán la recta.

Se puede incluir una tercera variable de entrada para evaluar la recta en un punto específico.

Se discute la importancia del coeficiente de determinación (R^2) y la correlación (R) para medir la calidad del modelo lineal.

Se resuelve el problema mediante la creación de un sistema de ecuaciones lineales 2x2.

Se utiliza la función `sum` de MATLAB para calcular las sumas necesarias.

Se describe cómo calcular la suma de los cuadrados de los datos y las multiplicaciones de cada dato de x por cada dato de y.

Se recomienda el uso de la matriz inversa para resolver el sistema de ecuaciones de manera eficiente.

Se muestra cómo calcular los coeficientes a0 y a1 utilizando la fórmula de la inversa de la matriz.

Se explica cómo calcular los valores estadísticos adicionales como el error estándar del estimado y los coeficientes de terminación.

Se discuten los valores deseados para R y R^2 para un modelo lineal efectivo.

Se ofrecen instrucciones para presentar los resultados en una tabla ordenada y elegante.

Se describe el uso de la función `plot` para graficar los datos y la recta lineal.

Se explica cómo crear una función simbólica en MATLAB para representar la recta lineal.

Se detallan los pasos para ajustar los límites de la gráfica y mejorar su presentación.

Se menciona la posibilidad de evaluar un valor específico en la recta a través de una tercera variable de entrada y salida.

Se concluye con una invitación a mantener la curiosidad y se despiden los espectadores para el próximo vídeo.

Transcripts

play00:00

en este vídeo haremos un código matlab

play00:02

para realizar regresiones lineales por

play00:05

mínimos cuadrados para hacer esto

play00:07

necesitaremos dos variables de entrada

play00:10

como estos dos vectores de aquí tienen

play00:13

que ser de la misma longitud y tienen

play00:15

que actuar como nuestros pares de

play00:16

coordenadas x y estos dos vectores los

play00:19

vamos a usar como variables de entrada

play00:21

en una función como están la cual como

play00:24

variable de salida nos va a entregar los

play00:27

dos coeficientes a 0 y a 1 que

play00:30

conformarían a la recta para resolver

play00:32

este problema

play00:34

justo así

play00:36

entonces aquí podemos ver que estos son

play00:39

nuestros 10 datos y esta serie alta

play00:41

recta que trataría explicar todos estos

play00:44

puntos si fueran perfectamente lineales

play00:46

también hasta aquí arriba adicionalmente

play00:49

le podemos dar al código una tercera

play00:51

variable de entrada la cual

play00:54

representaría un punto

play00:57

en nuestros datos donde queríamos

play00:59

evaluar esta recta que acabamos de crear

play01:01

por ejemplo supongamos que yo quiero

play01:03

evaluar esa recta que creamos ahorita

play01:06

aquí digamos donde debería haber un 7

play01:09

pero no lo tengo mis coordenadas

play01:11

entonces lo va a poner aquí y le voy a

play01:13

pedir al código que me arroje ese valor

play01:16

evaluado el avión

play01:19

y listo vemos que aquí por donde está el

play01:21

7 tenemos un 7.3 si usáramos nuestra

play01:25

recta lineal por último si también

play01:27

necesitas calcular algunos datos útiles

play01:29

en este tipo de temas puedes pedirlos

play01:32

con la tercera variable de salida la

play01:34

cual te va a entregar esta tabla con un

play01:36

resumen aquí está explicar que los

play01:38

valores de cierre y st son estos también

play01:41

te entrega el error estándar del

play01:42

estimado y los coeficientes de

play01:44

determinación y correlación r cuadrado y

play01:48

r entonces normalmente en uno de estos

play01:51

ejercicios lo que tú buscas es que tú s

play01:53

r sea lo más cercano a cero y qué

play01:57

es re cuadrada y erre sean lo más

play01:59

parecido a uno dependiendo de qué tanto

play02:02

te alejes de esto tu modelo lineal va a

play02:06

ser mejor o peor bien entonces

play02:09

comencemos

play02:17

estos problemas se resuelven con

play02:19

bastante facilidad lo único que tenemos

play02:21

que hacer es armar un sistema de 2 x 2 y

play02:23

resolverlo con cualquiera de los métodos

play02:25

que prefieras para resolver sistemas de

play02:28

ecuaciones lineales en fin entonces el

play02:30

sistema se ve algo como este que está

play02:32

viendo en pantalla así que lo único que

play02:34

hay que hacer es saber sustituir los

play02:37

valores adecuados n representa

play02:39

simplemente la cantidad de datos que

play02:42

tienes eso simple y después tenemos que

play02:45

calcular la sumatoria de todos los datos

play02:47

en x simplemente somos los todos y los

play02:50

colocas en estas dos posiciones y haces

play02:52

algo similar con la sumatoria de los

play02:55

datos en jet lo último que hay que hacer

play02:57

es simplemente hacer lo mismo pero ahora

play03:00

sacando la sumatoria de los cuadrados de

play03:02

cada dato de x ósea

play03:05

pero al cuadrado más 2 al cuadrado más

play03:07

cuadro al cuadrado y así y el último

play03:10

dato que necesitamos es la sumatoria de

play03:13

las multiplicaciones de cada dato de x

play03:15

por cada dato de jeff o sea la sumatoria

play03:18

de 0 por 5 más 2 por 6 más 4 por 7 y así

play03:22

afortunadamente matlab puede hacer todos

play03:25

estos cálculos de una manera muy

play03:27

sencilla así que simplemente vamos a

play03:29

armar este sistema y ya tendremos todo

play03:31

el código resuelto en muy pocas líneas

play03:33

de código entonces vamos a empezar

play03:35

escribiendo la palabra pasión porque

play03:37

recuerda que estamos creando una función

play03:41

la cual la vamos a llamar así y le vamos

play03:44

a dar estos datos de entrada por lo

play03:46

pronto y este de salida

play03:50

entonces lo primero que tenemos que

play03:52

hacer es calcular n simplemente vamos a

play03:54

preguntar por la longitud tanto de x

play03:56

como de ella

play03:57

ahora vamos a crear todas esas

play04:00

sumatorias que vimos por ejemplo sigma x

play04:02

simplemente es usar la función zoom y le

play04:06

decimos la sumatoria de x y luego para y

play04:09

es lo mismo

play04:13

ahora la sumatoria de las x al cuadrado

play04:18

vamos a llamarla así nuevamente usamos

play04:21

la función sol y también usamos x pero

play04:24

ahora la diferencia es que no queremos

play04:26

simplemente sumar cada dato x queremos

play04:29

que cada dato se multiplique asimismo al

play04:31

cuadrado entonces para hacer eso

play04:33

necesitas usar la notación

play04:36

punto

play04:37

exponencial

play04:39

justo así y con eso el primer dato de x

play04:43

es multiplicar el cuadrado y los a sumar

play04:45

al cuadrado el segundo más el cuadrado

play04:47

el tercero y así entonces para sigma x

play04:53

bien tenemos que hacer algo similar

play04:57

usamos nuevamente la anotación punto

play05:01

pero ahora usamos asterisco para que

play05:03

cada dato de x se multiplique por cada

play05:06

dato respectivo de jeff justo así

play05:11

lo siguiente que hay que hacer es

play05:12

entonces armar nuestra matriz

play05:16

vamos a poner a n

play05:20

y luego a sigma x

play05:25

y abajo

play05:27

ponemos estos 2

play05:33

ahora el vector b es una lógica similar

play05:36

ponemos a sigma james y debajo sigma x

play05:43

y listo eso es todo

play05:45

ahora para calcular entonces los

play05:48

coeficientes que resuelven este sistema

play05:50

los cuales representa se representarían

play05:52

los coeficientes a 0 y a 12 nuestra

play05:55

recta puedes usar cualquier método para

play05:58

resolver sistemas de ecuaciones lineales

play05:59

que prefieras por ejemplo podrías usar

play06:02

mis códigos hechos brevemente de gaudio

play06:05

orden o la eliminación de oceana e

play06:07

incluso la descomposición él es

play06:09

simplemente tendrías que usar estos dos

play06:12

estos dos datos que acabamos de crear

play06:16

pero yo te recomiendo que directamente

play06:20

buzz es esta forma que es la que más la

play06:22

te recomienda al momento de resolver

play06:24

sistemas de ecuaciones si tú pones la

play06:27

diagonal invertida en lo que más la

play06:29

entiende es que esto es la inversa de la

play06:32

matriz anp multiplicada por b justo así

play06:36

es la manera más óptima y más elegante

play06:38

entonces vamos a verlo en acción

play06:41

nuevamente este es xy este bien

play06:45

vamos a poner a prueba nuestro código y

play06:48

listo ahí están nuestros coeficientes

play06:49

tal y como lo vimos al inicio el vídeo

play06:52

entonces con eso normalmente es más que

play06:56

suficiente pero qué pasa entonces si

play06:58

también te interesa calcular los valores

play07:00

estadísticos que te dije al inicio el

play07:03

vídeo bueno voy a poner las fórmulas

play07:05

aquí al ladito mientras las traducimos

play07:07

en lenguaje matlab por ejemplo este ere

play07:10

que representa la suma total de los

play07:13

cuadrados de la de las diferencias entre

play07:16

los datos y la recta que acabamos de

play07:18

calcular lo que tú quieres es todo el

play07:21

modelo

play07:24

sacarle su sumatoria al cuadrado

play07:28

así que aquí pondrías bien menos a 0

play07:33

- a uno y este último como es el término

play07:39

lineal lo tienes que multiplicar por

play07:42

cada valor respectivo de x justo así

play07:46

ahora este tema que es algo similar o

play07:49

sea una suma total de los cuadrados de

play07:52

las diferencias entre los datos pero

play07:54

ahora entre los datos y la media

play07:56

entonces nuevamente la sumatoria y

play08:00

también vamos a sacarle los cuadrados a

play08:03

algo

play08:06

pero ahora lo queremos es las diez menos

play08:11

cinco más sobre n

play08:14

ahora el error de estándar del estimado

play08:17

o también llamado s y x bueno no estoy

play08:20

seguro cómo llamarlo s simplemente es la

play08:23

raíz cuadrada

play08:26

de ese ere sobre

play08:29

n 2

play08:32

y ahora los coeficientes el coeficiente

play08:35

de terminación o ere cuadrado se calcula

play08:38

restando ese tema

play08:41

menos

play08:44

ese ere y todo esto sobre ese tema y

play08:48

este de khan sería prácticamente r o sea

play08:51

la raíz cuadrada de lo que acabo de

play08:54

escribir

play08:57

vamos a ver todos estos datos

play09:01

listo aquí están entonces como dije

play09:04

idealmente tú quieres que sea lo más

play09:07

parecido a cero y que estos dos sean lo

play09:10

más cercanos a uno muy bien entonces con

play09:14

eso tienes para calcular todos estos

play09:16

datos como deberías necesitar más sin

play09:19

embargo si quieres que tu presentación

play09:21

sea un poco más limpia y elegante

play09:23

puedes usar estas líneas de código como

play09:25

yo para poner en pantalla todo esto en

play09:28

una tabla como te puse al principio así

play09:31

que ahora esa te la vamos a poner como

play09:33

la segunda variable de salida

play09:36

y listo entonces lo que sigue es hacer

play09:39

una gráfica entonces si te interesa

play09:42

hacer eso puedes usar la función scanner

play09:44

y con eso vas a graficar todos los datos

play09:47

como simples círculos así que vamos a

play09:50

poner esto para cargar y nuestros

play09:53

formatos

play09:57

listo entonces lo otro que te interesa

play10:01

sería poner aquí título y construir por

play10:03

supuesto nuestra recta el problema es

play10:06

que para construir la recta necesitas

play10:09

tener la simbólica matsu box para usar

play10:12

las siguientes líneas de código

play10:15

lo que tú quieres es

play10:18

usar lo que calculamos aquí en la

play10:21

volteada para que más lo pueda entender

play10:26

para usar esta función politice y

play10:28

entonces aquí matlab con eso entiende

play10:32

que ok esta va a ser una constante y

play10:35

este va a ser el coeficiente de un

play10:38

término lineal

play10:40

entonces con eso puedes

play10:45

automáticamente crear una función

play10:48

simbólica y luego usarla esta función

play10:52

más la función para tener una función

play10:54

anónima para entonces usarla dentro de

play10:58

fp plot entonces simplemente usará su

play11:01

función anónima en el intervalo que te

play11:04

interese y listo

play11:09

ahí está tu recta ya para terminar

play11:11

entonces el resto del código para la

play11:14

gráfica se vea como esto esto

play11:16

simplemente para que tengas un buen

play11:18

título no preguntas por el signo del 1

play11:22

si es negativo acs este string y si no

play11:25

entonces haces es tétrica con esto vas a

play11:28

ajustar los límites de la gráfica

play11:30

calculas el valor más grande en x el

play11:33

valor más grande y el valor más chico en

play11:35

yen y le dices a tu axis que vaya para x

play11:40

de 0 hasta el valor más grande de x pero

play11:43

más 2 y en james que vaya desde el valor

play11:46

más chico de james menos 2 hasta el

play11:49

valor más grande de i + 2 y por último

play11:52

si te interesa calcular entonces algún

play11:56

valor a evaluar en la recta vamos a

play11:59

habilitar en la última variable de

play12:01

entrada y de salida

play12:04

y si no decides agregar esta variable de

play12:09

entrada simplemente que va a ser

play12:13

algo que no es útil un nuevo nombre pero

play12:16

lo que tú quieras pero si agregas ese

play12:18

tercer valor entonces tú calculas que es

play12:22

igual a efe evaluado en x simplemente

play12:25

esto que tenemos ahorita la función

play12:27

anónima dávalos en equis y listo y

play12:30

gráficas ese par de coordenadas lo que

play12:33

acabas de calcular y esa variable de

play12:35

entrada como un círculo rojo

play12:38

vamos a poner

play12:43

tal vez días

play12:46

y listo entonces ese es nuestro código

play12:49

terminado como de costumbre si tienes

play12:52

una duda o comentario no dudes en

play12:54

dejarla ahí abajo puedes escribirme

play12:56

también a mi correo oa mi página de

play12:58

facebook yo te responderé en cuanto

play13:00

pueda por supuesto y pues sin más que

play13:02

seguir por despido nos vemos en el

play13:05

próximo vídeo y no olviden por supuesto

play13:07

mantenerse curiosos

Rate This

5.0 / 5 (0 votes)

Related Tags
Regresión LinealMatemáticasAnálisis de DatosPrediccionesMATLABCálculo EstadísticoProgramaciónTécnicas MatemáticasMétodos de OptimizaciónEstadística Aplicada
Do you need a summary in English?