Como devo modelar uma variável dependente contínua no intervalo


9

Eu tenho uma variável dependente que pode variar de 0 a infinito, com 0s sendo realmente observações corretas. Entendo que os modelos de censura e Tobit só se aplicam quando o valor real de é parcialmente desconhecido ou ausente, caso em que os dados são considerados truncados. Mais algumas informações sobre dados censurados neste segmento .Y

Mas aqui 0 é um valor verdadeiro que pertence à população. A execução do OLS nesses dados tem o problema irritante específico de levar estimativas negativas. Como devo modelar ?Y

> summary(data$Y)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
   0.00    0.00    0.00    7.66    5.20  193.00 
> summary(predict(m))
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  -4.46    2.01    4.10    7.66    7.82  240.00 
> sum(predict(m) < 0) / length(data$Y)
[1] 0.0972098

Desenvolvimentos

Depois de ler as respostas, estou relatando o ajuste de um modelo de barreira gama usando funções de estimativa ligeiramente diferentes. Os resultados são bastante surpreendentes para mim. Primeiro, vamos olhar para o DV. O que é aparente são os dados de cauda extremamente gordos. Isso tem algumas conseqüências interessantes na avaliação do ajuste que irei comentar abaixo:

insira a descrição da imagem aqui

quantile(d$Y, probs=seq(0, 1, 0.1))
        0%        10%        20%        30%        40%        50%        60%        70%        80%        90%       100% 
  0.000000   0.000000   0.000000   0.000000   0.000000   0.000000   0.286533   3.566165  11.764706  27.286630 198.184818 

Criei o modelo de obstáculos Gamma da seguinte maneira:

d$zero_one = (d$Y > 0)
logit = glm(zero_one ~ X1*log(X2) + X1*X3, data=d, family=binomial(link = logit))
gamma = glm(Y ~ X1*log(X2) + X1*X3, data=subset(d, Y>0), family=Gamma(link = log))

Finalmente, avaliei o ajuste dentro da amostra usando três técnicas diferentes:

# logit probability * gamma estimate
predict1 = function(m_logit, m_gamma, data)
{
  prob = predict(m_logit, newdata=data, type="response")
  Yhat = predict(m_gamma, newdata=data, type="response")
  return(prob*Yhat)
}

# if logit probability < 0.5 then 0, else logit prob * gamma estimate 
predict2 = function(m_logit, m_gamma, data)
{
  prob = predict(m_logit, newdata=data, type="response")
  Yhat = predict(m_gamma, newdata=data, type="response")
  return(ifelse(prob<0.5, 0, prob)*Yhat)
}

# if logit probability < 0.5 then 0, else gamma estimate
predict3 = function(m_logit, m_gamma, data)
{
  prob = predict(m_logit, newdata=data, type="response")
  Yhat = predict(m_gamma, newdata=data, type="response")
  return(ifelse(prob<0.5, 0, Yhat))
}

Inicialmente, eu estava avaliando o ajuste pelas medidas usuais: AIC, desvio nulo, erro absoluto médio etc. Mas, observando os erros absolutos quantílicos das funções acima, destacamos alguns problemas relacionados à alta probabilidade de um resultado 0 e ao extremo cauda gorda. Obviamente, o erro cresce exponencialmente com valores mais altos de Y (também existe um valor Y muito grande em Max), mas o mais interessante é que depender muito do modelo de logit para estimar 0 produz um melhor ajuste de distribuição (eu não não sei como descrever melhor esse fenômeno):Y

quantile(abs(d$Y - predict1(logit, gamma, d)), probs=seq(0, 1, 0.1))
           0%           10%           20%           30%           40%           50%           60%           70%           80%           90%          100% 
   0.00320459    1.45525439    2.15327192    2.72230527    3.28279766    4.07428682    5.36259988    7.82389110   12.46936416   22.90710769 1015.46203281 
quantile(abs(d$Y - predict2(logit, gamma, d)), probs=seq(0, 1, 0.1))
         0%         10%         20%         30%         40%         50%         60%         70%         80%         90%        100% 
   0.000000    0.000000    0.000000    0.000000    0.000000    0.309598    3.903533    8.195128   13.260107   24.691358 1015.462033 
