Em Ter 7 jun. 2016, às 20:26, Andre Oliveira escreveu:
boa noite, alguém poderia ajudar descobrir onde está o erro?
remove(list=ls())
diurno=c(68,36,40,30)
noturno=c(46,26,55,22)
quadra= c("A", "B", "G","D")
dados=data.frame(diurno,noturno,quadra)
fit = glm(cbind(diurno, noturno) ~ factor(quadra), family = poisson, data=dados)
Error in x[good, , drop = FALSE] :
(subscript) subscrito lógico muito longo
Andre, conforme está escrito na documentação do glm, a resposta pode ser fornecida como duas colunas (sucessos e fracassos) apenas para regressões binomiais e quasi-binomiais; não para Poisson.
Supondo que seus dados sejam o resumo de 68 + 46 = 114 observações para a quadra A, 36 + 26 = 62 observações para a quadra B, e por aí em diante; e que você queira calcular uma razão de prevalência / risco / outra proporção entre as quadras, o jeito mais óbvio de fornecer seus dados para a função é em formato longo:
dados <- data.frame(horariodiurno = c(1, 0, 1, 0, 1, 0, 1, 0), quadra = c("A", "A", "B", "B", "C", "C", "D", "D"))
dados <- dados[rep(1:nrow(dados), c(68, 46, 36, 26, 40, 55, 30, 22)), ]
fit = glm(horariodiurno ~ quadra, family = quasipoisson, data = dados)
Repare também que, se você quer trabalhar com razão de proporções, a distribuição Poisson em princípio não se aplica, daí a necessidade de você especificar uma quasipoisson ou então um estimador de variância consistente com heterocedasticidade (pacote sandwich).
Por favor, use o código com cuidado porque não estou com meu computador aqui para testá-lo.
Atenciosamente,