É possível simular regressão logística sem aleatoriedade?

8

Podemos simular regressão linear sem aleatoriedade, o que significa que fazemos vez de . Então, se ajustarmos um modelo linear, os coeficientes serão idênticos à "verdade fundamental". Aqui está um exemplo.y = X β + ϵ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

Minha pergunta é: podemos fazer a simulação semelhante com regressão logística? A partir desta pergunta, entendi que o ponto de remoção da aleatoriedade pode ser feito usando uma declaração determinística em vez de uma amostra da distribuição binomial.

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

ao invés de

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

Mas se fizermos isso, a separação completa acontecerá e não podemos obter os coeficientes. Por outro lado, se adicionarmos regularização, os coeficientes não serão os dados gerados.

Então, o que posso fazer para "remover a aleatoriedade na regressão logística" e resolver os coeficientes exatos da "verdade da base", como o caso da regressão linear?

Sinto que tenho algum mal-entendido fundamental do conceito, o que estou perdendo?

Haitao Du
fonte
1
Não vejo uma razão estatística para fazer isso, pois você precisa conhecer os parâmetros para gerar a resposta. a coisa toda é completamente determinística.
Michael R. Chernick
@MichaelChernick Estou tentando testar algum algoritmo de otimização, onde quero simular a verdade básica e compará-la com a saída do algoritmo, aqui está um exemplo.
Haitao Du

Respostas:

7

A regressão logística não possui um termo de "erro" como na regressão linear clássica. A exceção a isso pode ser regressão linear com limiar com um termo de erro logístico, mas esse não é um modelo de probabilidade comumente aceito que resulta em um modelo de regressão logística. Isso ocorre porque os modelos logísticos têm uma relação de variação média. O análogo para "adicionar um termo de erro" a um modelo de regressão linear é na verdade um modelo quase-binomial no qual a variação é meramente proporcional a p * (1-p).

Uma questão relacionada pode ser como obter resultados do modelo de regressão idênticos em vários projetos ou replicações. Isso pode ser feito com um "truque" no software de modelagem de regressão. É possível gerar não integrais resultados do risco previsto que resultam nos mesmos resultados de regressão logística independentes do desenho de . Por exemplo: e como dois modelos diferentes. Como no seu caso, e tanto resultado nos mesmos logísticos resultados do modelo de regressão com 0,3 como a razão de chances de log e 0,0 como as chances de registro para .X x = 0YXx1 <- 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  

Isso está relacionado à sua pergunta porque as estimativas de parâmetros são exatamente as definidas no seu modelo de probabilidade, independente do design de , e sem separação (por exemplo, log odds ratio, ).β = ± xβ=±

Modelar resultados fracionários em um modelo logístico é uma maneira aceita de analisar dados ecológicos, onde o resultado pode realmente ser fracionário. Não por coincidência, esse também é um tipo de modelagem quando os modelos quase-binomiais são os mais utilizados. Também não por coincidência, acho que a dispersão é proporcional a um parâmetro de escala para o termo de erro logístico ao fazer "regressão logística latente".

AdamO
fonte
+1 Não sei se entendi "Você pode gerar resultados Y não integrais a partir do risco previsto, que resultam nos mesmos resultados de regressão logística, independentemente do design de X." você poderia explicar mais? Também você teve uma resposta aqui. É disso que você está falando?
Haitao Du
y
seu código me impressiona ..., eu não sabia que você pode executar glm family=binomialcom um número fracionário. isso me deu um aviso. mas ainda pode executar ... "In eval (family $ initialize): #successes não inteiros em um binômio glm!"
Haitao Du
@ hxd1011 Na prática, não aparece muito, mas no final do dia fit.glmestá apenas maximizando uma função. Não importa muito quais são os valores y, apenas que eles não explodem os valores calculados da função.
Matthew Drury
3

y=Xβ+ε
Xβεy q 1 X ε 0 σ 2
f(y)={0, if yθ1, if y>θ
θé um limite. Qual é a probabilidade de que essa função retorne , dado um determinado valor de ? Se assumirmos que é normalmente distribuído com média e variação , podemos calcular essa probabilidade como:1Xε0σ2

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

Em outras palavras, isso está computando a área sob a distribuição Normal, à direita do limite. Observe que essa probabilidade é essencialmente o que um modelo de regressão logística tenta descrever. E, de fato, se você plota essa probabilidade como uma função de , obtém algo bastante próximo da função logística (de fato, a função logística é frequentemente usada como uma aproximação conveniente da distribuição Normal cumulativa).X

Para valores de próximos ao limite, a probabilidade de estar acima do limite é de , porque o ruído pode influenciar o resultado de qualquer maneira. À medida que aumenta , vai ficar mais longe de e se torna mais provável. Fundamentalmente, a rapidez com que aumenta com depende de duas coisas: a inclinação e a variação de ruído . Mais precisamente, depende da proporçãoXβy0.5εXXβθf(y)=1p(f(y)=1|X)Xβσ2βσ. É essa relação (sinal-ruído) que determina o coeficiente (esperado) obtido de uma regressão logística. Em outras palavras, você pode pensar nos coeficientes em uma regressão logística como controlando quanto cada variável independente precisa mudar em relação ao ruído nos dados para aumentar a probabilidade de um determinado resultado em alguma quantidade.

Agora, vamos à sua pergunta: você está perguntando se é possível eliminar toda a aleatoriedade, ou seja, sem barulho. Isso significa que é igual a e, portanto, seria indefinido (ou "infinito"). Isso explica o que você encontrou e que não pode estimar os coeficientes quando não há ruído. De fato, você pode pensar na separação perfeita que você obtém sem ruído como correspondendo a um coeficiente infinito em sua variável independente, pois (para próximo ao limiar ) você só precisa alterar uma quantidade infinitesimal para fazer tudo o caminho de para .0 βσ0 XβθXp(y>θ|X)=0p(y>θ|X)=1βσXβθXp(y>θ|X)=0p(y>θ|X)=1

Editar: na verdade, uma coisa que você pode fazer é, em vez de extrair amostras de uma distribuição binomial para simular seus dados, substituir essas amostras pela expectativa deles, ou seja, a probabilidade prevista pela função logística simulada. Dessa forma, você está removendo a aleatoriedade resultante da simulação de uma amostra limitada (ou seja, a variabilidade da amostragem) e, portanto, suas estimativas de coeficiente devem ser iguais à verdade básica (já que existe uma função logística que se ajusta exatamente a esses valores).

Ruben van Bergen
fonte
3
Observe que você descreve a regressão Probit (você pode usar N (0, 1) sem perda de generalidade, apenas dimensiona seus coeficientes), o que é realmente muito próximo da regressão logística, mas como você mencionou não é exatamente o mesmo.
Sven