{"id":8013,"date":"2022-08-02T09:38:49","date_gmt":"2022-08-02T14:38:49","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/analisisnumerico\/?p=8013"},"modified":"2026-01-09T06:42:04","modified_gmt":"2026-01-09T11:42:04","slug":"regresion-vs-interpolacion","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-u08\/regresion-vs-interpolacion\/","title":{"rendered":"8.1 Regresi\u00f3n vs interpolaci\u00f3n"},"content":{"rendered":"\n<p><em><strong>Referencia<\/strong><\/em>: Chapra 17.1 p 466. Burden 8.1 p498<\/p>\n\n\n\n<p>Cuando los datos de un experimento presentan variaciones o errores sustanciales respecto al modelo matem\u00e1tico, la interpolaci\u00f3n polinomial presentada en la Unidad 4 es inapropiada para predecir valores intermedios.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1061\" height=\"622\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2022\/08\/MinimosCuadrados_Lagrange01.png\" alt=\"M\u00ednimos Cuadrados Lagrange 01\" class=\"wp-image-13917\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>En el ejemplo de Chapra 17.1 p470, se presentan los datos de un experimento mostrados en la imagen y la siguiente tabla:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; gutter: false; title: ; notranslate\" title=\"\">\nxi = &#x5B;1,   2,   3,  4,  5,   6, 7]\nyi = &#x5B;0.5, 2.5, 2., 4., 3.5, 6, 5.5]\n<\/pre><\/div>\n\n\n<p>Un polinomio de interpolaci\u00f3n, por ejemplo de Lagrange de grado 6 pasar\u00e1 por todos los puntos, pero oscilando.<\/p>\n\n\n\n<p>Una funci\u00f3n de aproximaci\u00f3n que se ajuste a la tendencia general, que no necesariamente pasa por los puntos de muestra puede ser una mejor respuesta. Se busca una \"curva\" que minimice las diferencias entre los puntos y la curva, llamada regresi\u00f3n por <strong>m\u00ednimos cuadrados<\/strong>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">Descripci\u00f3n con la media yi<\/h2>\n\n\n\n<p>Considere una aproximaci\u00f3n para la relaci\u00f3n entre los puntos x<sub>i<\/sub>, y<sub>i<\/sub> como un polinomio, grado 0 que ser\u00eda la media de y<sub>i<\/sub>. Para este caso, los errores se presentan en la gr\u00e1fica:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"550\" height=\"443\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2022\/08\/MinimosCuadrados_03.png\" alt=\"M\u00ednimos Cuadrados errados\" class=\"wp-image-13919\" \/><\/figure>\n\n\n\n<p>Otra forma ser\u00eda aproximar el comportamiento de los datos es usar un polinomio de grado 1. En la gr\u00e1fica se pueden observar que para los mismos puntos el error disminuye considerablemente.<\/p>\n\n\n\n<p>El polinomio de grado 1 recibe el nombre de regresi\u00f3n por m\u00ednimos cuadrados, que se desarrolla en la siguiente secci\u00f3n.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Instrucciones Python<\/h2>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# representaci\u00f3n con la media\nimport numpy as np\nimport matplotlib.pyplot as plt\n\n# INGRESO\nxi = &#x5B;1,   2,   3,  4,  5,   6, 7]\nyi = &#x5B;0.5, 2.5, 2., 4., 3.5, 6, 5.5]\n\n# PROCEDIMIENTO\nxi = np.array(xi,dtype=float)\nyi = np.array(yi,dtype=float)\nn = len(xi)\n\nxm = np.mean(xi)\nym = np.mean(yi)\n\n# SALIDA\nprint('ymedia = ', ym)\n\n# grafica\nplt.plot(xi,yi,'o',label='(xi,yi)')\nplt.stem(xi,yi,bottom=ym, linefmt = '--')\nplt.xlabel('xi')\nplt.ylabel('yi')\nplt.legend()\nplt.show()\n<\/pre><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">Instrucciones Python - compara interpolaci\u00f3n y regresi\u00f3n.<\/h2>\n\n\n\n<p>Para ilustrar el asunto y para comparar los resultados se usa Python, tanto para interpolaci\u00f3n y m\u00ednimos cuadrados usando las librer\u00edas disponibles. Luego se desarrolla el algoritmo paso a paso.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# m\u00ednimos cuadrados\nimport numpy as np\nimport scipy.interpolate as sci\nimport matplotlib.pyplot as plt\n\n# INGRESO\nxi = &#x5B;1,   2,   3,  4,  5,   6, 7]\nyi = &#x5B;0.5, 2.5, 2., 4., 3.5, 6, 5.5]\n\n# PROCEDIMIENTO\nxi = np.array(xi)\nyi = np.array(yi)\nn = len(xi)\n\n# polinomio Lagrange\npx = sci.lagrange(xi,yi)\nxj = np.linspace(min(xi),max(xi),100)\npj = px(xj)\n\n# m\u00ednimos cuadrados\nA = np.vstack(&#x5B;xi, np.ones(n)]).T\n&#x5B;m0, b0] = np.linalg.lstsq(A, yi, rcond=None)&#x5B;0]\nfx = lambda x: m0*(x)+b0\nfi = fx(xi)\n\n# ajusta l\u00edmites\nymin = np.min(&#x5B;np.min(pj),np.min(fi)])\nymax = np.max(&#x5B;np.max(pj),np.max(fi)])\n\n# SALIDA\nplt.subplot(121)\nplt.plot(xi,yi,'o',label='(xi,yi)')\nplt.plot(xj,pj,label='P(x) Lagrange')\nplt.ylim(ymin,ymax)\nplt.xlabel('xi')\nplt.ylabel('yi')\nplt.title('Interpolaci\u00f3n Lagrange')\n\nplt.subplot(122)\nplt.plot(xi,yi,'o',label='(xi,yi)')\nplt.plot(xi,fi,label='f(x)')\nplt.ylim(ymin,ymax)\nplt.xlabel('xi')\nplt.title('M\u00ednimos cuadrados')\n\nplt.show()\n<\/pre><\/div>","protected":false},"excerpt":{"rendered":"<p>Referencia: Chapra 17.1 p 466. Burden 8.1 p498 Cuando los datos de un experimento presentan variaciones o errores sustanciales respecto al modelo matem\u00e1tico, la interpolaci\u00f3n polinomial presentada en la Unidad 4 es inapropiada para predecir valores intermedios. En el ejemplo de Chapra 17.1 p470, se presentan los datos de un experimento mostrados en la imagen [&hellip;]<\/p>\n","protected":false},"author":8043,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"wp-custom-template-entrada-mn-unidades","format":"standard","meta":{"footnotes":""},"categories":[42],"tags":[],"class_list":["post-8013","post","type-post","status-publish","format-standard","hentry","category-mn-u08"],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/8013","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/users\/8043"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/comments?post=8013"}],"version-history":[{"count":4,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/8013\/revisions"}],"predecessor-version":[{"id":13921,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/8013\/revisions\/13921"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/media?parent=8013"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/categories?post=8013"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/tags?post=8013"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}