Especificando uma estrutura de covariância: prós e contras

15

Quais são os benefícios de especificar uma estrutura de covariância em um GLM (em vez de tratar todas as entradas fora da diagonal na matriz de covariância como zero)? Além de refletir o que se sabe dos dados, ele faz

  1. melhorar a qualidade do ajuste?
  2. melhorar a precisão preditiva em dados retidos?
  3. nos permite estimar a extensão da covariância?

Quais são os custos de impor uma estrutura de covariância? Faz

  1. adicionar complicações computacionais para algoritmos de estimativa?
  2. aumentar o número de parâmetros estimados, aumentando também AIC, BIC, DIC?

É possível determinar empiricamente a estrutura correta de covariância ou isso é algo que depende do seu conhecimento do processo de geração de dados?

Quaisquer custos / benefícios que não mencionei?

Jack Tanner
fonte
5
Basicamente, você deve especificar uma estrutura de covariância no GLM. Se "assumindo nenhuma covariância", você quer dizer "todas as entradas fora da diagonal na matriz de covariância são zero", tudo o que você fez foi assumir uma estrutura de covariância muito específica. (Você pode ser ainda mais específico, por exemplo, assumindo que todas as variações são iguais.) Conclusão: Não tenho certeza se a questão faz sentido em sua forma atual. (Eu votei de qualquer maneira, porque acho que vou aprender muito quando os gurus começarem a falar.) Ou estou entendendo mal você?
S. Kolassa - Restabelece Monica
Você está se referindo à estrutura de covariância em um GLM com uma distribuição normal de mistura multivariada, ou à análise da estrutura de covariância de uma matriz de covariância ou algo mais?
Tim
11
@StephanKolassa você gostaria de copiar seu comentário em uma resposta? Parece responder à pergunta da melhor maneira possível.
Corone
@ Corone: bom ponto, obrigado pelo lembrete. Eu fui e postei uma resposta. Talvez alguém irá gritar e dar uma melhor ...
S. Kolassa - Restabelece Monica

Respostas:

13

Basicamente, você deve especificar uma estrutura de covariância no GLM. Se "assumindo nenhuma covariância", você quer dizer "todas as entradas fora da diagonal na matriz de covariância são zero", tudo o que você fez foi assumir uma estrutura de covariância muito específica. (Você pode ser ainda mais específico, por exemplo, assumindo que todas as variações são iguais.)

Essa é realmente uma variação de "não subscrevo nenhuma filosofia; sou pragmatista". - "Você acabou de descrever a filosofia em que se inscreve."

Como tal, eu diria que a vantagem de pensar sobre a estrutura de covariância é a chance de usar um modelo mais apropriado para seus dados. Assim como você deve incluir relacionamentos funcionais conhecidos para o valor esperado (ou a média) de suas observações, você deve considerar qualquer estrutura que conheça na covariância.

E, claro, a "desvantagem" é que você precisa realmente pensar sobre tudo isso. Muito mais fácil usar apenas a configuração padrão do seu software. Mas é como estar sempre dirigindo na primeira marcha porque seu carro estava na primeira marcha quando você o comprou e entender que a troca de marchas exige esforço. Não recomendado.

S. Kolassa - Restabelecer Monica
fonte
2
+1 Eu concordo com todas as palavras que você escreveu, mas não acho que isso atenda totalmente à questão. Por exemplo, especificar uma estrutura de covariância mais apropriada reduz os resíduos do modelo?
Jack Tanner
11
@JackTanner: obrigado! E você está certo em que eu não respondi completamente à sua pergunta, e é por isso que eu originalmente postei isso como um comentário. Verdade seja dita: por exemplo, não sei se especificar a estrutura de covariância correta reduzirá necessariamente resíduos. Imagino que impor uma estrutura adicional a (covariância de) resíduos pode até aumentá-la - mas pode economizar em parâmetros. Pense em uma estrutura AR (1) em vez de uma matriz de covariância não estruturada. Semelhante para as outras perguntas em sua postagem. Eu definitivamente estaria interessado nas opiniões de outras pessoas sobre isso.
S. Kolassa - Restabelece Monica
11
+1; É uma resposta útil, além disso, o símile é incrível.
22813 russellpierce
2

