Notas sobre variável dummy no Winbugs

Ese post de hoje é totalmente especializado para uma audiência de, possivelmente, ninguém nesse Blog. Os que usam o Winbugs já devem saber do que vou falar, e os que não usam não sabem. De todo jeito, pode ajudar alguém pelo google que chega aqui.

O negócio é o seguinte. Eu estou acostumado a fazer regressão no R e quando tenho uma variáve categórica, é só indicar pro R que ela é um fator e ele faz as correções necessárias na regressão, não considerando ela como contínua.

Acontece que o Winbugs, até onde entendo, não aceita fatores. Então, você tem que construir uma variável para cada categoria, se não seu modelo vai ser estimado errado. E sabe o post de ontem de madrugada, em que eu estava esperando o R terminar uma simulação? Pois é, era do Winbugs. Só que eu esqueci de fazer essa modificação para as variáveis categórias e… Bem, a simulação de ontem tava errada e não serviu pra nada. Vou ter que corrigir e fazer de novo =(.

Anúncios

Sobre Manoel Galdino

Corinthiano, Bayesiano e Doutor em ciência Política pela USP.
Esse post foi publicado em estatística e marcado , , , , . Guardar link permanente.

4 respostas para Notas sobre variável dummy no Winbugs

  1. Eduardo Leoni disse:

    Duas soluções:

    1) Constroi um “model.matrix” no R e dá a matrizona pro winbugs. (veja ?model.matrix)

    2) Depois de ter certeza que todos os “levels” da sua variável “factor” estão presentes:

    No R:
    m <- data.frame(x=factor(sample(letters, 10))
    m$x.num <- as.numeric(m$x)
    n.levels <- max(m$x.num)
    No bugs use sub-índices. Algo como:
    y ~ dnorm(alpha[x.num], eta)
    for (i in 1:n.levels) {
    alpha[i] ~ dnorm(0, .001)
    }

  2. Obrigado pelas sugestões.
    A segunda sugestão eu já sabia e foi mais ou menos o que implementei (depois de ter notado meu erro). A primeira não conhecia o comando model.matrix; vou ver o que ele faz.
    Mas valeu mesmo assim. Eu estou basicamente seguindo os scripts do livro de Gelman e Hill (2007), ARM, como o Gelman gosta de se referir a ele.

  3. Julio disse:

    Caro Manoel, depois que li o seu post, fiquei com uma duvida.

    No winBugs, como você disse é necessário construir uma variável para cada categoria, mas eu fico na dúvida se eu tenho por exemplo 3 categorias: Estaria correto escrever um modelo do tipo y = beta0 + beta1*x1 + beta2*x2 +beta3*x3, e passar para o winBugs uma matriz de 4 colunas, em que a primeira coluna é formada por 1’s (uns) e as outras três são constituídas de zero e uns?

    Pergunto isso, porque se fizer isso no R ele automaticamente não estima o beta3. Porém o winbugs solta estimativas para todos os parâmetros, mas resta saber se isso está correto.

  4. Pingback: Multicolinearidade no Winbugs | Blog Pra falar de coisas

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s