Como avaliar o poder preditivo do conjunto de preditores categóricos de um resultado binário? Calcular probabilidades ou regressão logística?


10

Estou tentando determinar se probabilidades simples funcionarão para o meu problema ou se será melhor usar (e aprender sobre) métodos mais sofisticados, como regressão logística.

A variável de resposta nesse problema é uma resposta binária (0, 1). Eu tenho um número de variáveis ​​preditoras que são todas categóricas e não ordenadas. Eu estou tentando determinar quais combinações das variáveis ​​preditoras produzem a maior proporção de 1's. Preciso de regressão logística? Como seria uma vantagem apenas calcular proporções no meu conjunto de amostras para cada combinação dos preditores categóricos?


Se você tiver mais de um preditor, pode ser complicado fazer isso sem algum tipo de modelo de regressão. O que voce tinha em mente? Apenas uma grande tabela de contenção dimensional ( k é o número de preditores)? kk
Macro

As categorias de preditores estão agrupadas em mais de um fator e, em caso afirmativo, estão cruzadas ou aninhadas? Além disso, você só está interessado em fazer uma declaração descritiva? Se seus dados são complexos, um modelo de LR pode ser mais conveniente, e se você deseja inferir que LR é fortemente preferível, eu acho.
gung - Restabelece Monica

@ Macro - Sim, eu estava pensando que seria essencialmente uma tabela grande, com uma coluna mostrando o número de pontos de amostra que correspondem ao cenário e outra coluna mostrando a proporção de 1s. Eu tenho cinco preditores categóricos, cada um com 10 a 30 valores possíveis, então sei que a lista de cenários seria alta. Eu estava pensando em criar um loop em R que percorra cada um e produza resultados significativos (alta proporção de 1 mais um grande número de pontos de amostra no cenário).
Rachel

@gung - Os fatores são apenas parcialmente cruzados. Nenhum dos fatores seria considerado aninhado. Eu estou interessado em encontrar as combinações de fatores (por exemplo, Estado, Cliente, Employee), que provavelmente terá uma alta probabilidade da variável resposta igual a 1.
Rachel

11
@ EmreA - Infelizmente as variáveis ​​categóricas não são totalmente independentes. Algumas combinações serão mais propensos do que outros ...
Rachel

Respostas:


11

A regressão logística, até a imprecisão numérica, fornecerá exatamente os mesmos ajustes que as porcentagens tabuladas. Portanto, se suas variáveis ​​independentes forem objetos de fatorfactor1 etc. e os resultados dependentes (0 e 1) forem x, você poderá obter os efeitos com uma expressão como

aggregate(x, list(factor1, <etc>), FUN=mean)

Compare isso com

glm(x ~ factor1 * <etc>, family=binomial(link="logit"))

Como exemplo, vamos gerar alguns dados aleatórios:

set.seed(17)
n <- 1000
x <- sample(c(0,1), n, replace=TRUE)
factor1 <- as.factor(floor(2*runif(n)))
factor2 <- as.factor(floor(3*runif(n)))
factor3 <- as.factor(floor(4*runif(n)))

O resumo é obtido com

aggregate.results <- aggregate(x, list(factor1, factor2, factor3), FUN=mean)
aggregate.results

Sua saída inclui

   Group.1 Group.2 Group.3         x
1        0       0       0 0.5128205
2        1       0       0 0.4210526
3        0       1       0 0.5454545
4        1       1       0 0.6071429
5        0       2       0 0.4736842
6        1       2       0 0.5000000
...
24       1       2       3 0.5227273

Para referência futura, a estimativa para fatores nos níveis (1,2,0) na linha 6 da produção é 0,5.

A regressão logística renuncia a seus coeficientes da seguinte maneira:

model <- glm(x ~ factor1 * factor2 * factor3, family=binomial(link="logit"))
b <- model$coefficients

Para usá-los, precisamos da função logística:

logistic <- function(x) 1 / (1 + exp(-x))

Para obter, por exemplo, a estimativa de fatores nos níveis (1,2,0), calcule

logistic (b["(Intercept)"] + b["factor11"] + b["factor22"] + b["factor11:factor22"])

(Observe como todas as interações devem ser incluídas no modelo e todos os coeficientes associados devem ser aplicados para obter uma estimativa correta.)

(Intercept) 
        0.5

concordando com os resultados de aggregate. (O cabeçalho "(Intercepto)" na saída é um vestígio da entrada e efetivamente sem sentido para esse cálculo.)


