¿Cuál es la mejor manera de obtener la ecuación para una curva? (Comercio)

Voy a suponer que desea mirar un cierto rango de tiempo en la historia reciente, determinar los puntos de soporte y encontrar la curva que se ajuste a ellos y predecir el próximo (o los próximos).

En primer lugar, presentaré algo llamado interpolación polinómica. Es una forma de tomar un conjunto de puntos y encontrar el polinomio de menor grado que pasa por esos puntos. Para n puntos, siempre puede encontrar un polinomio de grado como máximo n-1 que se ajuste a ellos. Menciono esto principalmente porque quiero advertirte lejos de eso. Es excelente para puntos de ajuste, pero terrible para la predicción.

En cambio, le recomiendo que decida qué tipo de curva desea usar. Esencialmente, debe suponer que la curva tendrá la forma [matemáticas] f (x) = c_0f_0 (x) + c_1f_1 (x) +… + c_kf_k (x) [/ matemáticas] para algunas funciones preseleccionadas [matemáticas] f_i (x) [/ math]. Cada vez que desea determinar la curva, en realidad solo está determinando los coeficientes [math] c_i [/ ​​math]. Para hacer esto, puede usar algo llamado teoría de mejor aproximación (BAT). BAT ofrece muchas formas de determinar los coeficientes dependiendo de cómo defina lo que significa ser la “mejor” aproximación. ¡Incluso hay formas de determinar infinitos coeficientes para infinitas funciones! Uno de los métodos más fáciles y más utilizados son los mínimos cuadrados ordinarios (MCO) [1]. Define “mejor aproximación” como la aproximación que minimiza la suma de los cuadrados de los errores. Eso significa que si sus datos son [matemática] (x_i, y_i) [/ matemática] para [matemática] 0 \ leq i \ leq n [/ matemática], el término de error para una función [matemática] f [/ matemática] es [ math] \ sum_ {i = 0} ^ n (y_i-f (x_i)) ^ 2 [/ math].

Eso resume el caso general. Para su aplicación particular, probablemente recomendaría usar OLS y asumir que la función es cuadrática. Eso significa [matemática] f_0 (x) = 1 [/ matemática], [matemática] f_1 (x) = x [/ matemática] y [matemática] f_2 (x) = x ^ 2 [/ matemática]. La mayoría de los lenguajes de programación tendrán una biblioteca capaz de calcular la solución a un problema OLS muy rápidamente usando matrices. La desventaja es que esta predicción solo será válida por un tiempo bastante corto porque [matemática] x ^ 2 [/ matemática] dominará a largo plazo, pero las predicciones a largo plazo utilizando análisis técnicos rara vez son seguras de todos modos.

Eso te deja con un problema final: comprobar si funcionó. Si planea simplemente trazar la curva resultante y operar manualmente, generalmente puede ver una curva y saber si es una buena aproximación o no. Si planea tener un intercambio de computadoras usando esto como un indicador, necesita una forma de verificar su precisión. Algunos métodos simples incluyen

  1. La suma de los cuadrados del error.
  2. El error absoluto máximo en un punto
  3. ¿Cómo se comparan los coeficientes con los coeficientes de curvas que fueron buenos estimadores de este activo en el pasado?

Usando estos u otros criterios que elija, puede determinar cuánto confiar en este indicador.

Una nota al margen: ha pasado un tiempo desde que lo he usado, pero es posible que le interese el indicador pSAR (parada y reversa parabólicas).

Notas al pie

[1] Mínimos cuadrados ordinarios – Wikipedia

Recibió algunas buenas respuestas y continuará obteniendo más, pero … Como desarrollador que trabaja con tendencias y predicciones (pero no como estadístico), tengo una perspectiva algo diferente sobre el problema. Creo que el factor más importante es determinar primero su objetivo:

¿Quieres una solución lineal o una que siga las curvas? ¿Necesitas extrapolar mucho más allá del final de la trama? ¿Está buscando moderar los cambios o identificar la actividad cíclica? ¿Los datos son muy ruidosos o están compuestos solo por mediciones críticas? ¿Y qué hay de las brechas y los grupos? ¿Qué estás buscando y qué quieres hacer con él?

Bien, eso suena mucho, y lo es. Pero es importante que sepa estas cosas si su esfuerzo es ser productivo. Por ejemplo, una de las cosas más difíciles de hacer es predecir las tendencias cíclicas cuando los factores impulsores son imprecisos, especialmente con datos ruidosos. Sin embargo, ese es a menudo el objetivo.

Es posible que primero desee suavizar la curva utilizando cualquiera de una variedad de técnicas y luego aplicar una transformación rápida de Fourier. Luego puede usar eso para predecir curvas futuras. Sin embargo, eso corta la conexión entre causa y efecto, por lo que puede no funcionar bien en su situación.

Otra forma es identificar los factores (ver la nota a continuación) que son “causas”, limpiarlos y luego utilizar el aprendizaje profundo (es decir, la red neuronal artificial) para predecir las tendencias. Pero eso requiere MUCHOS datos de capacitación, generalmente millones de casos de prueba.

