A função sigmóide no modelo de regressão logística impede a utilização da estimativa aproximada de parâmetros algébricos como nos mínimos quadrados ordinários (OLS). Em vez disso , métodos analíticos não lineares , como descida por gradiente ou método de Newton, serão usados para minimizar a função de custo do formulário:
cost(σ(Θ⊤x),y)=−ylog(σ(Θ⊤x))−(1−y)log(1−σ(Θ⊤x)) , em que
σ(z)=11+e−Θ⊤x , ou seja, a função sigmóide. Observe que se , queremos que a probabilidade prevista, , seja alta, e o sinal de menos na parte azul da função de custo minimizará o custo; ao contrário, se , apenas a parte vermelha da equação é aplicada e, quanto menor o , mais próximo o custo será de zero.y=1σ(Θ⊤x)y=0σ(Θ⊤x)
Equivalentemente, podemos maximizar a função de probabilidade como:
p(y|x,θ)=(σ(Θ⊤x))y(1−σ(Θ⊤x))1−y .
A frase que você cita, no entanto, faz referência, acredito, à parte relativamente linear da função sigmóide:
Como o modelo pode ser expresso como um modelo linear generalizado ( veja abaixo ), para , mínimos quadrados comuns podem ser suficientes, com R ao quadrado como a medida da qualidade do ajuste no espaço de ajuste. Quando ou , são necessários métodos mais complexos.0<p<1p=01
O modelo de regressão logística é:
odds(Y=1)=p(Y=1)1−p(Y=1)=eθ0+θ1x1+⋯+θpxp
ou,
log(odds(Y=1))=log(p(Y=1)1−p(Y=1))=θ0+θ1x1+⋯+θpxp=Θ⊤X(*)
Portanto, isso é "próximo o suficiente" de um modelo OLS ( ) para ser adequado como tal e para que os parâmetros sejam estimados em forma fechada, desde que a probabilidade de (lembre-se da modelagem de Bernoulli da variável resposta na regressão logística) não é próxima de ou . Em outras palavras, enquanto na Eq. * fica longe das regiões assintóticas.y=Θ⊤X+ϵy=101log(p(Y=1)1−p(Y=1))
Veja, por exemplo, esta entrada interessante no Statistical Horizons , que eu queria testar com o mtcars
conjunto de dados em R. A variável para transmissão automática am
é binária, para que possamos regredi-la em milhas por galão mpg
. Podemos prever que um modelo de carro tem transmissão automática com base no consumo de gás?
Se eu prosseguir e resolver o problema com as estimativas do OLS, obtenho uma precisão de previsão de apenas com base nesse único preditor. E adivinha? Eu obtenho exatamente a mesma matriz de confusão e taxa de precisão se ajustar uma regressão logística.75%
O fato é que a saída do OLS não é binária, mas sim contínua e, tentando estimar os valores binários reais , eles geralmente estão entre e , muito parecidos com os valores de probabilidade, embora não sejam estritamente limitados como na regressão logística ( função sigmóide).y01
Aqui está o código:
> d = mtcars
> summary(as.factor(d$am))
0 1
19 13
> fit_LR = glm(as.factor(am) ~ mpg, family = binomial, d)
> pr_LR = predict(fit, type="response")
>
> # all.equal(pr_LR, 1 / (1 + exp( - predict(fit_LR) ) ) ) - predict() is log odds P(Y =1)
>
> d$predict_LR = ifelse(pr_LR > 0.5, 1, 0)
> t_LR = table(d$am,d$predict_LR)
> (accuracy = (t_LR[1,1] + t_LR[2,2]) / sum(t))
[1] 0.75
>
> fit_OLS = lm(am ~ mpg, d)
> pr_OLS = predict(fitOLS)
> d$predict_OLS = ifelse(pr_OLS > 0.5, 1, 0)
> (t_OLS = table(d$am, d$predict_OLS))
0 1
0 17 2
1 6 7
> (accuracy = (t[1,1] + t[2,2]) / sum(t_OLS))
[1] 0.75
A frequência dos carros automáticos v manuais é bastante equilibrada e o modelo OLS é bom o suficiente como um perceptron: