Estabilidade modelo quando se lida com grandes , pequeno problema

22

Introdução:

Eu tenho um conjunto de dados com um clássico "grande p, pequeno n problema". O número de amostras disponíveis n = 150, enquanto o número de possíveis preditores p = 400. O resultado é uma variável contínua.

Eu quero encontrar os descritores mais "importantes", ou seja, aqueles que são os melhores candidatos para explicar o resultado e ajudar a construir uma teoria.

Depois de pesquisar esse tópico, descobri que LASSO e Elastic Net são comumente usados ​​no caso de p grande, pequeno n. Alguns de meus preditores são altamente correlacionados e eu quero preservar seus agrupamentos na avaliação de importância; portanto, optei pelo Elastic Net . Suponho que posso usar valores absolutos dos coeficientes de regressão como medida de importância (corrija-me se estiver errado; meu conjunto de dados é padronizado).

Problema:

Como meu número de amostras é pequeno, como posso obter um modelo estável?

Minha abordagem atual é encontrar os melhores parâmetros de ajuste (lambda e alfa) em uma pesquisa em grade em 90% do conjunto de dados com 10 vezes a validação cruzada, média da pontuação do MSE. Em seguida, treino o modelo com os melhores parâmetros de ajuste em todos os 90% do conjunto de dados. Sou capaz de avaliar meu modelo usando R ao quadrado no holdout 10% do conjunto de dados (que representam apenas 15 amostras).

Executando repetidamente esse procedimento, encontrei uma grande variação nas avaliações ao quadrado de R. Além disso, o número de preditores não zerados varia, bem como seus coeficientes.

Como posso obter uma avaliação mais estável da importância dos preditores e uma avaliação mais estável do desempenho do modelo final?

Posso executar repetidamente meu procedimento para criar vários modelos e, em seguida, coeficientes de regressão médios? Ou devo usar o número de ocorrências de um preditor nos modelos como seu escore de importância?

Atualmente, recebo cerca de 40-50 preditores não zerados. Devo penalizar mais o número de preditores por uma melhor estabilidade?

dimi
fonte
1
Talvez a regressão regularizada não seja suficiente? Você já tentou alguma abordagem de aprendizado de máquina?
quais abordagens de ML adequadas para variáveis ​​dependentes contínuas ou ordinais você sugeriria?
dimi
2
Floresta aleatória, SVR ... Para a seleção de recursos, você pode tentar algum método relevante (deve ser mais estável) como ACE ou Boruta.

Respostas:

11

" Algoritmos esparsos não são estáveis: um teorema sem almoço grátis "

Eu acho que o título diz muito, como você apontou.

[...] um algoritmo esparso pode ter soluções ótimas não únicas e, portanto, está mal posicionado

Confira o laço aleatório e a palestra de Peter Buhlmann .

Atualizar:

Achei este artigo mais fácil de acompanhar do que o artigo de Meinshausen e Buhlmann chamado "Seleção de Estabilidade".

Em " Random Lasso ", os autores consideram as duas desvantagens importantes do laço para grandes , pequenos problemas, ou seja,npn

  1. No caso em que existem várias variáveis ​​correlacionadas, o laço seleciona apenas uma ou algumas, levando à instabilidade de que você fala
  2. O laço não pode selecionar mais variáveis ​​que o tamanho da amostra que é um problema para muitos modelosn

A idéia principal do laço aleatório, capaz de lidar com os dois inconvenientes do laço é a seguinte

Se vários conjuntos de dados independentes fossem gerados a partir da mesma distribuição, esperaríamos que o laço selecionasse subconjuntos não-idênticos dessas variáveis ​​importantes altamente correlacionadas de diferentes conjuntos de dados, e nossa coleção final pode ser a maioria, ou talvez até todas, daquelas importantes altamente correlacionadas variáveis ​​através da união de variáveis ​​selecionadas de diferentes conjuntos de dados. Esse processo pode produzir mais de variáveis, superando a outra limitação do laço.n

Amostras de inicialização são desenhadas para simular vários conjuntos de dados. Os coeficientes finais são obtidos pela média dos resultados de cada amostra de inicialização.