A mesma informação em outra forma aparece na saída detable . Por exemplo, a (longa) saída de

table(x, factor1, factor2, factor3)

inclui este painel:

, , factor2 = 2, factor3 = 0

   factor1
x    0  1
  0 20 21
  1 18 21

factor121/(21+21)=0.5x1aggregateglm


Finalmente, uma combinação de fatores que produz a maior proporção no conjunto de dados é convenientemente obtida a partir da saída de aggregate:

> aggregate.results[which.max(aggregate.results$x),]
  Group.1 Group.2 Group.3         x
4       1       1       0 0.6071429

11
Isso é muita informação e levarei algum tempo para eu digerir, mas fico feliz em saber que as porcentagens tabuladas e as regressões logísticas essencialmente me fornecerão os mesmos resultados. Executei a função agregada em dois dos preditores e ela terminou imediatamente ... os resultados do ajuste logístico estão em execução há alguns minutos e ainda não foram concluídos. Continuarei a ajustar as coisas, mas posso acabar usando as porcentagens tabuladas. Obrigado!
Rachel

(+1), Fora do manguito, pergunto-me se os erros padrão nesse contexto da regressão logística podem ser incorporados nos resumos gráficos de mosaico que sugeri. Eu também suspeito que isso poderia ser uma boa maneira de rapidamente "filtro" os resultados de interações interessantes (estes são apenas minhas reflexões embora!)
Andy W

"A regressão logística, até a imprecisão numérica, dará exatamente os mesmos ajustes que as porcentagens tabuladas": ela não está tabulando porcentagens para todas as configurações de preditores? Nesse caso, a regressão logística não pode codificar todos os relacionamentos possíveis.
22412 Neil G

@ Nee Claro que pode codificar todos os "relacionamentos" (combinações de fatores): use todas as interações possíveis. Veja o código R para um exemplo. Quando os fatores são numerosos, na prática haverá muitas combinações vazias, mas um software decente não terá problemas em lidar com isso. Um software ainda melhor manipula as combinações sem variação nas respostas.
whuber

@ Andy Eu amo sua resposta sobre os gráficos - precisamos encontrar uma maneira de criar um tópico em que seja exatamente a resposta certa! Talvez seu pensamento sobre a incorporação de estimativas de erro nas plotagens de mosaico seja a maneira de abordá-la: como você representaria as estimativas logísticas, os dados reais e / ou o erro nelas simultaneamente?
whuber

6

Para uma rápida olhada na proporção de respostas binárias em cada categoria e / ou condicional em várias categorias, gráficos gráficos podem ser úteis. Em particular, para visualizar simultaneamente proporções condicionadas a muitas variáveis ​​independentes categóricas, sugiro gráficos em mosaico .

Abaixo está um exemplo de uma postagem de blog, Noções básicas sobre gráficos baseados em área: gráficos em mosaico dos gráficos estatísticos e mais no blog. Este exemplo visualiza a proporção de sobreviventes no Titanic em azul, condicional à classe do passageiro. Pode-se avaliar simultaneamente a proporção de sobreviventes, enquanto ainda aprecia o número total de passageiros em cada um dos subgrupos (informações úteis com certeza, especialmente quando determinados subgrupos são em número escasso e esperamos uma variação mais aleatória).

Lote de mosaico do Titanic
(fonte: theusrus.de )

Pode-se, então, condicionar as plotagens subsequentes de mosaico a múltiplas variáveis ​​independentes categóricas. O próximo exemplo da mesma postagem de blog em um rápido resumo visual demonstra que todas as crianças passageiros na primeira e segunda classes sobreviveram, enquanto na terceira classe as crianças não se saíram tão bem. Também mostra claramente que as mulheres adultas tiveram uma taxa de sobrevivência muito maior em comparação aos homens em cada classe, embora a proporção de mulheres sobreviventes entre as classes tenha diminuído consideravelmente da primeira para a segunda para a terceira classe (e depois foi relativamente alta novamente para a equipe, embora note novamente que não existem muitas tripulantes, dado o quão estreito o bar é).

Mosaico condicional na terceira variável
(fonte: theusrus.de )

É impressionante a quantidade de informação exibida, proporções em quatro dimensões (Classe, Adulto / Criança, Sexo e Proporção de Sobreviventes)!

