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 β + ϵ
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?
fonte
Respostas:
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 = 0Y X x=0
x1 <- seq(-3, 3, 0.1)
x2 <- rnorm(61)
y1 <- plogis(0.3*x1)
y2 <- plogis(0.3*x2)
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".
fonte
glm
family=binomial
com 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!"fit.glm
está apenas maximizando uma função. Não importa muito quais são os valoresy
, apenas que eles não explodem os valores calculados da função.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β y 0.5 ε X Xβ θ f(y)=1 p(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β θ X p(y>θ|X)=0 p(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).
fonte