Est-il possible de simuler une régression logistique sans hasard?


8

Nous pouvons simuler une régression linéaire sans caractère aléatoire, ce qui signifie que nous faisons au lieu de . Ensuite, si nous ajustons un modèle linéaire, les coefficients seront identiques à la "vérité fondamentale". Voici un exemple.y=Xβy=Xβ+ϵ

set.seed(0)
n    <- 1e5
p    <- 3
X    <- matrix(rnorm(n*p), ncol=p)
beta <- runif(p)
# y  <- X %*% beta + rnorm(n)*0.5
# remove the randomness
y    <- X %*% beta
dat  <- data.frame(y=y, x=X)
lm.res = lm(y ~ .-1, data=dat)
norm(as.matrix(lm.res$coefficients - beta))
[1] 2.176037e-14

Ma question est la suivante: pouvons-nous faire une simulation similaire avec régression logistique? De cette question, j'obtiens le point de supprimer le caractère aléatoire peut être fait en utilisant une déclaration déterministe au lieu d'un échantillon de la distribution binomiale.

y <- ifelse(plogis(X %*% beta)>0.5,1,0) 

au lieu de

y <- rbinom(n,1,prob=plogis(X %*% beta))

Mais si nous le faisons, une séparation complète se produira et nous ne pourrons pas obtenir les coefficients. En revanche, si l'on ajoute la régularisation, alors les coefficients ne seront pas ceux générés par les données.

Alors, que puis-je faire pour «supprimer le caractère aléatoire de la régression logistique» et résoudre les coefficients exacts de «vérité de terrain» comme le cas de régression linéaire?

Je sens que j'ai une incompréhension fondamentale du concept, qu'est-ce qui me manque?


1
Je ne vois pas de raison statistique pour cela, car vous devez connaître les paramètres pour générer la réponse. le tout est complètement déterministe.
Michael R. Chernick

@MichaelChernick J'essaie de tester un algorithme d'optimisation, où je veux simuler la vérité du terrain et le comparer avec la sortie de l'algorithme, voici un exemple.
Haitao Du

Réponses:


7

La régression logistique n'a pas de terme "erreur" comme avec la régression linéaire classique. L'exception à cette règle pourrait être la régression linéaire à seuil avec un terme d'erreur logistique, mais ce n'est pas un modèle de probabilité communément accepté qui aboutit à un modèle de régression logistique. En effet, les modèles logistiques ont une relation moyenne-variance. L'analogue de «l'ajout d'un terme d'erreur» à un modèle de régression linéaire est en fait un modèle quasi-binôme dans lequel la variance est simplement proportionnelle à p * (1-p).

Une question connexe peut être de savoir comment obtenir des résultats de modèle de régression qui sont identiques sur divers plans ou répétitions. Cela peut être fait avec un "truc" dans un logiciel de modélisation de régression. Vous pouvez générer non-intégrale résultats du risque prévu qui entraînent les mêmes résultats de régression logistique indépendants de la conception de . Par exemple: et comme deux modèles différents. Comme dans le cas, et à la fois dans la suite les mêmes résultats du modèle de régression logistique avec 0,3 en tant que rapport de cotes de journal et 0,0 que les cotes de journal pour .YXx1 <- seq(-3, 3, 0.1)x2 <- rnorm(61)y1 <- plogis(0.3*x1)y2 <- plogis(0.3*x2)x=0

> glm(y1 ~ x1, family=binomial)

Call:  glm(formula = y1 ~ x1, family = binomial)

Coefficients:
(Intercept)           x1  
 -2.528e-16    3.000e-01  

Cela se rapporte à votre question car les estimations des paramètres sont exactement telles que définies dans votre modèle de probabilité, indépendamment de la conception de , et sans séparation (par exemple log odds ratios, ).xβ=±

La modélisation des résultats fractionnaires dans un modèle logistique est une façon acceptée d'analyser les données écologiques, où le résultat peut en effet être fractionné. Ce n'est pas un hasard si c'est aussi un type de modélisation lorsque les modèles quasi-binomiaux sont les plus utilisés. Ce n'est pas non plus par hasard, je pense que la dispersion est proportionnelle à un paramètre d'échelle pour le terme d'erreur logistique lors de la "régression logistique latente".


+1 Je ne suis pas sûr de comprendre "Vous pouvez générer des résultats Y non intégraux à partir du risque prédit qui se traduisent par les mêmes résultats de régression logistique indépendamment de la conception de X." pourriez-vous expliquer plus? Vous avez également eu une réponse ici, c'est de quoi vous parlez?
Haitao Du