Concordo que se você estiver interessado em previsão ou em mais explicações causais em geral, desejará recorrer a uma modelagem mais formal. As plotagens gráficas podem ser pistas visuais muito rápidas quanto à natureza dos dados e podem fornecer outros insights frequentemente perdidos ao simplesmente estimar modelos de regressão (especialmente ao considerar as interações entre as diferentes variáveis ​​categóricas).


+1, este é o ponto que eu estava tentando destacar no meu comentário acima sobre se o objetivo era simples descrição ou inferência. Nb, que o ponto é mais claro e melhor feito com números!
gung - Restabelece Monica

@gung obrigado, o que Nbsignifica? Eu sempre digo melhor com números também!
21780 Andy W

2
Nada relacionado a estatísticas, "nb" significa nota bene , que por sua vez é latim para 'note well' (literalmente) ou 'note that' / 'notice' (mais coloquialmente).
gung - Restabelece Monica

3

Dependendo de suas necessidades, você pode achar que o particionamento recursivo fornece um método fácil de interpretar para prever uma variável de resultado. Para uma introdução do R a esses métodos, consulte a página do modelo baseado em árvore do Quick-R . Geralmente, sou a favor da ctree()implementação no pacote `R ', pois não é necessário se preocupar com a remoção e, por padrão, produz gráficos bonitos.

Isso se enquadra na categoria de algoritmos de seleção de recurso sugerida em uma resposta anterior e geralmente fornece previsões tão boas, se não melhores, quanto a regressão logística.


2

205

Se você tiver menos dados, deseja aprender menos parâmetros. Você pode reduzir o número de parâmetros assumindo, por exemplo, que configurações de preditores individuais tenham efeitos consistentes na variável de resposta.

Se você acredita que seus preditores são independentes um do outro, a regressão logística é o algoritmo único que faz a coisa certa. (Mesmo que não sejam independentes, ainda pode funcionar bastante bem.)

Em resumo, a regressão logística assume uma influência independente dos preditores, o que reduz o número de parâmetros do modelo e produz um modelo fácil de aprender.


1

Você deve olhar para os algoritmos de seleção de recursos. Um que seja adequado ao seu caso (classificação binária, variáveis ​​categóricas) é o método "mínimo de redundância máxima de relevância" (mRMR). Você pode experimentá-lo on-line rapidamente em http://penglab.janelia.org/proj/mRMR/


É possível executar este programa com mais de um preditor categórico? Na página de upload, parece que apenas a primeira coluna pode ser a "classe" de dados ... Talvez eu não entenda como os dados devem ser formatados.
Rachel

Ou a "classe" deveria ser a variável de saída, neste caso, 0 ou 1? Nesse caso, é importante transformar as variáveis ​​categóricas em variáveis ​​dummy para mostrar indicadores para cada uma?
23412 Rachel Rachel

Você pode ter quantos preditores desejar. A primeira linha do seu arquivo de dados deve ser o nome do recurso e a primeira coluna deve ser a classe (variável de resposta) das amostras. Portanto, um exemplo é: response,predictor1,predictor2,predictor3 <line break here> 1,5,4,3 <line break here> 0,5,3,-1 <line break here> 1,1,2,3
emrea

1

Eu trabalho no campo da pontuação de crédito, onde o que aqui está sendo apresentado como um caso estranho é a norma.

Utilizamos regressão logística e convertemos variáveis ​​categóricas e contínuas em pesos de evidência (WOEs), que são então utilizados como preditores na regressão. É gasto muito tempo agrupando as variáveis ​​categóricas e discretizando (classificando / classificando) as variáveis ​​contínuas.

O peso da evidência é um cálculo simples. É o log das probabilidades para a classe, menos o log das probabilidades para a população:
WOE = ln (Bom (classe) / Ruim (classe)) - ln (Bom (ALL) / Ruim (ALL)) metodologia de transformação padrão para quase todos os modelos de pontuação de crédito criados usando regressão logística. Você pode usar os mesmos números em uma abordagem por partes.

A beleza disso é que você sempre saberá se os coeficientes atribuídos a cada WOE fazem sentido. Coeficientes negativos são contrários aos padrões contidos nos dados e geralmente resultam de multicolinearidade; e coeficientes acima de 1,0 indicam supercompensação. A maioria dos coeficientes sairá entre zero e um.


Obrigado por um post interessante e informativo. Não consigo descobrir como ele responde à pergunta neste tópico, no entanto. Qual é o "caso estranho" ao qual você se refere? Você pretendeu usar isso para responder a outra pergunta em outro lugar?
whuber
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.