A função de link de identidade não respeita o domínio da família Gamma?

9

Eu estou usando usando um modelo linear generalizado gama (GLM) com um link de identidade. A variável independente é a compensação de um grupo específico.

O resumo do statsmodels do Python está me dando um aviso sobre a função de vínculo de identidade ( "DomainWarning: a função de vínculo de identidade não respeita o domínio da família Gamma." ) Que eu não entendo e gostaria de receber ajuda. Antecedentes: Somente educação formal básica em estatística e praticamente nenhuma experiência com GLMs além da regressão logística.

Aqui está o código Python relevante:

model=statsmodels.genmod.generalized_linear_model.GLM(target, reducedFeatures, family=sm.families.Gamma(link=sm.families.links.identity)) results=model.fit() print(results.summary())

Aqui está a saída: insira a descrição da imagem aqui

Minha pergunta é a seguinte: de que maneira um link de identidade não respeita o domínio da família Gamma? O domínio da família gama é de 0 a infinito? Também fiquei com a impressão de que o link de identidade não estava fazendo muita coisa, ou seja, mantendo as variáveis ​​independentes como estão e não transformando elas / seus relacionamentos com a variável dependente. Parece uma função de link respeitoso;)

Por favor me corrija

kalidurge
fonte
O link de identidade significa que o valor esperado da variável dependente é apenas o preditor linear, como em um modelo de regressão linear. Não há nada para manter o valor esperado positivo; para alguns valores dos preditores, o valor esperado pode ser zero ou negativo. Portanto, "a função de vínculo de identidade não respeita o domínio da família Gamma".
The Laconic

Respostas:

8

O modelo Gamma GLM é:

yXGamma(μ=f(Xβ),ϕ)

Onde é o parâmetro de expectativa e é um parâmetro de dispersão (o parâmetro de dispersão não é estimado na estrutura GLM padrão), é o preditor linear, são os parâmetros aprendidos pelo modelo é chamada de função de link. μϕXββf

Observe que, embora possa assumir qualquer valor real, está modelando a expectativa de uma distribuição gama, que deve ser um número real positivo . É isso que o Python está dizendo, a função de identidade não garante o mapeamento de para um número real positivo, portanto nem sempre resulta em um parâmetro médio válido.Xβf(Xβ)Xβ

Legal. Obrigado! Todas as minhas variáveis ​​independentes são números reais positivos, então estou pronto, certo?

Não necessariamente, um de seus coeficientes estimados pode ser negativo (sua interceptação é muito negativa).

Você se importaria de entrar em um pouco mais de detalhes sobre o que você quer dizer? Por que o sinal da interceptação teria algum impacto nos coeficientes? Isso não faz sentido para mim.

Isso afeta o parâmetro médio da sua distribuição Gamma condicional. Lembre-se, sua equação de estrutura para o modelo é:

μ=f(Xβ)

e deve ser positivo . Suponha que seja válido que todos os valores de suas variáveis ​​preditivas sejam zero (não sei se é esse o caso em seus dados, pois não tenho contexto para seus recursos). Em seguida, sua previsão para esse ponto de dados seria:μ

μ(x)=f((1,0,0,,0)β)=f(Intercept)

Se você estiver usando a função de link de identidade, isso significa que

μ(x)=Intercept

que é um valor inválido de quando a interceptação é negativa.μ

Novamente, devido a restrições contextuais de seus dados, você pode evitar essa situação, mas é matematicamente possível.

Matthew Drury
fonte
Legal. Obrigado! Todas as minhas variáveis ​​independentes são números reais positivos, então estou pronto, certo?
kalidurge
Não necessariamente, um de seus coeficientes estimados pode ser negativo (sua interceptação é muito negativa).
Matthew Drury
Você se importaria de entrar em um pouco mais de detalhes sobre o que você quer dizer? Por que o sinal da interceptação teria algum impacto nos coeficientes? Isso não faz sentido para mim.
kalidurge
@kalidurge Eu editei em uma resposta ao seu acompanhamento.
Matthew Drury
Realmente util. Eu aprecio muito!
kalidurge
1

Desde que publiquei essa pergunta há mais de um ano, participei de uma aula sobre modelos lineares generalizados e aprendi muito. Como este post é exibido com certa frequência, pensei em adicionar algumas orientações que gostaria de ter no momento.

Funções de link a serem consideradas no modelo Gamma:

  • Log - força as previsões / resultados a "respeitarem o domínio", garantindo que todos os valores previstos sejam positivos
  • Recíproco - Não força os valores a respeitar o domínio, mas geralmente funciona bem. (É usado porque é o parâmetro natural da forma canônica do modelo Gamma.) Essa é a função de link padrão em R.

Como regra geral, evite a função de link de identidade.

Dito isto, você provavelmente pode e deve evitar o uso do modelo Gamma na maioria das situações. Se você tiver dados com inclinação significativa, transforme sua variável de destino e execute um modelo de regressão linear padrão. Os resultados geralmente serão mais fáceis de entender e tão bons ou melhores.

kalidurge
fonte