@ hxd1011 non, le lien que vous fournissez est une approche alternative pour estimer les GLM. Cependant, il est lié à un point: dans la régression logistique, la variance est une fonction de la moyenne, et non une entrée indépendante du résultat. Si vous saisissez la valeur attendue de au lieu de simuler un résultat de Bernoulli, vous générez des résultats selon un modèle de probabilité souhaité. y
AdamO

votre code me souffle ..., je ne savais pas que vous pouvez exécuter glm family=binomialavec un nombre fractionnaire. cela m'a donné un avertissement. mais peut toujours fonctionner ... "Dans eval (famille $ initialiser): #successes non entier dans un glm binomial!"
Haitao Du

@ hxd1011 Cela ne revient pas beaucoup dans la pratique, mais au bout du compte, il fit.glms'agit simplement de maximiser une fonction. Peu importe les valeurs de y, elles ne font pas exploser les valeurs calculées de la fonction.
Matthew Drury

3

J'aime toujours penser à la régression logistique comme à ce qui se passe si vous appliquez une décision binaire à un modèle linéaire. Autrement dit, supposons qu'il existe une relation sous-jacente qui suit le modèle linéaire: où est votre variable indépendante et le coefficient (ou pente) sur cette variable, et est un bruit aléatoire. Et disons que nous appliquons une fonction à la variable continue qui la mappe sur un résultat binaire: où

y=Xβ+ε
Xβεy
f(y)={0, if yθ1, if y>θ
θest un seuil. Quelle est la probabilité que cette fonction renvoie , étant donné une certaine valeur de ? Si nous supposons que est normalement distribué avec la moyenne et la variance , alors nous pouvons calculer cette probabilité comme:1Xε0σ2

p(f(y)=1|X)=p(y>θ|X)=θN(y;Xβ,σ2)dy

En d'autres termes, il s'agit de calculer l'aire sous la distribution normale qui se trouve à droite du seuil. Notez que cette probabilité est essentiellement ce qu'un modèle de régression logistique tente de décrire. Et en effet, si vous tracez cette probabilité en fonction de , vous obtenez quelque chose d'assez proche de la fonction logistique (en fait, la fonction logistique est souvent utilisée comme une approximation pratique de la distribution normale cumulative).X

Pour les valeurs de près du seuil, la probabilité que soit au-dessus du seuil est proche de , car le bruit peut influencer le résultat de toute façon. À mesure que vous augmentez , s'éloignera de et deviendra plus probable. Surtout, la vitesse à laquelle augmente avec dépend de deux choses: la pente et la variance du bruit . Plus précisément, cela dépend du rapportXβy0.5εXXβθf(y)=1p(f(y)=1|X)Xβσ2βσ. C'est ce rapport (signal / bruit) qui détermine le coefficient (attendu) que vous obtenez d'une régression logistique. En d'autres termes, vous pouvez considérer les coefficients d'une régression logistique comme contrôlant combien chaque variable indépendante doit changer par rapport au bruit dans les données afin d'augmenter la probabilité d'un certain résultat d'un certain montant.

Passons maintenant à votre question: vous vous demandez s'il est possible d'éliminer tout hasard, c'est-à-dire de ne pas avoir de bruit. Cela signifierait que est égal à , et donc serait indéfini (ou "infini"). Cela explique ce que vous avez trouvé, que vous ne pouvez pas estimer les coefficients quand il n'y a pas de bruit. En effet, vous pouvez penser que la séparation parfaite que vous réalisez sans bruit correspond à un coefficient infini sur votre variable indépendante, car (pour près du seuil ) il vous suffit de changer une quantité infinitésimale pour aller tout le chemin de à .σ0βσXβθXp(y>θ|X)=0p(y>θ|X)=1

Edit: en fait, une chose que vous pourriez faire est au lieu de prélever des échantillons d'une distribution binomiale pour simuler vos données, remplacez ces échantillons par leur attente, c'est-à-dire la probabilité prédite par la fonction logistique simulée. De cette façon, vous supprimez le caractère aléatoire qui dérive de la simulation d'un échantillon limité (c'est-à-dire la variabilité d'échantillonnage), et donc vos estimations de coefficient devraient alors être égales à la vérité du terrain (car il existe une fonction logistique qui correspond exactement à ces valeurs).


3
Notez que vous décrivez la régression Probit (vous pouvez utiliser N (0, 1) sans perte de généralité, cela met simplement à l'échelle vos coefficients), ce qui est en effet très proche de la régression logistique mais comme vous l'avez mentionné pas exactement la même chose.
Sven
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.