Tengo una variable dependiente que puede variar de 0 a infinito, con 0s siendo observaciones correctas. Entiendo que los modelos de censura y Tobit solo se aplican cuando el valor real de es parcialmente desconocido o falta, en cuyo caso se dice que los datos están truncados. Más información sobre datos censurados en este hilo .
Pero aquí 0 es un verdadero valor que pertenece a la población. Ejecutar OLS en estos datos tiene el problema particular de llevar estimaciones negativas. ¿Cómo debo modelar ?
> 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
Desarrollos
Después de leer las respuestas, estoy informando el ajuste de un modelo de obstáculo Gamma usando funciones de estimación ligeramente diferentes. Los resultados son bastante sorprendentes para mí. Primero echemos un vistazo a la DV. Lo que es evidente son los datos de cola extremadamente gordos. Esto tiene algunas consecuencias interesantes en la evaluación del ajuste que comentaré a continuación:
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
Construí el modelo de obstáculo Gamma de la siguiente manera:
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, evalué el ajuste en la muestra usando tres 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))
}
Al principio estaba evaluando el ajuste mediante las medidas habituales: AIC, desviación nula, error absoluto medio, etc. Pero al observar los errores absolutos cuantiles de las funciones anteriores se destacan algunos problemas relacionados con la alta probabilidad de un resultado 0 y el extremo cola gorda Por supuesto, el error crece exponencialmente con valores más altos de Y (también hay un valor Y muy grande en Max), pero lo que es más interesante es que confiar mucho en el modelo logit para estimar 0 produce un mejor ajuste de distribución (no lo haría) No sé cómo describir mejor este fenómeno):
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
fuente
Respuestas:
Censurado vs. inflado vs. obstáculo
Los modelos censurados, de obstáculo e inflados funcionan agregando una masa de punto sobre una densidad de probabilidad existente. La diferencia radica en dónde se agrega la masa y cómo. Por ahora, solo considere agregar una masa de punto en 0, pero el concepto se generaliza fácilmente a otros casos.
Todos ellos implican un proceso de generación de datos de dos pasos para alguna variable :Y
Modelos inflados y vallados
Tanto los modelos inflados (generalmente inflados a cero) como los de obstáculo funcionan especificando explícita y separadamentePr(Y=0)=π , para que el DGP se convierta en:
En un modelo inflado, . En un modelo de obstáculo, . Esa es la única diferencia .Pr(Y∗=0)>0 Pr(Y∗=0)=0
Ambos modelos conducen a una densidad con la siguiente forma:
donde es una función indicadora. Es decir, una masa puntual simplemente se agrega a cero y en este caso esa masa es simplemente . Usted es libre de estimar directamente, o establecer para algunos invertibles como la función logit. también puede depender de . En ese caso, el modelo funciona "superponiendo" una regresión logística para bajo otro modelo de regresión para .I Pr(Z=0)=1−π p g(π)=Xβ g D∗ Xβ Z Y∗
Modelos censurados
Los modelos censurados también agregan masa en un límite. Lo logran "cortando" una distribución de probabilidad y luego "agrupando" el exceso en ese límite. La forma más fácil de conceptualizar estos modelos es en términos de una variable latente con CDF . Entonces . Este es un modelo muy general; La regresión es el caso especial en el que depende de .Y∗∼D∗ FD∗ Pr(Y∗≤y∗)=FD∗(y∗) FD∗ Xβ
Entonces se supone que la observada está relacionada con por:Y Y∗
Esto implica una densidad de la forma
y puede extenderse fácilmente.
Poniendo todo junto
Mire las densidades:
y observe que ambos tienen la misma forma:
porque logran el mismo objetivo: construir la densidad para agregando un punto de masa a la densidad para algunos . El modelo inflado / obstáculo establece a través de un proceso externo de Bernoulli. El modelo censurado determina "cortando" en un límite y luego "agrupando" la masa sobrante en ese límite.Y δ Y∗ δ δ Y∗
De hecho, siempre puede postular un modelo de obstáculo que "parezca" un modelo censurado. Considere un modelo de obstáculo donde está parametrizado por y está parametrizado por . Entonces puede configurar . Un CDF inverso siempre es una función de enlace válida en la regresión logística, y de hecho una razón por la cual la regresión logística se llama "logística" es que el enlace logit estándar es en realidad el CDF inverso de la distribución logística estándar.D∗ μ=Xβ Z g(π)=Xβ g=F−1D∗
También puede completar el círculo sobre esta idea: los modelos de regresión de Bernoulli con cualquier enlace CDF inverso (como el logit o probit) pueden conceptualizarse como modelos variables latentes con un umbral para observar 1 o 0. La regresión censurada es un caso especial de regresión de obstáculos donde la variable latente implícita es la misma que .Z∗ Y∗
¿Cual deberías usar?
Si tiene una "historia de censura" convincente, use un modelo censurado. Un uso clásico del modelo Tobit, el nombre econométrico de la regresión lineal gaussiana censurada, es para modelar las respuestas de la encuesta que están "codificadas". Los salarios a menudo se informan de esta manera, donde todos los salarios por encima de un límite, digamos 100,000, se codifican como 100,000. Esto no es lo mismo que el truncamiento , donde no se observa a las personas con salarios superiores a 100,000 . Esto podría ocurrir en una encuesta que solo se administra a personas con salarios inferiores a 100,000.
Otro uso para la censura, según lo descrito por whuber en los comentarios, es cuando se realizan mediciones con un instrumento que tiene una precisión limitada. Suponga que su dispositivo de medición de distancia no puede distinguir entre 0 y . Entonces podría censurar su distribución en .ϵ ϵ
De lo contrario, un obstáculo o modelo inflado es una opción segura. Por lo general, no está mal plantear una hipótesis sobre un proceso general de generación de datos en dos pasos, y puede ofrecer una idea de sus datos que de otro modo no habría tenido.
Por otro lado, puede usar un modelo censurado sin una historia de censura para crear el mismo efecto que un modelo de obstáculo sin tener que especificar un proceso de "encendido / apagado" separado. Este es el enfoque de Sigrist y Stahel (2010) , quienes censuran una distribución gamma desplazada solo como una forma de modelar datos en . Ese documento es particularmente interesante porque demuestra cuán modulares son estos modelos: en realidad puede inflar a cero un modelo censurado (sección 3.3), o puede extender la "historia de la variable latente" a varias variables latentes superpuestas (sección 3.1).[0,1]
Truncamiento
Editar: eliminado, porque esta solución era incorrecta
fuente
Permítanme comenzar diciendo que aplicar OLS es completamente posible, muchas aplicaciones de la vida real lo hacen. Causa (a veces) el problema de que puede terminar con valores ajustados inferiores a 0. ¿Supongo que esto es lo que le preocupa? Pero si solo unos pocos valores ajustados están por debajo de 0, entonces no me preocuparía.
El modelo tobit se puede usar (como usted dice) en el caso de modelos censurados o truncados. Pero también se aplica directamente a su caso, de hecho, el modelo tobit fue inventado para su caso. Y "se acumula" en 0, y de otro modo es rudamente continuo. Lo que debe recordar es que el modelo tobit es difícil de interpretar, debe confiar en APE y PEA. Ver los comentarios a continuación.
También podría aplicar el modelo de regresión de posición, que tiene una interpretación casi OLS, pero normalmente se usa con datos de conteo. Wooldridge 2012 CHAP 17, contiene una discusión muy clara sobre el tema.
fuente