quantile(abs(d$Y - predict3(logit, gamma, d)), probs=seq(0, 1, 0.1))
         0%         10%         20%         30%         40%         50%         60%         70%         80%         90%        100% 
   0.000000    0.000000    0.000000    0.000000    0.000000    0.307692    3.557285    9.039548   16.036379   28.863912 1169.321773 

3
A variável é contínua diferente de 0? Em caso afirmativo, um modelo inflado a zero (por exemplo, gama zero inflado / lognormal inflado a zero, etc. pode ser usado)
Glen_b -Reinstate Monica 17/15/15

Sim. Não é um modelo probit, com certeza. Estou um pouco hesitante em relação aos modelos inflados com zero, porque parece sugerir que os 0s foram super-relatados e a distribuição IV "tem um problema", por assim dizer, onde, no meu caso, todos os valores IV estão corretos.
Robert Kubrick

E que tal remover a interceptação (eu sei, eu sei ... mas aqui a origem é realmente 0)?
Robert Kubrick

Você pode nos dar algumas dicas sobre o mecanismo de geração de dados? Por exemplo, distribuições compostas de poisson podem lidar com esse tipo de dados, mas na verdade isso foi projetado para modelar a soma de algumas estatísticas aplicadas a uma coleção de eventos aleatórios (ou seja, a soma do custo das reivindicações de seguro em uma política).
Jlimahaverford 17/03/2015

2
Robert, alguns exemplos concretos de modelos inflados a zero para retirá-lo da terra da abstração (e para ajudar a explicar por que eles não são realmente sobre dados "tendo um problema"): (1) quantos cigarros um fumava por dia no passado 30 dias podem exigir um modelo inflado a zero, pois é necessário o hábito de fumar para que o número seja> 0. (2) Quantos peixes capturados nesta viagem de barco exigem que um pescasse para que o número fosse> 0.
Alexis

Respostas:


14

Censurado x inflado x obstáculo

Os modelos censurados, com obstáculos e inflados funcionam adicionando uma massa pontual sobre uma densidade de probabilidade existente. A diferença está em onde a massa é adicionada e como. Por enquanto, considere adicionar uma massa de pontos em 0, mas o conceito generaliza facilmente para outros casos.

Todos eles implicam um processo de geração de dados em duas etapas para alguma variável :Y

  1. Desenhe para determinar se ou Y > 0 .Y=0Y>0
  2. Se , desenhe para determinar o valor de Y .Y>0Y

Modelos inflados e com obstáculos

Os modelos inflados (geralmente inflados a zero) e os obstáculos funcionam especificando explicita e separadamente , de modo que o DGP se torne:Pr(Y=0)=π

  1. Desenhar uma vez a partir de para obter realização z .ZBernoulli(π)z
  2. Se , defina y = z = 0 .z=0y=z=0
  3. Se , desenhar uma vez a partir de Y * ~ D * ( θ * ) e conjunto y = y * .z=1YD(θ)y=y

Em um modelo inflado, . Em um modelo de obstáculo, Pr ( Y = 0 ) = 0 . Essa é a única diferença .Pr(Y=0)>0Pr(Y=0)=0

Ambos os modelos levam a uma densidade com a seguinte forma:

fD(y)=I(y=0)Pr(Y=0)+I(y0)Pr(Y0)fD(y)

onde sou uma função indicadora. Ou seja, uma massa pontual é simplesmente adicionada a zero e, nesse caso, essa massa é simplesmente Pr ( Z = 0 ) = 1 - π . Você pode estimar p diretamente ou definir g ( π ) = X β para algum g invertível, como a função logit. D também pode depender de X β . Nesse caso, o modelo funciona "estratificando" uma regressão logística para Z sob outro modelo de regressão para Y .IPr(Z=0)=1πpg(π)=XβgDXβZY

Modelos censurados

YDFDPr(Yy)=FD(y)FDXβ

YY

