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.
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?
la source
Réponses:
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 .Y X x=0
x1 <- seq(-3, 3, 0.1)
x2 <- rnorm(61)
y1 <- plogis(0.3*x1)
y2 <- plogis(0.3*x2)
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".
la source
glm
family=binomial
avec un nombre fractionnaire. cela m'a donné un avertissement. mais peut toujours fonctionner ... "Dans eval (famille $ initialiser): #successes non entier dans un glm binomial!"fit.glm
s'agit simplement de maximiser une fonction. Peu importe les valeurs dey
, elles ne font pas exploser les valeurs calculées de la fonction.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ù
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β y 0.5 ε X Xβ θ f(y)=1 p(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β θ X p(y>θ|X)=0 p(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).
la source