Séries temporais com vários assuntos e múltiplas variáveis


8

Sou desenvolvedor web e estatístico iniciante.

Meus dados são mais ou menos assim

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  

Estou tentando prever y1 como um produto das variáveis ​​x. No entanto, tenho razões para acreditar que pode haver um atraso no efeito das múltiplas variáveis ​​x em y1, ou seja, as variáveis ​​x da semana 1 para o sujeito A influenciam y1 para o sujeito A na semana 2.

Observe que nem todos os assuntos terão pontos de dados para cada semana (na verdade, a maioria não). Os sujeitos tendem a ter pontos de dados para, digamos, a semana 1, 2, 3, 4 e depois desaparecem e não aparecem novamente até a semana 7,8,9. Estou disposto a restringir minha análise aos pontos de dados em que temos dados das N semanas anteriores, dada minha hipótese sobre o atraso.

Como eu disse, sou iniciante e não tenho certeza da melhor maneira de lidar com um conjunto de dados deste formulário. Espero realizar essa análise em R, Python ou em alguma combinação dos dois. Eu não acho que as variáveis ​​x da semana atual não terão efeito. Eu acho que eles terão algum efeito, talvez maior que nas semanas anteriores. Só acredito que as semanas anteriores terão algum efeito.

Espero que haja duas a três semanas de atraso. Para dar um pouco de contexto, a análise que estou tentando aqui refere-se a julgar a qualidade do tráfego online. Toda semana, recebo uma pontuação com a qualidade de um determinado fluxo de usuários que envio a um determinado site. Estou tentando encontrar métricas secundárias, como distribuição do navegador, porcentagem de cliques duplicados etc., que me permitirão prever qual será essa pontuação antes do tempo.


Prevejo que essa não será uma resposta completa, mas deve lhe dar um ponto de partida. Eu começaria com o material do capítulo 7 / Seção 6/7/8 do livro "Modelagem Estatística Bayesiana", de Peter Congdon. Meu problema envolvia previsão de espaço / tempo de eventos de IED e era um pouco mais complexo que o seu, mas as peças estão todas lá; Estou tentando encontrar meu código antigo do WinBUGS (que você pode refazer em uma implementação do R / JAGS). No entanto, existe o código WinBUGS disponível para os exemplos de Congdon e eles devem fornecer um bom ponto de partida.
Aengus

Como sou novato, você acha que poderia me explicar em alto nível o que preciso fazer e o que isso representa em termos de análise? Muito obrigado e qualquer código que você poderia fornecer seria mais do que apreciado! Estou familiarizado com python e R.
Spencer

Quanto de atraso você está falando? Apenas uma semana ou várias semanas? Você está esperando que é uma função do s de apenas uma semana anterior, ou muitas semanas anteriores? Embora seu exemplo seja bem definido, fornecer um conjunto de variáveis ​​do mundo real provavelmente fornecerá respostas melhores, pois os respondentes poderão ver o que você está tentando fazer. yweek nx
precisa saber é o seguinte

Estou esperando que haja 2-3 semanas de atraso. Eu editei a pergunta para dar um exemplo do mundo real.
Spencer #

Eu pensaria nisso como uma simples regressão. As covariáveis ​​são x1 (t), x2 (t), ..., x5 (t) mais suas variáveis ​​atrasadas x1 (t-1), x1 (t-2), etc. Dependendo de quão sofisticado você deseja obter, você pode simplesmente adivinhar os lags e o gráfico x1 (t-lag) versus y1 e procurar relacionamentos ou pode executar uma autocorrelação. Você deve conseguir executar o primeiro muito rapidamente no R usando quadros de dados e não possui muitos incrementos de atraso para se preocupar. Eu deixei de fora a discussão sobre assuntos, mas estou embarcando. A maneira mais fácil de começar com esses códigos é codificá-los como variáveis ​​discretas.
Aengus

Respostas:


1

Como mencionei na minha nota acima, eu trataria isso como um problema de regressão. Aqui está um link para construir, em R, as variáveis ​​lag (e lead) dos seus dados ( R Head ).

Incluída no post, há uma breve introdução ao uso dos dados resultantes em um modelo de regressão. Você também pode fazer uma pequena escavação em segundo plano no dynlm do pacote R (regressão linear dinâmica).


Estou lendo sobre regressão linear dinâmica e parece se encaixar no que estou procurando. Você tem algum material de leitura sugerido?
Spencer

Desculpe, não de cabeça para baixo. Você provavelmente já conhece o pacote 'dlm' no R; aqui está um link com um código R ligação
Aengus

0

Você pode criar tabelas nas quais o y1 é deslocado por 0,1,2,3,4 semanas.

Então você executa uma análise neles. Por exemplo, você pode criar uma rede neural que tente prever y1 a partir de x. Para algumas idéias, você pode dar uma olhada em Weka .

Então, você tem alguma medida de prever y1 de x para cada atraso. Usando isso, você pode encontrar o atraso mais adequado.


Como alternativa, você pode criar uma tabela que inclua x da semana atual, x da semana anterior, ... e y1. Em seguida, faça uma análise da influência (por exemplo, PCA ) para ver qual semana e qual variável tem mais influência.


Eu não acho que as variáveis ​​x da semana atual não terão efeito. Eu acho que eles terão algum efeito, talvez maior que nas semanas anteriores. Só acredito que as semanas anteriores terão algum efeito. Além disso, como eu já estou familiarizado com R e python, prefiro usar essas ferramentas.
Spencer #

@ Spencer Você encontrará pacotes python / R para todas as ferramentas no Weka. Veja a resposta atualizada.
J13r 17/04
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.