Aqui está outra resposta incompleta que nem sequer é diretamente sobre GLM ... Na minha experiência muito limitada com modelagem de equações estruturais (SEM), peguei algumas idéias que, espero, possam acrescentar algo à discussão. Lembre-se de que estou falando da experiência (limitada) com o SEM, não do GLM por si só , e sou bastante ignorante sobre se e onde essa distinção pode se tornar importante. Sou mais um usuário de estatísticas do que um estatístico, então também não tenho certeza de que essas idéias se apliquem a todos ou mesmo à maioria dos dados; Eu só descobri que eles se aplicam à maioria dos meus.

Primeiro, eu ecoaria a ênfase de @ StephanKolassa na importância de modelar o que você já sabe. Você reconhece isso como um aparte, mas acho que os benefícios que você está perguntando são os benefícios de modelar o que você sabe. Dessa forma, eles refletem significativamente que o modelo resultante possui as informações sobre a estrutura de covariância que você adicionou.

No SEM , descobri (através de experiência limitada, não através de estudo teórico):

Benefícios

  1. Modelar a estrutura de covariância melhora a qualidade do ajuste (GoF) se a covariância for muito mais forte que seu erro padrão (ou seja, se a via simétrica for significativa). Isso significa que você geralmente não melhora o GoF modelando correlações quase nulas, e a multicolinearidade pode causar problemas ao GoF, pois inflaciona erros padrão.

  2. Ainda não tentei reter dados para prever, mas minha intuição é que fixar as covariâncias em zero no seu modelo é análogo a prever um DV combinando um conjunto de equações de regressão linear separadas, de um único IV. Diferentemente dessa abordagem, a regressão múltipla é responsável pela covariância nas IVs ao produzir um modelo de equações para prever a DV. Isso certamente melhora a interpretabilidade, separando efeitos diretos de efeitos indiretos que ocorrem inteiramente dentro do conjunto incluído de IVs. Honestamente, não tenho certeza se isso necessariamente melhora a previsão do DV. Sendo um usuário de estatísticas e não um estatístico, reuni a seguinte função de teste de simulação para dar uma resposta incompleta (aparentemente, "Sim, a precisão preditiva melhora quando o modelo incorpora covariância IV") neste caso, esperançosamente análogo ...

    simtestit=function(Sample.Size=100,Iterations=1000,IV.r=.3,DV.x.r=.4,DV.z.r=.4) {
    require(psych); output=matrix(NA,nrow=Iterations,ncol=6); for(i in 1:Iterations) {
    x=rnorm(Sample.Size); z=rnorm(Sample.Size)+x*IV.r
    y=rnorm(Sample.Size)+x*DV.x.r+z*DV.z.r
    y.predicted=x*lm(y~x+z)$coefficients[2]+z*lm(y~x+z)$coefficients[3]
    bizarro.y.predicted=x*lm(y~x)$coefficients[2]+z*lm(y~z)$coefficients[2]
    output[i,]=c(cor(y.predicted,y)^2,cor(bizarro.y.predicted,y)^2,
    cor(y.predicted,y)^2>cor(bizarro.y.predicted,y)^2,cor(x,z),cor(x,y),cor(y,z))}
    list(output=output,percent.of.predictions.improved=100*sum(output[,3])/Iterations,
    mean.improvement=fisherz2r(mean(fisherz(output[,1])-fisherz(output[,2]))))}
    
    # Wrapping the function in str( ) gives you the gist without filling your whole screen
    str(simtestit())
    

    N= Iterationsn = Sample.Size) de três variáveis ​​normalmente distribuídas:z = x +y = x + z +yxz

    1y.predicted

    2bizarro.y.predicted

    outputIterationsR21 eo21>2rxyzoutputsimtestit()str( )R21rpsych

    R2R2 parece ser maior quando a covariância dos IVs (o qual pode ser manipulado de forma incompleta, inserindo um argumento a favorIV.r) é maior. Como você provavelmente está mais familiarizado com a sua função GLM do que eu (o que não é de todo), provavelmente você pode alterar essa função ou usar a idéia básica para comparar as previsões do GLM entre as IVs desejadas sem muitos problemas. Supondo que isso resultaria (ou ocorrerá) da mesma maneira, parece que a resposta básica para sua segunda pergunta provavelmente é sim, mas o quanto depende de quão fortemente os IVs cobram. As diferenças no erro de amostragem entre os dados retidos e os dados usados ​​para ajustar o modelo podem sobrecarregar a melhoria em sua precisão preditiva no último conjunto de dados, porque, novamente, a melhoria parece ser pequena, a menos que as correlações IV sejam fortes (pelo menos, em o caso maximamente básico com apenas dois IVs).

  3. Especificar um caminho livre para covariância entre IVs no modelo significa solicitar à função de ajuste do modelo que estime o coeficiente dessa via, que representa a extensão da covariância entre IVs. Se sua função GLM permite que você especifique um modelo no qual a covariância entre os IVs é livremente estimada em vez de fixada em zero, seu problema é uma questão esperançosamente simples de descobrir como fazer isso e como obter sua função para saída essa estimativa. Se sua função estima covariâncias IV por padrão, seu problema se simplifica ainda mais para a última questão (como é o caso lm( )).

