Como você lida com variáveis ​​"aninhadas" em um modelo de regressão?

11

Considere um problema estatístico em que você tem uma responsevariável que deseja descrever condicional em uma explanatoryvariável e uma nestedvariável, em que a variável aninhada surge apenas como uma variável significativa para valores específicos da variável explicativa . Nos casos em que a variável explicativa não admite uma variável aninhada significativa, ela geralmente é codificada como NAno conjunto de dados ou se é codificada com um valor, esse valor é apenas um espaço reservado que não possui nenhuma interpretação significativa.

Essa situação tende a surgir sempre que você tem uma variável explicativa indicando a existência de uma coisa e uma ou mais variáveis ​​aninhadas que descrevem as características dessa coisa. Alguns exemplos desse tipo de situação em problemas estatísticos são os seguintes:

  • A variável explicativa é um indicador se um participante da pesquisa é marriede a variável aninhada é alguma characteristic of the spouse(por exemplo, escolaridade, idade etc.);

  • A variável explicativa é um indicador do presence of an itemem um espaço, e a variável aninhada é uma medida de alguns characteristic of the item(por exemplo, tamanho, distância etc.);

  • A variável explicativa é um indicador da ocorrência de um evente a variável aninhada é uma descrição de alguns characteristic of the event(por exemplo, duração, magnitude etc.).

Nesses tipos de situações, geralmente queremos construir um modelo do tipo regressão (no sentido amplo que inclui GLMs, GLMMs etc.) descrevendo o relacionamento entre a variável de resposta e as outras variáveis. Não é óbvio como lidar com a variável aninhada nesse tipo de modelo.

Pergunta: Como lidamos com a nestedvariável nesse tipo de modelo?


Nota: Esta pergunta foi projetada para dar uma resposta generalizada a uma pergunta recorrente no CV.SE referente a variáveis ​​aninhadas em regressão (veja, por exemplo, aqui , aqui , aqui e aqui ). Esta pergunta foi criada para dar um exemplo generalizado independente do contexto desse problema.

