Regresión lineal por mínimos cuadrados en Matlab: Tutorial paso a paso
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
😀 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.
📊 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.
📈 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
💡Mínimos cuadrados
💡Vectores de entrada
💡Coeficientes
💡Pares de coordenadas
💡Sumatoria
💡Sistema de ecuaciones lineales
💡Error estándar
💡Coeficiente de determinación
💡Correlación
💡Gráfica
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
en este vídeo haremos un código matlab
para realizar regresiones lineales por
mínimos cuadrados para hacer esto
necesitaremos dos variables de entrada
como estos dos vectores de aquí tienen
que ser de la misma longitud y tienen
que actuar como nuestros pares de
coordenadas x y estos dos vectores los
vamos a usar como variables de entrada
en una función como están la cual como
variable de salida nos va a entregar los
dos coeficientes a 0 y a 1 que
conformarían a la recta para resolver
este problema
justo así
entonces aquí podemos ver que estos son
nuestros 10 datos y esta serie alta
recta que trataría explicar todos estos
puntos si fueran perfectamente lineales
también hasta aquí arriba adicionalmente
le podemos dar al código una tercera
variable de entrada la cual
representaría un punto
en nuestros datos donde queríamos
evaluar esta recta que acabamos de crear
por ejemplo supongamos que yo quiero
evaluar esa recta que creamos ahorita
aquí digamos donde debería haber un 7
pero no lo tengo mis coordenadas
entonces lo va a poner aquí y le voy a
pedir al código que me arroje ese valor
evaluado el avión
y listo vemos que aquí por donde está el
7 tenemos un 7.3 si usáramos nuestra
recta lineal por último si también
necesitas calcular algunos datos útiles
en este tipo de temas puedes pedirlos
con la tercera variable de salida la
cual te va a entregar esta tabla con un
resumen aquí está explicar que los
valores de cierre y st son estos también
te entrega el error estándar del
estimado y los coeficientes de
determinación y correlación r cuadrado y
r entonces normalmente en uno de estos
ejercicios lo que tú buscas es que tú s
r sea lo más cercano a cero y qué
es re cuadrada y erre sean lo más
parecido a uno dependiendo de qué tanto
te alejes de esto tu modelo lineal va a
ser mejor o peor bien entonces
comencemos
estos problemas se resuelven con
bastante facilidad lo único que tenemos
que hacer es armar un sistema de 2 x 2 y
resolverlo con cualquiera de los métodos
que prefieras para resolver sistemas de
ecuaciones lineales en fin entonces el
sistema se ve algo como este que está
viendo en pantalla así que lo único que
hay que hacer es saber sustituir los
valores adecuados n representa
simplemente la cantidad de datos que
tienes eso simple y después tenemos que
calcular la sumatoria de todos los datos
en x simplemente somos los todos y los
colocas en estas dos posiciones y haces
algo similar con la sumatoria de los
datos en jet lo último que hay que hacer
es simplemente hacer lo mismo pero ahora
sacando la sumatoria de los cuadrados de
cada dato de x ósea
pero al cuadrado más 2 al cuadrado más
cuadro al cuadrado y así y el último
dato que necesitamos es la sumatoria de
las multiplicaciones de cada dato de x
por cada dato de jeff o sea la sumatoria
de 0 por 5 más 2 por 6 más 4 por 7 y así
afortunadamente matlab puede hacer todos
estos cálculos de una manera muy
sencilla así que simplemente vamos a
armar este sistema y ya tendremos todo
el código resuelto en muy pocas líneas
de código entonces vamos a empezar
escribiendo la palabra pasión porque
recuerda que estamos creando una función
la cual la vamos a llamar así y le vamos
a dar estos datos de entrada por lo
pronto y este de salida
entonces lo primero que tenemos que
hacer es calcular n simplemente vamos a
preguntar por la longitud tanto de x
como de ella
ahora vamos a crear todas esas
sumatorias que vimos por ejemplo sigma x
simplemente es usar la función zoom y le
decimos la sumatoria de x y luego para y
es lo mismo
ahora la sumatoria de las x al cuadrado
vamos a llamarla así nuevamente usamos
la función sol y también usamos x pero
ahora la diferencia es que no queremos
simplemente sumar cada dato x queremos
que cada dato se multiplique asimismo al
cuadrado entonces para hacer eso
necesitas usar la notación
punto
exponencial
justo así y con eso el primer dato de x
es multiplicar el cuadrado y los a sumar
al cuadrado el segundo más el cuadrado
el tercero y así entonces para sigma x
bien tenemos que hacer algo similar
usamos nuevamente la anotación punto
pero ahora usamos asterisco para que
cada dato de x se multiplique por cada
dato respectivo de jeff justo así
lo siguiente que hay que hacer es
entonces armar nuestra matriz
vamos a poner a n
y luego a sigma x
y abajo
ponemos estos 2
ahora el vector b es una lógica similar
ponemos a sigma james y debajo sigma x
y listo eso es todo
ahora para calcular entonces los
coeficientes que resuelven este sistema
los cuales representa se representarían
los coeficientes a 0 y a 12 nuestra
recta puedes usar cualquier método para
resolver sistemas de ecuaciones lineales
que prefieras por ejemplo podrías usar
mis códigos hechos brevemente de gaudio
orden o la eliminación de oceana e
incluso la descomposición él es
simplemente tendrías que usar estos dos
estos dos datos que acabamos de crear
pero yo te recomiendo que directamente
buzz es esta forma que es la que más la
te recomienda al momento de resolver
sistemas de ecuaciones si tú pones la
diagonal invertida en lo que más la
entiende es que esto es la inversa de la
matriz anp multiplicada por b justo así
es la manera más óptima y más elegante
entonces vamos a verlo en acción
nuevamente este es xy este bien
vamos a poner a prueba nuestro código y
listo ahí están nuestros coeficientes
tal y como lo vimos al inicio el vídeo
entonces con eso normalmente es más que
suficiente pero qué pasa entonces si
también te interesa calcular los valores
estadísticos que te dije al inicio el
vídeo bueno voy a poner las fórmulas
aquí al ladito mientras las traducimos
en lenguaje matlab por ejemplo este ere
que representa la suma total de los
cuadrados de la de las diferencias entre
los datos y la recta que acabamos de
calcular lo que tú quieres es todo el
modelo
sacarle su sumatoria al cuadrado
así que aquí pondrías bien menos a 0
- a uno y este último como es el término
lineal lo tienes que multiplicar por
cada valor respectivo de x justo así
ahora este tema que es algo similar o
sea una suma total de los cuadrados de
las diferencias entre los datos pero
ahora entre los datos y la media
entonces nuevamente la sumatoria y
también vamos a sacarle los cuadrados a
algo
pero ahora lo queremos es las diez menos
cinco más sobre n
ahora el error de estándar del estimado
o también llamado s y x bueno no estoy
seguro cómo llamarlo s simplemente es la
raíz cuadrada
de ese ere sobre
n 2
y ahora los coeficientes el coeficiente
de terminación o ere cuadrado se calcula
restando ese tema
menos
ese ere y todo esto sobre ese tema y
este de khan sería prácticamente r o sea
la raíz cuadrada de lo que acabo de
escribir
vamos a ver todos estos datos
listo aquí están entonces como dije
idealmente tú quieres que sea lo más
parecido a cero y que estos dos sean lo
más cercanos a uno muy bien entonces con
eso tienes para calcular todos estos
datos como deberías necesitar más sin
embargo si quieres que tu presentación
sea un poco más limpia y elegante
puedes usar estas líneas de código como
yo para poner en pantalla todo esto en
una tabla como te puse al principio así
que ahora esa te la vamos a poner como
la segunda variable de salida
y listo entonces lo que sigue es hacer
una gráfica entonces si te interesa
hacer eso puedes usar la función scanner
y con eso vas a graficar todos los datos
como simples círculos así que vamos a
poner esto para cargar y nuestros
formatos
listo entonces lo otro que te interesa
sería poner aquí título y construir por
supuesto nuestra recta el problema es
que para construir la recta necesitas
tener la simbólica matsu box para usar
las siguientes líneas de código
lo que tú quieres es
usar lo que calculamos aquí en la
volteada para que más lo pueda entender
para usar esta función politice y
entonces aquí matlab con eso entiende
que ok esta va a ser una constante y
este va a ser el coeficiente de un
término lineal
entonces con eso puedes
automáticamente crear una función
simbólica y luego usarla esta función
más la función para tener una función
anónima para entonces usarla dentro de
fp plot entonces simplemente usará su
función anónima en el intervalo que te
interese y listo
ahí está tu recta ya para terminar
entonces el resto del código para la
gráfica se vea como esto esto
simplemente para que tengas un buen
título no preguntas por el signo del 1
si es negativo acs este string y si no
entonces haces es tétrica con esto vas a
ajustar los límites de la gráfica
calculas el valor más grande en x el
valor más grande y el valor más chico en
yen y le dices a tu axis que vaya para x
de 0 hasta el valor más grande de x pero
más 2 y en james que vaya desde el valor
más chico de james menos 2 hasta el
valor más grande de i + 2 y por último
si te interesa calcular entonces algún
valor a evaluar en la recta vamos a
habilitar en la última variable de
entrada y de salida
y si no decides agregar esta variable de
entrada simplemente que va a ser
algo que no es útil un nuevo nombre pero
lo que tú quieras pero si agregas ese
tercer valor entonces tú calculas que es
igual a efe evaluado en x simplemente
esto que tenemos ahorita la función
anónima dávalos en equis y listo y
gráficas ese par de coordenadas lo que
acabas de calcular y esa variable de
entrada como un círculo rojo
vamos a poner
tal vez días
y listo entonces ese es nuestro código
terminado como de costumbre si tienes
una duda o comentario no dudes en
dejarla ahí abajo puedes escribirme
también a mi correo oa mi página de
facebook yo te responderé en cuanto
pueda por supuesto y pues sin más que
seguir por despido nos vemos en el
próximo vídeo y no olviden por supuesto
mantenerse curiosos
Посмотреть больше похожих видео
5.0 / 5 (0 votes)