4 votos

Construcción de un modelo que puede estimar la ecuación de una parábola, entrenado en muestra ' trayectorias '

Descubrí una parabólica relación entre el tiempo y una cantidad en mis datos de series de tiempo que se ve como la siguiente: enter image description here

¿Cómo ir sobre la construcción de un modelo que puede aprender la forma de estas parábolas de miles de muestras, y la estimación de la ecuación de la curva basada en la trayectoria inicial de una nueva serie (por ejemplo, t=0 a 5).

Yo no soy muy técnico y no tengo idea de si esto es una petición razonable.

La cantidad de espectadores por minuto de una secuencia de vídeo. La trayectoria es metafórico. Al final del día quiero ser capaz de introducir algunos matriz de t(3,5,8..n) de los espectadores de n minutos y obtener una mejor proyección de la curva de los datos más puntos que yo le doy, que me puede calcular la altura máxima y el área bajo la curva, y hacer backtesting.

Algunos recursos que he encontrado que parecen relevantes: https://stat.ethz.ch/R-manual/R-devel/library/stats/html/predict.smooth.spline.html y Ecuación de una cocina equipada suave spline y el analítico derivado

Me puede caber una spline a la trayectoria, pero no sé a dónde ir desde allí:

d.spl <- with(d, smooth.spline(t, viewers))
d.spl

Llamada: suave.spline(x = t, y = espectadores)

Parámetro de suavizado spar= 0.2297785 lambda= 0.0000001153716 (12 iteraciones) Equivalente Grados de Libertad (Df): 60.23867 Penalizado Criterio (RSS): 10483.72 GCV: 175.7969

enter image description here

2voto

catalpa Puntos 723

Una respuesta rápida, no sólida, pero un buen lugar para comenzar, que voy a añadir a si tengo tiempo (pero espero que sea útil). Y si te gusta el enfoque y quiere seguir en ese camino, me gustaría ver en los vecinos más cercanos de los Clasificadores.

Puesto que los datos se ve bastante cómica consistente, que es más bien un patrón -- me gustaría empezar por la elección de una simple forma funcional, y una parábola suena como una gran idea. Simple b - ax^2 tipo de forma. Usted puede hacer esto en R con

fit <- lm(y~poly(x,2,raw=TRUE))

donde y son los espectadores, y x es el tiempo, para CADA vídeo. Usted recibirá de vuelta el polinomio de coeficientes.

Entonces, ahora que tienes algo donde esperemos que haya eliminado algunos de los "ruido" de las formas, yo elegiría una simple distancia métrica (decir Euclidiana para empezar) y medir la distancia entre su video-para-predecir (VtP), y la primera con puntos k (k minutos de espectadores) de todos los videos que he visto ya. (Para hacer esto, usted necesitará generar k puntos de las curvas has ajuste, para comparar a los k puntos del VtP. Sólo se PODÍA comparar puntos a los puntos directamente, pero creo que habrá más apropiado, por lo que este podría ser un importante regularización.)

A CONTINUACIÓN, siga uno de un par de cosas. O bien, usted acaba de elegir la curva que más se acerque, y asumir que las cosas vayan así hasta el final. Estás hecho! Pero, ¿y si la curva no es un gran ajuste? Bien, entonces usted puede elegir los 5 vecinos más cercanos, y el promedio de sus parámetros (ponderado por su cercanía, tal vez-un montón y un montón de ajustes es posible), entonces predecir con ESA curva, utilizando

weighted_mean(a_close) - weighted_mean(b_close)x^2

El mayor problema con este enfoque es que la asunción de una parábola es bastante estricto, pero conceptualmente es más fácil pensar en la mezcla de varios polinomios, que es pensar acerca de la mezcla de varias splines, y la mezcla será importante, probablemente. Usted querrá expresar cada nueva curva como una combinación de la edad curvas, y es necesario tener una mezcla capaz manera de expresarlas, para hacer eso.

Usted podría probar el promedio de los cinco vecino más cercano-curvas directamente, como bien, pero va a ser más difícil de extrapolar a trayectorias, a diferencia de aquellos que hemos visto antes ... con una forma paramétrica, que sería más fácil.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X