Series temporales con múltiples sujetos y múltiples variables.

8

Soy desarrollador web y estadístico novato.

Mis datos se parecen a esto

Subject  Week   x1  x2  x3  x4  x5  y1
A        1      .5  .6  .7  .8  .7  10
B        1      .3  .6  .2  .1  .3  8
C        1      .3  .1  .2  .3  .2  6  
A        2      .1  .9  1.5 .8  .7  5
B        2      .3  .6  .3  .1  .3  2
D        2      .3  .1  .4  .3  .5  10  

Estoy tratando de predecir y1 como producto de las variables x. Sin embargo, tengo razones para creer que puede haber un retraso en el efecto de las múltiples variables x en y1, es decir, las variables x de la semana 1 para el sujeto A influyen en y1 para el sujeto A en la semana 2.

Tenga en cuenta que no todas las asignaturas tendrán puntos de datos para cada semana (de hecho, la mayoría no). Los sujetos tenderán a tener puntos de datos para, por ejemplo, la semana 1, 2, 3, 4, luego se dejarán y no volverán a aparecer hasta la semana 7,8,9. Estoy dispuesto a restringir mi análisis a los puntos de datos donde tenemos datos de las N semanas previas dada mi hipótesis sobre el retraso.

Como dije, soy un novato y no estoy seguro de la mejor manera de manejar un conjunto de datos de esta forma. Espero llevar a cabo este análisis en R, Python o alguna combinación de ambos. No creo que las variables x de la semana actual no tengan ningún efecto. Creo que tendrán algún efecto, quizás mayor que las semanas anteriores. Solo creo que las semanas anteriores tendrán algún efecto.

Espero que haya dos o tres semanas de retraso. Para dar un poco de contexto, el análisis que estoy tratando aquí se relaciona con juzgar la calidad del tráfico en línea. Cada semana obtengo un puntaje que califica la calidad de un determinado flujo de usuarios que envío a un sitio web determinado. Estoy tratando de encontrar métricas secundarias, como la distribución del navegador, el porcentaje de clics duplicados, etc., que me permitirán predecir cuál será la puntuación antes de tiempo.

Spencer
fuente
Anticipo que esta no será una respuesta completa, pero debería darle un lugar para comenzar. Comenzaría con el material del Capítulo 7 / Sección 6/7/8 del libro "Modelo estadístico bayesiano" de Peter Congdon. Mi problema implicaba la predicción de espacio / tiempo de los eventos de IED y era un poco más complejo que el tuyo, pero las piezas están ahí; Estoy tratando de encontrar mi antiguo código WinBUGS (que podría volver a trabajar en una implementación R / JAGS). Sin embargo, hay un código WinBUGS disponible para los ejemplos de Congdon y deberían proporcionarle un buen punto de partida.
Aengus
Como soy un novato, ¿crees que podrías desglosarme a un alto nivel lo que necesito hacer y lo que esto representa en términos de análisis? ¡Muchas gracias y cualquier código que pueda proporcionar sería más que apreciado! Estoy familiarizado con Python y R.
Spencer
¿De cuánto retraso estás hablando? ¿Solo una semana o varias semanas? ¿ que sea ​​una función de las s de solo una semana anterior o muchas semanas anteriores? Aunque su ejemplo está bien presentado, proporcionar un conjunto de variables del mundo real probablemente le proporcionará mejores respuestas, ya que los respondedores podrán ver lo que está tratando de hacer. yweek nx
naught101
Espero que haya 2-3 semanas de retraso. He editado la pregunta para dar un ejemplo del mundo real.
Spencer
Lo consideraría una simple regresión. Las covariables son x1 (t), x2 (t), ..., x5 (t) más tus variables rezagadas x1 (t-1), x1 (t-2), etc. Dependiendo de lo sofisticado que quieras ser, simplemente puede adivinar los rezagos y trazar x1 (t-lag) versus y1 y buscar relaciones o podría ejecutar una autocorrelación. Debería poder hacer lo primero muy rápidamente en R usando marcos de datos y no tiene muchos incrementos de retraso de los que preocuparse. He dejado de discutir sobre temas, pero estoy abordando. La forma más fácil de comenzar con esos es codificarlos como variables discretas.
Aengus

Respuestas:

1

Como mencioné en mi nota anterior, trataría esto como un problema de regresión. Aquí hay un enlace para construir, en R, las variables de retraso (y plomo) a partir de sus datos ( R Head ).

En la publicación se incluye una breve introducción al uso de los datos resultantes en un modelo de regresión. También es posible que desee realizar un poco de excavación de fondo en el paquete R dynlm (regresión lineal dinámica).

Aengus
fuente
Estoy leyendo sobre regresión lineal dinámica y parece ajustarse a lo que estoy buscando. ¿Tiene algún material de lectura sugerido?
Spencer
Lo siento, no fuera de mi cabeza. Probablemente ya conozca el paquete 'dlm' en R; aquí hay un enlace con algún enlace de
Aengus
0

Puede crear tablas donde el y1 se desplace 0,1,2,3,4 semanas.

Luego ejecutas un análisis sobre ellos. Por ejemplo, podría hacer una red neuronal que intente predecir y1 a partir de x. Para algunas ideas, puedes darle un giro a Weka .

Entonces, tiene alguna medida de predecir y1 a partir de x para cada retraso. Con esto, puede encontrar el retraso que mejor se adapta.


Alternativamente, puede crear una tabla que incluya x de la semana actual, x de la semana anterior, ... e y1. Luego haga un análisis de influencia (por ejemplo, PCA ) para ver qué semana y qué variable tiene la mayor influencia.

j13r
fuente
No creo que las variables x de la semana actual no tengan ningún efecto. Creo que tendrán algún efecto, quizás mayor que las semanas anteriores. Solo creo que las semanas anteriores tendrán algún efecto. Además, como ya estoy familiarizado con R y python, preferiría usar esas herramientas.
Spencer
@Spencer Encontrarás paquetes de python / R para todas las herramientas en Weka. Ver la respuesta actualizada.
j13r