Ben - Restabelecer Monica
fonte
1
Eu teria deixado isso como um comentário, mas não tenho reputação suficiente. Estou tendo problemas para usar esta solução em R - glm () ou lm (). Estou usando o modelo: y ~ x1 + x1: x2 Infelizmente, se eu codificar os dados ausentes como NA, o na.action padrão remove as linhas com NAs e deixa x1 com apenas um nível - tornando o modelo equivalente a apenas: y ~ x2 Se eu usar o argumento glm: na.action = na.pass, recebo um erro: Erro no glm.fit (x = c (1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 , 1, 1, 1, 1, 1,: NA / NaN / Inf em 'x' Se, em vez disso, eu codificar a variável ausente como 0, o modelo aninhado: y ~ x1 + x1: x2 Dá exatamente
Adam Waring

Respostas:

9

Valores sem sentido de variáveis ​​aninhadas não devem afetar seu modelo: O desiderato crucial com esse tipo de análise de dados é que a nestedvariável não deve impactar o modelo se a explanatoryvariável original não o admitir como variável significativa. Em outras palavras, o modelo deve ter um formato que ignore valores sem sentido da variável aninhada . Esse é um requisito crucial para um modelo válido com variáveis ​​aninhadas, pois garante que a saída do modelo não seja afetada por opções de codificação arbitrárias.


Modelagem com variáveis ​​aninhadas: esse requisito é alcançado colocando a nestedvariável no modelo apenas como uma interação com a explanatoryvariável original , sem incluí-la como efeito principal. (Mais especificamente, a variável aninhada deve ser interagida com uma declaração lógica na variável explicativa, indicando que é uma variável significativa.) Observe que essa é uma exceção à regra geral de que termos não devem ser incluídos como interações sem um termo de efeito principal. .

Considere o caso geral em que a nestedvariável só é significativa quando a explanatoryvariável está em algum conjunto de valores A. Nesse caso, você usaria um formulário de modelo como este:

response ~ 1 + explanatory + (explanatory %in% A):nested + ...

No caso comum em que sua explanatoryvariável é uma variável indicadora (com o valor de uma que dá origem a uma variável aninhada significativa), esse formulário de modelo simplifica isso:

response ~ 1 + explanatory + explanatory:nested + ...

Observe que nessas declarações de modelo não há termo de efeito principal para a nestedvariável. Isso ocorre por design --- a variável aninhada não deve ter um termo de efeito principal, pois não é uma variável significativa na ausência de uma condição na variável explicativa. Com esse tipo de modelo, você obterá uma estimativa para o efeito da variável explicativa e outra estimativa para o efeito da variável aninhada.


Codificando variáveis ​​aninhadas em seus dados: Ao lidar com quadros de dados que listam as variáveis ​​para a regressão, é uma boa prática que os valores da nestedvariável sejam codificados, como NAnos casos em que não surgem significativamente da variável explicativa. Isso diz ao leitor que não há variável significativa aqui. Alguns analistas codificam essas variáveis ​​com outros valores, como zero, mas isso geralmente é uma prática ruim, pois pode ser confundida com uma quantidade significativa.

Matematicamente, se você multiplicar qualquer número real por zero, obtém zero. No entanto, se você estiver codificando R, deve ser cuidadoso aqui, porque o programa se multiplica 0:NApara dar em NAvez de 0. Isso significa que pode ser necessário codificar novamente os NAvalores para zero para fins de ajuste do modelo ou construir a matriz de design para o modelo, para que esses valores sejam definidos como zero.


Casos em que a variável base é uma função da variável aninhada: Uma situação que ocasionalmente surge na análise de regressão envolvendo variáveis ​​aninhadas é o caso em que a variável aninhada possui uma quantidade de detalhes suficiente para determinar completamente a variável explicativa inicial da qual é originária - - ou seja, a variável explicativa original é uma função da variável aninhada. Um exemplo disso ocorre nesta questão , em que o analista possui uma variável indicadora DrugApara saber se um medicamento foi ou não tomado e uma variável aninhada DrugA_Concpara a concentração do medicamento. Neste exemplo, a última variável permite um valor de concentração igual a zero, que é equivalente ao fármaco que não está sendo tomado e, portanto, DrugAé equivalente a DrugA_Conc != 0.

Nesses tipos de casos, o termo de interação entre a variável explicativa e a variável aninhada é funcionalmente equivalente à variável aninhada e, portanto, é possível (e geralmente desejável) remover a variável explicativa inicial do modelo completamente e simplesmente usar o variável aninhada por conta própria. Isso é legítimo nesse caso, porque os valores na variável aninhada determinam o valor da variável explicativa inicial. Observamos acima que geralmente é apropriado codificar variáveis ​​aninhadas como NAquando as condições para elas não são aplicáveis. Se a condição surgir de uma variável explicativa que é um indicador, e o indicador corresponder ao uso da variável aninhada, o evento nested != NAserá equivalente aexplanatory. Nesses casos, é possível recodificar a variável aninhada para que a variável explicativa inicial não seja necessária no modelo.

Observe que é preciso ter cuidado ao analisar esta situação. Mesmo no caso de você estar usando uma variável explicativa inicial que é uma variável indicadora, pode ser útil para fins de interpretação não mesclar a variável explicativa e a variável aninhada. Além disso, nos casos em que a variável explicativa não é uma variável indicadora, geralmente ela contém informações não contidas na variável aninhada e, portanto, não pode ser removida.

Ben - Restabelecer Monica
fonte
XX
Como não especifiquei nenhum software específico (mas estou usando a sintaxe de R), não está claro para mim por que os NAvalores não seriam aceitáveis. Em Rque você pode certamente ter NAvalores em seus dados-frames.
Ben - Restabelece Monica
X(XX)1
2
Com os modelos usados ​​nesta resposta, os NAvalores ocorrem no quadro de dados para as variáveis, mas não aparecem na matriz de design , pois a variável aninhada entra no modelo apenas por meio de uma interação.
Ben - Restabelece Monica
Essa é a minha pergunta original: como é a matriz de design? Na verdade, eu quero fazer isso no SAS, mas o valor ausente não pode estar na matriz de design.
user158565