J'ai une variable dépendante qui peut aller de 0 à l'infini, les 0 étant en fait des observations correctes. Je comprends que la censure et les modèles Tobit ne s'appliquent que lorsque la valeur réelle de est partiellement inconnue ou manquante, auquel cas les données seraient tronquées. Quelques informations supplémentaires sur les données censurées dans ce fil .
Mais ici, 0 est une vraie valeur qui appartient à la population. L'exécution d'OLS sur ces données présente le problème particulièrement ennuyeux de porter des estimations négatives. Comment dois-je modéliser ?
> 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
Développements
Après avoir lu les réponses, je signale l'ajustement d'un modèle d'obstacle gamma en utilisant des fonctions d'estimation légèrement différentes. Les résultats me surprennent assez. Voyons d'abord le DV. Ce qui est évident, ce sont les données à queue extrêmement grasse. Cela a des conséquences intéressantes sur l'évaluation de l'ajustement que je commenterai ci-dessous:
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
J'ai construit le modèle d'obstacle Gamma comme suit:
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))
Enfin, j'ai évalué l' ajustement dans l'échantillon en utilisant trois techniques différentes:
# 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))
}
Au début, j'évaluais l'ajustement par les mesures habituelles: AIC, déviance nulle, erreur absolue moyenne, etc. Mais en regardant les erreurs absolues quantiles des fonctions ci-dessus, nous soulignons certains problèmes liés à la forte probabilité d'un résultat 0 et à l' extrême grosse queue. Bien sûr, l'erreur croît de façon exponentielle avec des valeurs plus élevées de Y (il y a aussi une très grande valeur Y à Max), mais ce qui est plus intéressant, c'est que s'appuyer fortement sur le modèle logit pour estimer les 0 produit un meilleur ajustement de distribution (je ne voudrais pas t savoir mieux décrire ce phénomène):
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
la source
Réponses:
Censuré vs gonflé vs obstacle
Les modèles censurés, à obstacles et gonflés fonctionnent en ajoutant une masse ponctuelle au-dessus d'une densité de probabilité existante. La différence réside dans l'endroit où la masse est ajoutée et comment. Pour l'instant, il suffit d'envisager d'ajouter une masse ponctuelle à 0, mais le concept se généralise facilement à d'autres cas.
Tous impliquent un processus de génération de données en deux étapes pour une variable :Oui
Modèles gonflés et haies
Les modèles gonflés (généralement zéro) et les obstacles fonctionnent en spécifiant explicitement et séparémentPr( O= 0 ) = π , pour que le DGP devienne:
Dans un modèle gonflé,Pr(Oui∗= 0 ) > 0 . Dans un modèle obstacle,Pr(Oui∗= 0 ) = 0 . Voilà la seule différence .
Ces deux modèles conduisent à une densité sous la forme suivante:
oùI est une fonction d'indicateur. Autrement dit, une masse ponctuelle est simplement ajoutée à zéro et dans ce cas, cette masse est simplementPr(Z=0)=1−π . Vous êtes libre d'estimerp directement, ou pour définir g(π)=Xβ pour certains inversibles g comme la fonction logit. D∗ peut aussi dépendre Xβ . Dans ce cas, le modèle fonctionne en "superposant" une régression logistique pourZ sous un autre modèle de régression pour Y∗ .
Modèles censurés
Les modèles censurés ajoutent également de la masse à une frontière. Ils y parviennent en «coupant» une distribution de probabilité, puis en «regroupant» l'excédent à cette frontière. La façon la plus simple de conceptualiser ces modèles est en termes de variable latenteY∗∼D∗ avec CDF FD∗ . alorsPr(Y∗≤y∗)=FD∗(y∗) . Il s'agit d'un modèle très général; la régression est le cas particulier dans lequelFD∗ dépend de Xβ .
L'observéY est alors supposé être lié à Y∗ par:
Cela implique une densité de la forme
et peut être facilement étendu.
Mettre ensemble
Regardez les densités:
et notez qu'ils ont tous les deux la même forme:
car ils atteignent le même objectif: construire la densité pourY en ajoutant une masse ponctuelle δ à la densité pour certains Y∗ . Le modèle gonflé / haies définitδ par un processus externe de Bernoulli. Le modèle censuré détermineδ en "coupant" Y∗ à une frontière, puis "agglutiner" la masse restante à cette frontière.
En fait, vous pouvez toujours postuler un modèle d'obstacle qui "ressemble" à un modèle censuré. Considérons un modèle d'obstacle oùD∗ est paramétré par μ=Xβ et Z est paramétré par g(π)=Xβ . Ensuite, vous pouvez simplement définirg=F−1D∗ . Un CDF inverse est toujours une fonction de lien valide dans la régression logistique, et en effet une raison pour laquelle la régression logistique est appelée "logistique" est que le lien logit standard est en fait le CDF inverse de la distribution logistique standard.
Vous pouvez également boucler la boucle sur cette idée: les modèles de régression de Bernoulli avec n'importe quel lien CDF inverse (comme le logit ou probit) peuvent être conceptualisés comme des modèles de variables latentes avec un seuil pour observer 1 ou 0. La régression censurée est un cas particulier de régression des obstacles où la variable latente impliciteZ∗ est le même que Y∗ .
Lequel devriez-vous utiliser?
Si vous avez une «histoire de censure» convaincante, utilisez un modèle censuré. Une utilisation classique du modèle Tobit - le nom économétrique pour la régression linéaire gaussienne censurée - est pour modéliser les réponses d'enquête qui sont "top-codées". Les salaires sont souvent déclarés de cette façon, où tous les salaires supérieurs à un certain seuil, disons 100 000, sont simplement codés comme 100 000. Ce n'est pas la même chose que troncature , où les individus avec un salaire supérieur 100 000 ne sont pas respectées du tout . Cela peut se produire dans une enquête qui n'est administrée qu'aux personnes dont le salaire est inférieur à 100 000.
Une autre utilisation pour la censure, comme décrit par whuber dans les commentaires, est lorsque vous prenez des mesures avec un instrument qui a une précision limitée. Supposons que votre appareil de mesure de distance ne puisse pas faire la différence entre 0 etϵ . Ensuite, vous pouvez censurer votre distribution surϵ .
Sinon, un obstacle ou un modèle gonflé est un choix sûr. Il n'est généralement pas faux de faire l'hypothèse d'un processus général de génération de données en deux étapes, et cela peut offrir un aperçu de vos données que vous n'auriez peut-être pas eu autrement.
D'autre part, vous pouvez utiliser un modèle censuré sans histoire de censure pour créer le même effet qu'un modèle obstacle sans avoir à spécifier un processus "marche / arrêt" distinct. C'est l'approche de Sigrist et Stahel (2010) , qui censurent une distribution gamma décalée tout comme un moyen de modéliser des données dans[0,1] . Cet article est particulièrement intéressant car il montre à quel point ces modèles sont modulaires: vous pouvez réellement gonfler à zéro un modèle censuré (section 3.3), ou vous pouvez étendre "l'histoire des variables latentes" à plusieurs variables latentes qui se chevauchent (section 3.1).
Troncature
Modifier: supprimé, car cette solution était incorrecte
la source
Permettez-moi de commencer par dire que l'application OLS est tout à fait possible, de nombreuses applications réelles le font. Cela cause (parfois) le problème que vous pouvez vous retrouver avec des valeurs ajustées inférieures à 0 - je suppose que c'est ce qui vous inquiète? Mais si seulement très peu de valeurs ajustées sont inférieures à 0, je ne m'en inquiéterais pas.
Le modèle tobit peut (comme vous le dites) être utilisé dans le cas de modèles censurés ou tronqués. Mais cela s'applique aussi directement à votre cas, en fait le modèle tobit a été inventé votre cas. Y "s'empile" à 0, et est autrement grossièrement continu. La chose à retenir est que le modèle tobit est difficile à interpréter, vous devrez vous fier à l'APE et au PEA. Voir les commentaires ci-dessous.
Vous pouvez également appliquer le modèle de régression des possessions, qui a une interprétation presque OLS - mais il est normalement utilisé avec les données de comptage. Wooldridge 2012 CHAP 17, contient une discussion très soignée du sujet.
la source