Custos

  1. Sim, estimar livremente a covariância entre IVs significa que o algoritmo de ajuste de modelo precisa fazer algum trabalho para estimar o coeficiente desse caminho. Não especificar esse caminho no modelo geralmente significa fixar o coeficiente em zero, o que significa que o algoritmo de ajuste do modelo não precisa estimar o coeficiente. Estimar parâmetros de covariância adicionais significa que o modelo geral exigirá mais tempo para se ajustar. Nos modelos que já demoram muito para serem estimados, o tempo extra pode ser substancial, especialmente se você tiver muitos IVs.

  2. Sim, uma estrutura de covariância estimada livremente implica estimativas de parâmetros. As populações têm parâmetros de covariância; portanto, se você está estimando covariâncias populacionais, está estimando parâmetros. No entanto, se seu modelo se encaixa muito melhor porque você está escolhendo estimar uma correlação não trivial em vez de corrigi-la para zero, provavelmente pode esperar que os critérios de informação de Akaike e Bayesian melhorem, assim como outros critérios que incorporam o GoF. Não estou familiarizado com o critério de informações de desvio (o DIC ao qual você está se referindo, certo?), Mas a julgar pela página da Wikipedia , ele também parece incorporar o GoF e uma penalidade pela complexidade do modelo.

    Portanto, o GoF precisa apenas melhorar proporcionalmente mais do que a complexidade do modelo aumenta para melhorar o DIC. Se isso não acontecer de maneira geral, critérios como esses que penalizam a complexidade do modelo piorarão à medida que você estima mais covariâncias IV. Isso pode ser um problema se, por exemplo, seus IVs não se correlacionarem, mas a estrutura de covariância é estimada livremente de qualquer maneira porque você acha que os IVs podem se correlacionar ou porque essa é a configuração padrão da sua função. Se você tem razões teóricas anteriores para assumir que uma correlação é zero e não deseja que seu modelo teste essa suposição, este é um caso em que você pode ser justificado em fixar o caminho como zero. Se sua teoria anterior estiver aproximadamente certa,

Não sei com qual função você está trabalhando, mas, mais uma vez, tenho certeza de que não estou familiarizado com ela; portanto, tenho certeza de que essa resposta poderá ser melhorada, especialmente a minha resposta à segunda pergunta de benefício (por um lado, uma matemática Prova do que estou respondendo por simulação sobre regressão múltipla provavelmente está disponível em algum lugar). Eu nem estou familiarizado com o GLM em geral (supondo que você queira dizer generalizado modelagem linear , e não geral, como a tag sugere), então espero que alguém comente ou edite essa resposta se as distinções de SEM invalidarem minhas respostas às suas perguntas em absoluto.

No entanto, parece que estamos esperando há dez meses que os gurus se manifestem, então, se isso não os leva a fazê-lo, basta fazer o mesmo, suponho. Deixe-me saber se você tem uma função GLM específica em mente que gostaria que eu mexesse com R. Talvez eu consiga descobrir como responder o número 3 mais diretamente para sua aplicação, se você puder especificar uma função GLM de interesse em R. Também não sou especialista em testes de simulação, mas acho que suas outras quatro perguntas podem ser testadas sim (mais diretamente) também.

Nick Stauner
fonte
2
+1 Uma impressionante resposta pensativa. Bem-vindo ao CV, Nick!
whuber