Que pergunta você está tentando responder?
Se você deseja um teste geral de tudo o que está acontecendo, o nulo é que ambos os efeitos principais e a interação são todos 0, então você pode substituir todos os pontos de dados por suas classificações e fazer uma ANOVA regular para comparar com uma média de interceptação / média único modelo. Isso é basicamente quantos dos testes não paramétricos funcionam, usando as fileiras transforma os dados em uma distribuição uniforme (sob nulo) e você obtém uma boa aproximação tratando-os como normais (o Teorema do Limite Central aplica-se ao uniforme para a amostra) tamanhos acima de 5 ou 6).
Para outras perguntas, você pode usar testes de permutação. Se você quiser testar um dos efeitos principais e a interação juntos (mas permitir que o outro efeito principal seja diferente de zero), poderá permutar o preditor que está sendo testado. Se você deseja testar a interação enquanto permite que ambos os efeitos principais sejam diferentes de zero, você pode ajustar apenas o modelo reduzido de efeitos principais e calcular os valores e resíduos ajustados, permutar aleatoriamente os resíduos e adicionar os resíduos permutados de volta ao valores ajustados e se encaixam no modelo anova completo, incluindo a interação. Repita isso várias vezes para obter a distribuição nula do tamanho do efeito de interação e comparar com o tamanho do efeito de interação dos dados originais.
Pode haver código SAS existente para fazer coisas como esta, vi alguns tutoriais básicos sobre o uso do SAS para testes de inicialização e permutação (a maneira mais rápida parece estar usando a etapa de dados para criar todos os conjuntos de dados em uma grande tabela e depois usando por processamento para fazer as análises). Pessoalmente, eu uso R para esse tipo de coisa, então não posso ajudar mais no uso do SAS.
Editar
Aqui está um exemplo usando o código R:
> fit1 <- aov(breaks ~ wool*tension, data=warpbreaks)
> summary(fit1)
Df Sum Sq Mean Sq F value Pr(>F)
wool 1 451 450.7 3.765 0.058213 .
tension 2 2034 1017.1 8.498 0.000693 ***
wool:tension 2 1003 501.4 4.189 0.021044 *
Residuals 48 5745 119.7
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
>
> fit2 <- aov(breaks ~ wool + tension, data=warpbreaks)
>
> tmpfun <- function() {
+ new.df <- data.frame(breaks = fitted(fit2) + sample(resid(fit2)),
+ wool = warpbreaks$wool,
+ tension = warpbreaks$tension)
+ fitnew <- aov(breaks ~ wool*tension, data=new.df)
+ fitnew2 <- update(fitnew, .~ wool + tension)
+ c(coef(fitnew), F=anova(fitnew2,fitnew)[2,5])
+ }
>
> out <- replicate(10000, tmpfun())
>
> # based on only the interaction coefficients
> mean(out[5,] >= coef(fit1)[5])
[1] 0.002
> mean(out[6,] >= coef(fit1)[6])
[1] 0.0796
>
> # based on F statistic from full-reduced model
> mean(out[7,] >= anova(fit2,fit1)[2,5])
[1] 0.022
ezPerm
função deez
porque me permite fazerdv ~ iv1 * iv2 | subj
. Isso me dá valor p, mas o autor desaconselha sua interpretação (eu sei que você está explicando como executar manualmente isso, mas, embora eu tenha uma forte formação em programação, meu conhecimento dos termos de estatísticas está começando a melhorar)+1 para @Greg Snow. De acordo com sua estratégia de uso não paramétrico, você pode usar a regressão logística ordinal . Isso permitirá que você ajuste um modelo com vários fatores e interações entre eles. A documentação relevante do SAS está aqui . Há um tutorial sobre como fazer isso no SAS no excelente site de ajuda sobre estatísticas da UCLA aqui e outro tutorial da Universidade de Indiana aqui .
fonte
clmm()
no pacote ordinal.