Buena suerte.

Nota: Esto (identificar los factores que son causas) NO ES FÁCIL y es crítico para el éxito de su esfuerzo. Si planea encontrar una solución única y útil, esta es la clave. ¿Cuáles son los factores que conducen al comportamiento que le interesa y cómo puede representarlos numéricamente?

Por ejemplo, en el comercio, es probable que desee ingresar la primera y segunda derivada de la curva de alguna manera. Puede hacer esto alimentando su algoritmo con un par de valores delta, probablemente como porcentaje de cambio durante un período determinado, y con “cambio en el cambio” durante un período más largo.

En cuanto a un comerciante sin entrar en detalles de matemática de derivación, esto se puede hacer usando Excel fácilmente

  1. Encuentra tus variables
  1. Hora
  2. Valor de subyacente
  • Como se muestra arriba, enumere lo mismo con los intervalos a los que se ajusta su curva, puede obtener estos valores de los recursos de origen o puede verificar el gráfico y calcular el valor
  • Una vez que los valores se escriben en orden, cree un diagrama de dispersión / línea
    1. Una vez que se establece el diagrama de dispersión
    1. Cómo agregar una línea de tendencia y un gráfico como el anterior
    2. para agregar gráfico

      1. Para agregar tendencia como hacer clic en la línea de gráfico real trazada, luego haga clic derecho y agregue la línea de tendencia
      2. ver la línea de tendencia establecida a continuación

      Esto te daría la ecuación requerida.

      puede pronosticar y probar los datos en función de la ecuación y la prueba inversa, si hay más datos para verificar el factor de confiabilidad.

      Ps:

      1. Los valores creados anteriormente son aleatorios
      2. El polinomio se veía mejor para buscar ecuaciones de curvas

      Este enlace explica cómo ajustar la “mejor” línea recta al conjunto de puntos.

      SchecterAdvancedMath

      Se puede usar una idea similar para ajustar el “mejor” polinomio de enésimo grado a un conjunto de puntos. Un conjunto de n + 1 puntos de datos independientes da como resultado un polinomio único de grado n, y se necesita procesar más que esa cantidad de puntos para obtener el “mejor”. En general, la idea es minimizar la suma de los “errores” de cada punto en relación con los datos reales.

      Estudiar este tema llevará tiempo, y todos los detalles exceden el espacio en este margen.

      Sin embargo, es muy muy importante darse cuenta de que ajustar una curva a una pequeña sección de puntos en un área, cuando esa curva puede ser bastante compleja o incluso aleatoria, es un gran gran error. Obtendrá predicciones erróneas horribles para los valores fuera del pequeño dominio de suavidad que está tratando de usar en su predicción.

      Primero: no lo hagas. Si bien los datos de los años actuales pueden parecer que se ajustan bastante bien a una parábola si toma una visión a más largo plazo de los mismos datos

      ves una imagen muy diferente. Es una tontería ajustar una información cuadrática a los datos con la esperanza de extrapolarlos al futuro. y una forma particular de necedad llamada Overfitting.

      En lugar de ajustar un cuadrático, me inclinaría más por arreglar un conjunto de líneas rectas, al menos esas no darán la impresión de acelerar los precios.

      El campo real de ajuste de curvas es bastante complejo y demasiado largo para una respuesta de quora. Los mínimos cuadrados no lineales pueden ser un lugar para comenzar.

      Usaría una spline cúbica, que esencialmente une un número arbitrario de ecuaciones cúbicas, ya que no se garantiza que obtenga una sola curva agradable como en la imagen.

      Spline (matemáticas) – Wikipedia

      Eso supone que le gustaría que la curva minimice la distancia entre la línea y los puntos de datos, sujeto a cualquier decisión tomada sobre qué tan cerca de seguir la fluctuación diaria de los datos. Use cúbicos individuales más largos para suavizar más, con más error.

      Esto también supone que desea un enfoque puramente descriptivo. Si desea predecir lo que se supone que está al final de ese gráfico, no solo está pidiendo una curva. Está solicitando un modelo que sea válido para estadísticas inferenciales.

      Bueno, no estoy completamente seguro, pero usaría una regresión lineal, parece que tiene un polinomio de segundo grado allí, si tiene un software como matlab, puede hacer un vector de coordenadas x que desee en la curva y otro uno para las coordenadas y y puede usar un comando como polyfit para encontrar la pendiente y la intersección, o polyval para obtener los coeficientes de la polinomia. Si no tiene ese tipo de software, necesitaría hacerlo a mano, un polinomio de segundo grado tiene la forma a + bx = y para encontrar b que necesita calcular (# de puntos) * (suma de cada x * y) – (suma de todas las x) * (Suma de todas las ys) y todo eso dividido por (# de xs) * (suma de cada x ^ 2) – Suma de todas las xs. Para encontrar un Necesitas la (media de y) – (respuesta de b) * (media de x) y eso te dará los coeficientes. Recuerde que el rendimiento pasado no es indicativo de éxito futuro, ¡espero que esta respuesta haya sido útil!