Seria ótimo se alguém pudesse elaborar e explicar mais esse algoritmo nas respostas.

Pardis
fonte
1
Links legais (+1).
jbowman
Obrigado pelas observações. Também considerei o laço aleatório, mas seria adequado no caso de colinearidade ?
dimi
2
O que acontece sob colinearidade aproximada entre as variáveis ​​explicativas? No algoritmo convencional de pesquisa direta na análise de regressão, somos frequentemente confrontados com a situação em que duas variáveis ​​x1 e x2 têm poder explicativo semelhante. Se x1 estiver no modelo, não será necessário incluir x2; por outro lado, se x2 estiver no modelo, não será necessário incluir x1. Se eu entender seu procedimento corretamente, você tenderá a incluir x1 metade do tempo e x2 metade do tempo, levando a probabilidades de estabilidade de cerca de 50% cada. Nesse caso, você pode concluir falsamente que nenhuma variável é necessária.
dimi
Eu imagino, da mesma forma, posso usar rede elástica aleatória neste caso.
dimi
Eu adicionei outro link que acho que responde melhor à sua pergunta.
Pardis
6

Minha abordagem atual é encontrar os melhores parâmetros de ajuste (lambda e alfa) em uma pesquisa em grade em 90% do conjunto de dados com 10 vezes a validação cruzada, média da pontuação do MSE. Em seguida, treino o modelo com os melhores parâmetros de ajuste em todos os 90% do conjunto de dados. Sou capaz de avaliar meu modelo usando R ao quadrado no holdout 10% do conjunto de dados (que representam apenas 15 amostras).

Quão estáveis ​​são os parâmetros de ajuste?

Você vê grandes diferenças entre a qualidade do ajuste (por exemplo, MSE da validação cruzada do parâmetro ideal) e o desempenho do teste independente de 10%?

Isso seria um sintoma de super ajuste:

O problema com a pesquisa de grade (e muitas outras estratégias de otimização de parâmetro) é que você assume basicamente um comportamento bastante suave de . Porém, para conjuntos de testes pequenos, a variação devido ao tamanho pequeno do conjunto de testes (total de 135 amostras em dobras de 10 cv) pode ser maior que as diferenças reais de . Nesse caso, os parâmetros já são bastante instáveis.M S E = f ( g r i d p a r a m e t e r s )MSE=f(gridparameters)MSE=f(gridparameters)

Posso executar repetidamente meu procedimento para criar vários modelos e, em seguida, coeficientes de regressão médios? Ou devo usar o número de ocorrências de um preditor nos modelos como seu escore de importância?

Existem várias possibilidades para construir esses modelos agregados:

  • modelos lineares podem ser calculados pela média dos coeficientes
  • de maneira mais geral, é possível prever uma amostra para cada um dos modelos diferentes e calcular a média das previsões (você também pode obter uma idéia da incerteza observando a distribuição das previsões).mmm

Os termos de pesquisa seriam "modelos agregados", "agregação de bootstrap", "ensacamento".

Pensamento lateral: alguns tipos de dados têm colinearidade esperada e interpretável que pode fazer com que a seleção variável "salte" entre soluções mais ou menos iguais.

cbeleites suporta Monica
fonte
3

Não há como escapar disso. Como alguns disseram, os modelos são instáveis ​​por natureza (caso contrário, as estatísticas não seriam necessárias).

Mas a própria instabilidade traz informações. Então, ao invés de tentar me livrar dele, tentei analisá-lo.

Executo simulações de validação cruzada várias vezes e, em seguida, obtenho os coeficientes para os melhores parâmetros selecionados em cada execução e os reunimos.

λα

Então extraio os coeficientes de regressão para cada par de parâmetros e isso me dá uma distribuição de valores para cada parâmetro. Dessa forma, posso usar o valor médio / mediano para descrever a força do preditor e seu desvio padrão / IQR para descrever sua variabilidade, ou seja, sua estabilidade.

Um preditor muito estável significa que você pode esperar que seu efeito seja semelhante também com novos dados; um preditor instável, mesmo nos seus dados, provavelmente seria muito instável, mesmo com novos dados.

Bakaburg
fonte