Tengo datos que es de la forma $y = \frac{\beta_1}{1 + \exp(\beta_2 + \beta_3 * x)}$. Para la estimación de $\beta_1$ $\beta_3$I el uso de las fórmulas de este documento: John Fox - Regresión Lineal y no Lineal de mínimos Cuadrados En este papel, $\beta_1$ se estima mediante la observación de los datos. Si hago lo que funciona bien, incluso si sólo tengo tres puntos. Desde que puedo calcular los otros dos. He probado mi parámetros con el nls() en R y LevenbergMarquardt en C#. Los modelos devuelto por ellos son satisfactorios.
El problema es que no quiero mirar los datos para obtener un buen estimador para $\beta_1$, quiero que mi programa para calcular. Durante algún tiempo he utilizado los valores que fueron un poco más alto que el máximo de mis valores (algo entre $\max * 1.1$$\max * 1.5$. Esto funcionó bien mientras los puntos que cubre la mayor parte de la función. También trabajó muy bien si los puntos de datos en algún lugar de la "parte superior" de la curva, pero cuando todos ellos procedían de la zona de "abajo", el punto de inflexión, este estimador fue definitivamente más bajo de lo que debería ser y no podía entrar en el modelo. Si puedo usar algo que es definitivamente más alto que el punto máximo (multiplicando con ridículamente altos valores) el modelo no se ajusta en ninguna manera útil.
Mediciones podría tener este aspecto:
x = (40, 50, 60, 70), y = (1000, 950, 400, 200) -> fácil de estimar
x = (40, 50, 60, 70), y = (1000, 950, 800, 100) -> fácil de estimar
x = (40, 50, 60, 70), y = (500, 200, 100, 50) -> no es tan fácil de estimar
Supongo que he podido averiguar donde estoy, en la función (en el "fondo", en la parte "superior", en la pendiente) mediante el cálculo de los deltas en los puntos dados y calcular un límite superior en función de eso. ¿Alguien tiene una sugerencia para una mejor solución? Información adicional: Si no se puede hacer, es más importante para mí que las mediciones que se pueden ajuste son tan buenas como sea posible y acepto que algunas medidas no se ajustan en absoluto.
(aunque quiero una aplicación en C# que he publicado aquí, no creo que el problema es dependiente del idioma)
actualización (Aplicación de este):
x son los valores de temperatura und y las correspondientes mediciones. Por naturaleza es dado que se debe ver como una curva logística con mayores valores de y a temperaturas más bajas, y viceversa. El punto de fusión es igual a la del punto de inflexión de la curva, lo que cambia mucho con los pequeños cambios de los parámetros del modelo.
actualización (algunas hechas de seguridad de los datos con 7 puntos de datos y conocido punto de inflexión en los 60):
//first I made up some data without any noise and enough (13) points
double[] x17 = { 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90 };
double[] y17 = { 2000, 1920, 1820, 1700, 1500, 1280, 1000, 720, 500, 300, 180, 80, 0 };
//calculated inflection point: 59.642....
//Then I took three different parts of that data
(to simulate how much data I will have in the real world)
double[] x18 = { 30, 35, 40, 45, 50, 55, 60 };
double[] y18 = { 2000, 1920, 1820, 1700, 1500, 1280, 1000 };
//calculated inflection point: 59.263.... is ok!
double[] x19 = { 60, 65, 70, 75, 80, 85, 90 };
double[] y19 = { 1000, 720, 500, 300, 180, 80, 0 };
//calculated inflection point: 53.447.... to small!
double[] x20 = { 45, 50, 55, 60, 65, 70, 75 };
double[] y20 = { 1700, 1500, 1280, 1000, 720, 500, 300 };
//calculated inflection point: 59.868... almost perfect!
Mi enfoque actual para un límite superior de la estimación es y0 * y0 / y1. De esta manera espero que tener en cuenta que puede que no siempre tienen un valor cercano al máximo.
actualización: Los valores x e y nunca será negativo. x siempre será { 40, 45, 50, 55, 60, 65, 70 } menos un punto de datos se pierde.
actualización: Hice muchas, muchas pruebas con datos simulados que debe ser fácil de montar (yo elija puntos de datos que estaban exactamente en la curva = sin ruido) y veo que funciona bien, a menos que el primer o segundo punto de datos (donde x=40, x=45) es la que falta. Supongo que tendrá que descartar tales medidas y el usuario tendrá que vivir con eso.