Regresiones no lineales en Libreoffice

Muchos me dijeron que no se podía y que no había nada mejor que el Solver del Excel. Me puse manos a la obra y logré resolver una curva de selectividad sigmoide  utilizando solamente Libreoffice Calc.

La verdad que me pareció de lo mas sencillo y eficiente, y me parecía una mezquindad no compartir esto, así que les dejo un pequeño y sencillo tutorial.

Supongamos que tenemos los siguientes datos extraidos de un muestreo con sobrecopo para eficiencia de un determinado elemento de selectividad en redes de arrastre:

Talla (cm) Copo Sobrecopo Total Fracción Retenida SL Calculado
(Fracción Retenida Calculada)
Error^2
31 1 88 89 0,0112359551 1,16286056408873E-078 0,0001262467
32 2 128 130 0,0153846154 5,30778667818561E-070 0,0002366864
33 7 136 143 0,048951049 2,42269798212669E-061 0,0023962052
34 10 160 170 0,0588235294 1,10582166700926E-052 0,0034602076
35 9 114 123 0,0731707317 5,04743706499355E-044 0,005353956
36 21 95 116 0,1810344828 2,30386342437776E-035 0,0327734839
37 25 94 119 0,2100840336 1,05158055659529E-026 0,0441353012
38 22 87 109 0,2018348624 4,79985773161847E-018 0,0407373117
39 40 90 130 0,3076923077 2,19085775681281E-009 0,0946745549
40 34 85 119 0,2857142857 0,5 0,0459183673
41 42 59 101 0,4158415842 0,9999999978 0,3412410522
42 42 44 86 0,488372093 1 0,2617631152
43 37 22 59 0,6271186441 1 0,1390405056
44 48 13 61 0,7868852459 1 0,0454178984
45 65 12 77 0,8441558442 1 0,0242874009
46 51 8 59 0,8644067797 1 0,0183855214
47 72 0 72 1 1 0
48 64 4 68 0,9411764706 1 0,0034602076
49 53 4 57 0,9298245614 1 0,0049245922
50 86 0 86 1 1 0
51 80 2 82 0,9756097561 1 0,000594884
52 69 1 70 0,9857142857 1 0,0002040816
53 75 0 75 1 1 0
54 66 1 67 0,9850746269 1 0,0002227668

 

NOTA: Los valores de SL calculado, están calculados mediante la fórmula(1) y usando valores arbitrarios de c y L50

Y que el gráfico de todas estas muestras es similar al siguiente:

Dispersion

Y que necesitamos ajustar una curva sigmoide cuya fórmula(1) es:
SigmoideDonde L = Talla(cm), -c=Constante a calcular, L50=Cte a Calcular

Necesitamos calcular c y L50. Si c y L50 están ajustados lo lógico es que el error cuadrático se minimice. Entonces, en dos celas libres distintas, declaremos valores arbitrarios para c y L50 (digamos celdas J3 y J4 respectivamente) y en otra celda (J5) se coloca la suma de los errores cuadráticos (esto no es arbitrario y es la suma de la primer tabla). A mi se me ocurrió darle estos valores a C y L50, pero le pueden poner lo que quieran.

Variables C 20
L50 40
Error Total 1,1093543468

Como ven, el error cuadrático es bastante grande y nuestra idea es minimizarlo. Para ello, vamos a Herramientas/Solucionador. En la siguiente ventana ponemos como “Celda Objetivo” el error cuadrático $J$5, En “optimizar Resultados”, tildamos “minimizar” y en “Cambiando celdas” colocamos las variables a estimar, en este caso $J$3:$J$4. Le damos solucionar, esperamos un ratito y ya tenemos automágicamente  ¡La curva ajustada!

Curva Ajustada

Matriz para el cálculo de redes de pesca de arrastre

Estoy trabajando en el desarrollo de Software Libre de cálculo de redes de pesca de arrastre escrito en Python.

Después de mucho pensar un método de cálculo sistematizado, llegué a la conclusión de que, para determinar parámetros básicos, tales como Superficie Sólida y Resistencia de la red, se puede hacer uso de una matriz como la siguiente:

Matriz de red Sigue leyendo