Eu tenho alguns dados de séries temporais em que a variável medida é números inteiros positivos discretos (contagens). Quero testar se há uma tendência ascendente ao longo do tempo (ou não). A variável independente (x) está no intervalo de 0 a 500 e a variável dependente (y) está no intervalo de 0 a 8.
Eu pensei que respondesse isso ajustando uma regressão da forma y = floor(a*x + b)
usando mínimos quadrados ordinários (OLS).
Como eu faria isso usando R (ou Python)? Existe um pacote existente para ele ou é melhor escrever meu próprio algoritmo?
PS: Eu sei que essa não é a técnica ideal, mas preciso fazer uma análise relativamente simples que eu possa realmente entender - minha formação é biologia, não matemática. Sei que estou violando suposições sobre erro na variável medida e independência das medidas ao longo do tempo.
fonte
Respostas:
Você pode ajustar o modelo que declara usando a função
nls
(mínimos quadrados não lineares)R
, mas como você disse que violará muitas das suposições e ainda provavelmente não fará muito sentido (você está dizendo que o resultado previsto é aleatório em torno de uma etapa função, não valores inteiros em torno de um relacionamento que aumenta suavemente).A maneira mais comum de ajustar os dados de contagem é usar a regressão de Poisson usando a
glm
função inR
, o primeiro exemplo na página de ajuda é uma regressão de Poisson, embora se você não estiver familiarizado com as estatísticas, seria melhor consultar um estatístico para garantir que você está fazendo as coisas corretamente.Se o valor de 8 for um máximo absoluto (impossível de ver uma contagem mais alta, não é apenas isso que você viu), você pode considerar a regressão logística de probabilidades proporcionais, existem algumas ferramentas para fazer isso em pacotes
R
, mas você realmente deve envolver um estatístico se você quiser fazer isso.fonte
No entanto, o modelo que você está sugerindo pode ocorrer, por exemplo, quando você observa dados arredondados: com erros normais do iid .ϵ i
Eu acho que é interessante dar uma olhada no que pode ser feito com isso. Denoto por o cdf da variável normal padrão. Se , então usando notações familiares do computador.ϵ ∼ N ( 0 , σ 2 ) P ( ⌊ a x + b + ϵ ⌋ = k )F ε ~ N( 0 , σ2)
Você observa pontos de dados . A probabilidade do log é dada por Isso não é idêntico aos mínimos quadrados. Você pode tentar maximizar isso com um método numérico. Aqui está uma ilustração em R:(xi,yi)
Em vermelho e azul, as linhas encontradas por maximização numérica dessa probabilidade e mínimos quadrados, respectivamente. A escada verde é para encontrada a partir da probabilidade máxima ... isso sugere que você poderia usar mínimos quadrados, até uma tradução de por 0,5 e obter aproximadamente o mesmo resultado; ou, esses mínimos quadrados se encaixam bem no modelo onde é o número inteiro mais próximo. Os dados arredondados são tão frequentemente encontrados que tenho certeza de que isso é conhecido e que foi estudado extensivamente ...⌊ a x + b ⌋ a , b b Y i = [ a x i + b + ϵ i ] , [ x ] = ⌊ x + 0,5 ⌋ax+b ⌊ax+b⌋ a,b b
fonte