[R-br] Duvida sobre como alterar o contraste no options de "contr.poly" para "contr.sum" e entender o que acontece.

Augusto Ribas ribas.aca em gmail.com
Terça Fevereiro 5 12:06:04 BRST 2013


Ola caros colegas da lista, eu estava tentando estabelecer a matriz de
contrastes para usar na função lm, mas não estou conseguindo entender
como as coisas funcionam no R.
Eu li um tutorial antigo, esse aqui
(http://wwwuser.gwdg.de/~cscherb1/content/Statistics%20Course%20files/Working%20with%20orthogonal%20contrasts%20in%20R.pdf).

Eu não entendo se as coisas mudaram desde que esse tutorial foi
escrito, mas com matriz de soma como no exemplo acima tudo é simples,
mas eu não consigo mais replicar o exemplo no R.

Mais precisamente o que eu estava tentando era o seguinte:

#Dados de exemplo:

variavel<-factor(rep(letters[1:3],each=10))
resposta<-rnorm(30,rep(c(1,1,2),each=10))

#Ai eu ajusto um modelo linear
#modelo usando opções default

modelo<-lm(resposta~variavel)
summary(modelo)

#Eu imagino que a matriz que deveria fazer os contrastes como acima
seria essa no caso de usar soma como no texto
cbind(c(-1,1,0),c(-1,0,1))

Mas o default usa outro esquema de matriz de contrastes, logo so
colocar isso nos contrastes não funciona
#O default não usa esse sistema certo?
options("contrasts")

#Eu imaginei que essa opção que fosse a que eu precisaria mudar
options("contrasts")$contrasts[2]


#Mas tentando mudar de forma simples assim eu obtenho um erro
#mas não é uma mudança simples assim, quando eu tento isso:
options("contrasts")$contrasts[2]<-"contr.sum"

#eu tenho essa mensagem de Erro

Erro em options("contrasts")$contrasts[2] <- "contr.sum" :
  destino da atribuição expande para um objeto fora da linguagem

Mas como eu faço ao invéz de escrever isso,
contrasts(variavel)

#Escrever isso, ou algo assim
cbind(c(-1,1,0),c(-1,0,1))

#E obter o mesmo resultado que esta no summary(modelo) la em cima, se
não me perdi em algum momento mais para cima.

#Porque mesmo a opção contr.sum parece que ele trabalha de outra forma
do que estou imaginando.
contr.sum(3,contrasts=T,sparse=F)

Bem é isso, é apenas uma duvida sobre como o R funciona que não estou
conseguir entender, se alguém puder dar uma luz eu serei grato.

Abraços
Augusto Ribas
-- 
Grato
Augusto C. A. Ribas

Site Pessoal: http://recologia.wordpress.com/
Lattes: http://lattes.cnpq.br/7355685961127056


Mais detalhes sobre a lista de discussão R-br