Y={0 0Y0 0YY>0 0

fD(y)=Eu(y=0 0)FD(0 0)+Eu(y0 0)(1-FD(0 0))fD(y)

e pode ser facilmente estendido.

Juntar as peças

fD(y)=Eu(y=0 0)π+Eu(y0 0)(1-π)fD(y)fD(y)=Eu(y=0 0)FD(0 0)+Eu(y0 0)(1-FD(0 0))fD(y)

Eu(y=0 0)δ+Eu(y0 0)(1-δ)fD(y)

YδYδδY

Dμ=XβZg(π)=Xβg=FD-1

ZY

Qual deles você deve usar?

Se você tem uma "história de censura" atraente, use um modelo censurado. Um uso clássico do modelo Tobit - o nome econométrico para regressão linear gaussiana censurada - é para modelar respostas de pesquisas que são "codificadas de topo". Os salários são frequentemente relatados desta maneira, onde todos os salários acima de algum limite, digamos 100.000, são apenas codificados como 100.000. Esta não é a mesma coisa que a truncagem , onde os indivíduos com salários acima de 100.000 não são observadas em tudo . Isso pode ocorrer em uma pesquisa que é administrada apenas a indivíduos com salários abaixo de 100.000.

ϵϵ

Caso contrário, um obstáculo ou modelo inflado é uma escolha segura. Geralmente, não é errado sugerir um processo geral de geração de dados em duas etapas e pode oferecer algumas informações sobre os dados que você talvez não tivesse.

[0 0,1]

Truncamento

Editar: removido, porque esta solução estava incorreta


2
ϵϵ

XcPr(Xc)=0 0

Matematicamente, não vejo diferença. Conceitualmente, eu estaria disposto a reconhecer que pode haver uma diferença sutil, na medida em que a distribuição censurada nos sugere qual seria a distribuição de um resultado hipotético sem censura, enquanto fixar um átomo no limite de uma distribuição truncada não faz suposições sobre isso. distribuição hipotética. Pode haver uma diferença matemática ( ou seja, real) em situações de censura mais complexas, como quando os limites de censura variam.
whuber

@whuber, tudo se resume a como o átomo é parametrizado, certo? Como em um Gaussian zero censurado seria equivalente a um Gaussian zero inflado, truncado com uma "função link" Probit
shadowtalker

1
yθ=XβFθ(y)=F(yθ)=F(yXβ)Fθ(0 0)=F(-Xβ)

0

Deixe-me começar dizendo que a aplicação do OLS é totalmente possível; muitos aplicativos da vida real fazem isso. Causa (às vezes) o problema com o qual você pode terminar com valores ajustados menores que 0 - presumo que seja com isso que você está preocupado? Mas se apenas muito poucos valores ajustados estiverem abaixo de 0, não me preocuparia com isso.

O modelo de tobit pode (como você diz) ser usado no caso de modelos censurados ou truncados. Mas isso também se aplica diretamente ao seu caso, na verdade o modelo de tobit foi inventado. Y "se acumula" em 0 e, de outra forma, é irregular de maneira irregular. É importante lembrar que o modelo de tobit é difícil de interpretar, você precisaria confiar no APE e no PEA. Veja os comentários abaixo.

Você também pode aplicar o modelo de regressão de possessão, que tem uma interpretação quase como OLS - mas é normalmente usado com dados de contagem. Wooldridge 2012, capítulo 17, contém uma discussão muito clara sobre o assunto.


"o modelo tobit não tem interpretação real", você poderia explicar um pouco mais? Não posso dizer que concordo com essa afirmação como está.
shadowtalker

cY

@ssdecontrol No modelo de tobit, o \ beta_j mede os efeitos parciais do x_j em E (y * | x), onde y * é a variável latente (denominada). A variável que o OP gostaria do modelo é y, que é o resultado observado (horas trabalhadas, contribuições de caridade etc.). É por isso que se deve confiar no efeito parcial médio (APE) e efeito parcial na média (PEA). Você não deve usar o modelo censurado. Se seus dados fossem censurados, você saberia, ou seja: você tem uma pergunta sobre renda, onde a última resposta é "Eu ganho mais de US $ x", essas informações podem "colocar" na estimativa -> censura.
Repmat 17/03/2015

@ user3551644 certeza, mas eu não vejo como você pode dizer que, portanto, o modelo tem "nenhuma interpretação real"
shadowtalker

Hmm, ok, vou atualizar minha resposta.
Repmat 17/03/2015
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.