Professional Documents
Culture Documents
Regresión Polinomial
Regresión Polinomial
donde todas las sumatorias van desde i = 1 hasta n. Observe que las tres ecuaciones anteriores
son lineales y tienen tres incógnitas: a 0, a1 y a2. Los coeficientes de las incógnitas se
evalúan de manera directa, a partir de los datos observados. En este caso, observamos que
el problema de determinar un polinomio de segundo grado por mínimos cuadrados es
equivalente a resolver un sistema de tres ecuaciones lineales simultáneas.
Coeficiente de correlación
Profundidad 1 2 3 4 5 6 7 8 9
(m)
Resistencia 1 1.5 2 3 4 5 8 10 13
(MPa)
Programa en excel
Código
Private Sub borrar_Click() Esta es la definición de una función o subrutina en VBA
que se activa cuando haces click en el botón “borrar”
Range("I7").Value = "" Range("F20").Value = "" Range("F30").Value = ""
Range("I8").Value = "" Range("H18").Value = "" Range("F32").Value = ""
Range("C3").Value = "" Range("E5").Value = "" Range("G6").Value = ""
Range("I9").Value = "" Range("H19").Value = "" Range("F34").Value = ""
Range("C5").Value = "" Range("E6").Value = "" Range("G7").Value = ""
Range("I10").Value = "" Range("H20").Value = "" Range("C37").Value = ""
Range("C6").Value = "" Range("E7").Value = "" Range("G8").Value = ""
Range("I11").Value = "" Range("C23").Value = "" Range("C39").Value = ""
Range("C7").Value = "" Range("E8").Value = "" Range("G9").Value = ""
Range("I12").Value = "" Range("C25").Value = "" Range("C41").Value = ""
Range("C8").Value = "" Range("E9").Value = "" Range("G10").Value = ""
Range("I13").Value = "" Range("C27").Value = "" Range("D37").Value = ""
Range("C9").Value = "" Range("E10").Value = "" Range("G11").Value = ""
Range("I14").Value = "" Range("D23").Value = "" Range("D39").Value = ""
Range("C10").Value = "" Range("E11").Value = "" Range("G12").Value = ""
Range("J5").Value = "" Range("D25").Value = "" Range("D41").Value = ""
Range("C11").Value = "" Range("E12").Value = "" Range("G13").Value = ""
Range("J6").Value = "" Range("D27").Value = "" Range("E37").Value = ""
Range("C12").Value = "" Range("E13").Value = "" Range("G14").Value = ""
Range("J7").Value = "" Range("E23").Value = "" Range("E39").Value = ""
Range("C13").Value = "" Range("E14").Value = "" Range("H5").Value = ""
Range("J8").Value = "" Range("E25").Value = "" Range("E41").Value = ""
Range("C14").Value = "" Range("F5").Value = "" Range("H6").Value = ""
Range("J9").Value = "" Range("E27").Value = "" Range("F37").Value = ""
Range("D5").Value = "" Range("F6").Value = "" Range("H7").Value = ""
Range("J10").Value = "" Range("F23").Value = "" Range("F39").Value = ""
Range("D6").Value = "" Range("F7").Value = "" Range("H8").Value = ""
Range("J11").Value = "" Range("F25").Value = "" Range("F41").Value = ""
Range("D7").Value = "" Range("F8").Value = "" Range("H9").Value = ""
Range("J12").Value = "" Range("F27").Value = "" Range("I23").Value = ""
Range("D8").Value = "" Range("F9").Value = "" Range("H10").Value = ""
Range("J13").Value = "" Range("C30").Value = "" Range("I24").Value = ""
Range("D9").Value = "" Range("F10").Value = "" Range("H11").Value = ""
Range("B18").Value = "" Range("C32").Value = "" Range("I25").Value = ""
Range("D10").Value = "" Range("F11").Value = "" Range("H12").Value = ""
Range("B19").Value = "" Range("C34").Value = "" Range("B45").Value = ""
Range("D11").Value = "" Range("F12").Value = "" Range("H13").Value = ""
Range("B20").Value = "" Range("D30").Value = "" Range("C45").Value = ""
Range("D12").Value = "" Range("F13").Value = "" Range("H14").Value = ""
Range("D18").Value = "" Range("D32").Value = "" Range("D45").Value = ""
Range("D13").Value = "" Range("F14").Value = "" Range("I5").Value = ""
Range("D19").Value = "" Range("D34").Value = "" Range("E45").Value = ""
Range("D14").Value = "" Range("G5").Value = "" Range("I6").Value = ""
Range("D20").Value = "" Range("E30").Value = "" Range("F45").Value = ""
Range("F18").Value = "" Range("E32").Value = "" Range("I44").Value = ""
Range("F19").Value = "" Range("E34").Value = ""
Estas líneas establecen el valor de las celdas marcadas en la hoja de Excel a vacío (“”), es decir, borra su contenido en cada uno de los rangos.
Dim result As Variant Esta línea declara una variable llamada result del tipo variant.
result = Application.InputBox(prompt, Type:=1) ): Esta línea de código muestra un InputBox en la pantalla que tiene
un mensaje (proporcionado por el argumento prompt) y guarda la entrada del usuario en la variable result.
If result = False Then End Esta línea verifica si el resultado es falso, que es el caso cuando el usuario hace clic en
"Cancelar" en el InputBox. Si es así, entonces el código VBA terminará su ejecución.
End Function
Private Sub calcular_Click() Esto es similar al primero que comentamos: es una subrutina que se
dispara cuando el usuario hace clic en el botón "calcular".
Dim C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, D5, D6, D7, D8, D9, D10, D11, D12, D13, E5, E6, E7, E8, E9, E10, E11, E12, E13, F5, F6, F7, F8, F9, F10, F11, F12,
F13, G5, G6, G7, G8, G9, G10, G11, G12, G13, H5, H6, H7, H8, H9, H10, H11, H12, H13, I5, I6, I7, I8, I9, I10, I11, I12, I13, J5, J6, J7, J8, J9, J10, J11, J12, B18, B19,
B20, D18, D19, D20, F18, F19, F20, H18, H19, H20, C23, C25, C27, D23, D25, D27, E23, E25, E27, F23, F25, F27, C30, C32, C34, D30, D32, D34, E30, E32, E34, F30,
F32, F34, C37, C39, C41, D37, D39, D41, E37, E39, E41, F37, F39, F41 As Double
Aquí se están declarando todas esas variables como Double, lo cual significa que serán números con decimales.
Range("C3").Value = MyInputBox("¿Cuál es el valor de datos n?")
Range("C5").Value = MyInputBox("Introduzca el primer valor de x")
Range("C6").Value = MyInputBox("Introduzca el segundo valor de x")
Range("C7").Value = MyInputBox("Introduzca el tercer valor de x")
Range("C8").Value = MyInputBox("Introduzca el cuarto valor de x")
Range("C9").Value = MyInputBox("Introduzca el quinto valor de x")
Range("C10").Value = MyInputBox("Introduzca el sexto valor de x")
Range("C11").Value = MyInputBox("Introduzca el septimo valor de x")
Range("C12").Value = MyInputBox("Introduzca el octavo valor de x")
Range("C13").Value = MyInputBox("Introduzca el noveno valor de x")
Range("D5").Value = MyInputBox("Introduzca el primer valor de y")
Range("D6").Value = MyInputBox("Introduzca el segundo valor de y")
Range("D7").Value = MyInputBox("Introduzca el tercer valor de y")
Range("D8").Value = MyInputBox("Introduzca el cuarto valor de y")
Range("D9").Value = MyInputBox("Introduzca el quinto valor de y")
Range("D10").Value = MyInputBox("Introduzca el sexto valor de y")
Range("D11").Value = MyInputBox("Introduzca el séptimo valor de y")
Range("D12").Value = MyInputBox("Introduzca el octavo valor de y")
Range("D13").Value = MyInputBox("Introduzca el noveno valor de y")
Aquí se muestran una serie de Imputbox para que el usuario introduzca los valores n, x, y
en las ecuaciones. Estos valores se irán a sus celdas marcadas en la hoja de Excel.
Las siguientes líneas establecen el valor de las celdas marcadas en la hoja de Excel a su
valor correspondiente, llenando las columnas de x 2, x3, x4, xy, x2y.
'Llenar la columna de x^4'
'Llenar la columna de x^2’ 'Llenar la columna de x^3'
F5 = Range("F5").Value
C5 = Range("C5").Value Range("F5").Value = C5 * C5 * C5
F6 = Range("F6").Value
C6 = Range("C6").Value Range("F6").Value = C6 * C6 * C6
F7 = Range("F7").Value
C7 = Range("C7").Value Range("F7").Value = C7 * C7 * C7
F8 = Range("F8").Value
C8 = Range("C8").Value Range("F8").Value = C8 * C8 * C8
F9 = Range("F9").Value
C9 = Range("C9").Value Range("F9").Value = C9 * C9 * C9
F10 = Range("F10").Value
C10 = Range("C10").Value Range("F10").Value = C10 * C10 * C10
F11 = Range("F11").Value
C11 = Range("C11").Value Range("F11").Value = C11 * C11 * C11
F12 = Range("F12").Value
C12 = Range("C12").Value Range("F12").Value = C12 * C12 * C12
F13 = Range("F13").Value
C13 = Range("C13").Value Range("F13").Value = C13 * C13 * C13
Range("E5").Value = C5 * C5 Range("G5").Value = F5 * C5
Range("E6").Value = C6 * C6 Range("G6").Value = F6 * C6
Range("E7").Value = C7 * C7 Range("G7").Value = F7 * C7
Range("E8").Value = C8 * C8 Range("G8").Value = F8 * C8
Range("E9").Value = C9 * C9 Range("G9").Value = F9 * C9
Range("E10").Value = C10 * C10 Range("G10").Value = F10 * C10
Range("E11").Value = C11 * C11 Range("G11").Value = F11 * C11
Range("E12").Value = C12 * C12 Range("G12").Value = F12 * C12
Range("E13").Value = C13 * C13 Range("G13").Value = F13 * C13
'Llenar la columna de x*y' 'Llenar la columna de x^2*y'
D5 = Range("D5").Value E5 = Range("E5").Value
D6 = Range("D6").Value E6 = Range("E6").Value
D7 = Range("D7").Value E7 = Range("E7").Value
D8 = Range("D8").Value E8 = Range("E8").Value
D9 = Range("D9").Value E9 = Range("E9").Value
D10 = Range("D10").Value E10 = Range("E10").Value
D11 = Range("D11").Value E11 = Range("E11").Value
D12 = Range("D12").Value E12 = Range("E12").Value
D13 = Range("D13").Value E13 = Range("E13").Value
Range("I5").Value = E5 * D5
Range("H5").Value = C5 * D5 Range("I6").Value = E6 * D6
Range("H6").Value = C6 * D6 Range("I7").Value = E7 * D7
Range("H7").Value = C7 * D7 Range("I8").Value = E8 * D8
Range("H8").Value = C8 * D8 Range("I9").Value = E9 * D9
Range("H9").Value = C9 * D9 Range("I10").Value = E10 * D10
Range("H10").Value = C10 * D10 Range("I11").Value = E11 * D11
Range("H11").Value = C11 * D11 Range("I12").Value = E12 * D12
Range("H12").Value = C12 * D12 Range("I13").Value = E13 * D13
Range("H13").Value = C13 * D13
Las siguientes líneas establecen el valor de las celdas marcadas en la hoja de Excel a su
valor correspondiente; estos son las sumatorias de cada una de las columnas, cuyo valor se
reflejará en la ultima fila de cada columna.
'Suma de x'
Range("C14").Value = C5 + C6 + C7 + C8 + C9 + C10 + C11 + C12 + C13
'Suma de y'
Range("D14").Value = D5 + D6 + D7 + D8 + D9 + D10 + D11 + D12 + D13
'Suma de x^2'
Range("E14").Value = E5 + E6 + E7 + E8 + E9 + E10 + E11 + E12 + E13
'Suma de x^3'
Range("F14").Value = F5 + F6 + F7 + F8 + F9 + F10 + F11 + F12 + F13
'Suma de x^4' 'Suma de x*y' 'Suma de x^2*y'
G5 = Range("G5").Value H5 = Range("H5").Value I5 = Range("I5").Value
G6 = Range("G6").Value H6 = Range("H6").Value I6 = Range("I6").Value
G7 = Range("G7").Value H7 = Range("H7").Value I7 = Range("I7").Value
G8 = Range("G8").Value H8 = Range("H8").Value I8 = Range("I8").Value
G9 = Range("G9").Value H9 = Range("H9").Value I9 = Range("I9").Value
G10 = Range("G10").Value H10 = Range("H10").Value I10 = Range("I10").Value
G11 = Range("G11").Value H11 = Range("H11").Value I11 = Range("I11").Value
G12 = Range("G12").Value H12 = Range("H12").Value I12 = Range("I12").Value
G13 = Range("G13").Value H13 = Range("H13").Value I13 = Range("I13").Value
Range("G14").Value = G5 + Range("H14").Value = H5 + Range("I14").Value = I5
G6 + G7 + G8 + G9 + H6 + H7 + H8 + H9 + + I6 + I7 + I8 + I9 +
G10 + G11 + G12 + G13 H10 + H11 + H12 + H13 I10 + I11 + I12 + I13
'Construir la matriz A' En este paso los valores obtenidos se pasan a una matriz que luego será resuelta
por el método de Gauss Jordan.
C3 = Range("C3").Value
C14 = Range("C14").Value
D14 = Range("D14").Value
E14 = Range("E14").Value
F14 = Range("F14").Value
G14 = Range("G14").Value
H14 = Range("H14").Value
I14 = Range("I14").Value
Range("B18").Value = C3
Range("D18").Value = C14
Range("F18").Value = E14
Range("H18").Value = D14
Range("B19").Value = C14
Range("D19").Value = E14
Range("F19").Value = F14
Range("H19").Value = H14
Range("B20").Value = E14
Range("D20").Value = F14
Range("F20").Value = G14
Range("H20").Value = I14
'Resolución de la matriz por Gauss Jordan'
El resto del código en calcular_Click es una serie de cálculos y operaciones que se realizan utilizando los valores
obtenidos de las celdas en tu hoja de Excel. Se actualizarán las celdas con los valores resultantes y se continúa el
proceso.
B18 = Range("B18").Value
D18 = Range("D18").Value
F18 = Range("F18").Value
H18 = Range("H18").Value
Range("C23").Value = B18 / B18
Range("D23").Value = D18 / B18
Range("E23").Value = F18 / B18
Range("F23").Value = H18 / B18
'Paso #3 Eliminar x1 del segundo renglón con la primera normalizada’
B19 = Range("B19").Value
D19 = Range("D19").Value
F19 = Range("F19").Value
H19 = Range("H19").Value
C23 = Range("C23").Value
D23 = Range("D23").Value
E23 = Range("E23").Value
F23 = Range("F23").Value
Range("C25").Value = ((-B19 * C23) + B19)
Range("D25").Value = ((-B19 * D23) + D19)
Range("E25").Value = ((-B19 * E23) + F19)
Range("F25").Value = ((-B19 * F23) + H19)
'Paso #4 Eliminar x1 del tercer renglón con la primera normalizada'
B20 = Range("B20").Value
D20 = Range("D20").Value
F20 = Range("F20").Value
H20 = Range("H20").Value
C23 = Range("C23").Value
D23 = Range("D23").Value
E23 = Range("E23").Value
F23 = Range("F23").Value
Range("C27").Value = ((-B20 * C23) + B20)
Range("D27").Value = ((-B20 * D23) + D20)
Range("E27").Value = ((-B20 * E23) + F20)
Range("F27").Value = ((-B20 * F23) + H20)
'Paso #5 Normalizar la segunda ecuación'
C25 = Range("C25").Value
D25 = Range("D25").Value
E25 = Range("E25").Value
F25 = Range("F25").Value
C30 = Range("C30").Value
D30 = Range("D30").Value
E30 = Range("E30").Value
F30 = Range("F30").Value
C23 = Range("C23").Value
D23 = Range("D23").Value
E23 = Range("E23").Value
F23 = Range("F23").Value
C34 = Range("C34").Value
D34 = Range("D34").Value
E34 = Range("E34").Value
F34 = Range("F34").Value
Range("C37").Value = C34 / E34
Range("D37").Value = D34 / E34
Range("E37").Value = E34 / E34
Range("F37").Value = F34 / E34
'Paso #9 Eliminar x3 de la primera ecuación con la tercera normalizada'
C32 = Range("C32").Value
D32 = Range("D32").Value
E32 = Range("E32").Value
F32 = Range("F32").Value
C37 = Range("C37").Value
D37 = Range("D37").Value
E37 = Range("E37").Value
F37 = Range("F37").Value
C30 = Range("C30").Value
D30 = Range("D30").Value
E30 = Range("E30").Value
F30 = Range("F30").Value
C37 = Range("C37").Value
D37 = Range("D37").Value
E37 = Range("E37").Value
F37 = Range("F37").Value
Range("I23").Value = F39
Range("I24").Value = F41
Range("I25").Value = F37
'Calculo de Y parabola'
Range("J5").Value = (F39 + (F41 * C5) + (F37 * E5))
Range("J6").Value = (F39 + (F41 * C6) + (F37 * E6))
Range("J7").Value = (F39 + (F41 * C7) + (F37 * E7))
Range("J8").Value = (F39 + (F41 * C8) + (F37 * E8))
Range("J9").Value = (F39 + (F41 * C9) + (F37 * E9))
Range("J10").Value = (F39 + (F41 * C10) + (F37 * E10))
Range("J11").Value = (F39 + (F41 * C11) + (F37 * E11))
Range("J12").Value = (F39 + (F41 * C12) + (F37 * E12))
Range("J13").Value = (F39 + (F41 * C13) + (F37 * E13))
'Calculo del coeficiente de correlación'
Range("B45").Value = C14
Range("C45").Value = D14
Range("D45").Value = E14
Range("E45").Value = (D5 * D5) + (D6 * D6) + (D7 * D7) + (D8 * D8) + (D9 * D9) + (D10 * D10) + (D11 * D11) + (D12 *
D12) + (D13 * D13)
Range("F45").Value = H14
E45 = Range("E45").Value
Range("I44").Value = ((C3 * H14) - (C14 * D14)) / ((((C3 * E14) - (C14 * C14)) ^ 0.5) * (((C3 * E45) - (D14 * D14)) ^ 0.5))
End Sub
Private Sub cerrar_Click() Esta es otra subrutina que ocurre cuando el usuario hace clic en
el botón "cerrar".
End Esta línea termina inmediatamente la ejecución del código VBA.
End Sub
CONCLUSIÓN
Este informe detalló la regresión polinomial y su aplicación en análisis estadístico. Exploramos cómo
modela relaciones no lineales mediante polinomios de grado n-ésimo en X, siendo una forma de
regresión lineal múltiple. Los mínimos cuadrados fueron presentados como la técnica principal para
ajustar modelos de regresión polinómica, minimizando varianza de coeficientes estimados. El
coeficiente de correlación se discutió como medida de relación entre variables. Aplicamos estos
conceptos en un algoritmo en Excel para un proyecto de ingeniería civil.
Este informe ofrece una comprensión sólida de la regresión polinomial y su relevancia en la toma de
decisiones basada en datos, útil en diversas disciplinas.
¡Muchas
gracias!