Métodos robustos são realmente melhores?


17

Eu tenho dois grupos de sujeitos, A e B, cada um com um tamanho de aproximadamente 400 e cerca de 300 preditores. Meu objetivo é construir um modelo de previsão para uma variável de resposta binária. Meu cliente deseja ver o resultado da aplicação do modelo criado de A em B. (Em seu livro "Estratégias de modelagem de regressão", @FrankHarrell menciona que é melhor combinar os dois conjuntos de dados e criar um modelo, pois isso adiciona potência e precisão --- consulte a página 90, Validação externa.Eu concordo com ele, considerando que a coleta do tipo de dados que tenho é muito cara e consome muito tempo, mas não tenho escolha sobre o que o cliente deseja .) Muitos dos meus preditores são altamente correlacionados e também muito distorcidos. Estou usando regressão logística para construir meu modelo preditivo.

Meus preditores vêm principalmente da mecânica. Por exemplo, tempo total em que o sujeito passou por um estresse maior que o limite durante o período , para vários valores de e . É claro que apenas a partir de suas definições, muitos desses tempos totais estão algebricamente relacionados entre si. Muitos dos preditores que não estão relacionados algebricamente estão relacionados por causa de sua natureza: indivíduos que estão sob alto estresse durante um período de tempo tendem a estar sob alto estresse durante o período de tempo , mesmo seα[t1,t2]α>0 00 0t1<t2[t1,t2][t3,t4][t1,t2][t3,t4]=. Para reduzir a dimensão dos dados, agrupei preditores relacionados em conjunto (por exemplo, todo o tempo total de estresse) e usei a análise de componentes principais para representar cada cluster. Como as variáveis ​​foram distorcidas, tentei dois caminhos alternativos:

  • Antes de fazer o PCA, usei uma transformação logarítmica para reduzir a inclinação nas variáveis.
  • Usei o algoritmo ROBPCA de Mia Hubert, conforme implementado pelo pacote rrcov em R (PcaHubert), para encontrar os principais componentes robustos.

Estou usando o formato geral da curva ROC, o formato da curva de precisão e a área sob a curva ROC (AUC) como medidas de desempenho, e gostaria de obter resultados semelhantes para os conjuntos de dados A e B Eu esperava obter um resultado muito melhor usando os componentes principais robustos, mas, para minha surpresa, o primeiro método foi melhor: melhor valor de AUC para os conjuntos de dados A e B, mais semelhança entre as curvas ROC e recuperação de precisão mais semelhante curvas.

Qual a explicação para isso? E como posso usar componentes principais robustos, em vez de tentar fazer com que meus dados pareçam normais? Existem métodos PCA robustos específicos que você recomendaria em vez do ROBPCA?


"Agrupei preditores relacionados", você pode explicar melhor quais etapas envolvem? "Eu esperava obter um resultado muito melhor usando os componentes principais robustos" Você pode explicar como você mede os resultados?
User603

Por que você acha que é melhor combinar os conjuntos de dados? Eu não concordo nada. Uma dificuldade que esse tipo de problema tem é depender muito dos dados específicos. Testar o modelo em outro conjunto de dados é uma boa ideia.
Peter Flom - Restabelece Monica

Em que sentido o PCA regular nas variáveis ​​de log "melhor"? Fez mais sentido intuitivo? Deu um resultado melhor no segundo conjunto de dados?
Peter Flom - Restabelece Monica

Obrigado @PeterFlom por seus comentários! Atualizei a pergunta de acordo com seus comentários.
user765195

Obrigado @ user603 pelo seu comentário! Atualizei a pergunta para refletir seu comentário.
user765195

Respostas:


17

Em resumo, e da sua descrição, você está comparando maçã com laranjas .... de duas maneiras.

Permitam-me tratar brevemente da primeira questão de comparabilidade. O registo de transformação não não resolver o problema outlier. No entanto, ele pode ajudar a tornar os dados altamente distorcidos mais simétricos, melhorando potencialmente o ajuste de qualquer método PCA. Em resumo, pegar o de seus dados não é um substituto para uma análise robusta e, em alguns casos (dados distorcidos), pode muito bem ser um complemento. Para deixar de lado esse primeiro fator de confusão, no restante deste post, uso a versão transformada em log de alguns dados bi-variáveis ​​assimétricos.registro

Considere este exemplo:

library("MASS")
library("copula")
library("rrcov")
p<-2;n<-100;

eps<-0.2
l1<-list()
l3<-list(rate=1)
#generate assymetric data
model<-mvdc(claytonCopula(1,dim=p),c("unif","exp"),list(l1,l3));
x1<-rMvdc(ceiling(n*(1-eps)),model);
#adding 20% of outliers at the end:
x1<-rbind(x1,mvrnorm(n-ceiling(n*(1-eps)),c(7,3),1/2*diag(2))) 

dados

Agora, ajuste os dois modelos (ROBPCA e classic pca, ambos no log dos dados):

x2<-log(x1)
v0<-PcaClassic(x2)
v1<-PcaHubert(x2,mcd=FALSE,k=2)

Agora, considere o eixo de menor variação encontrada por cada método (aqui, por conveniência, plogo-o no espaço transformado por log, mas você obteria as mesmas conclusões no espaço original).

modelo

Visivelmente, o ROBPCA faz um trabalho melhor ao lidar com a parte não contaminada dos dados (os pontos verdes):

Mas agora, chego ao meu segundo ponto.

- chamando o conjunto de todos os pontos verdes e ( ) a pontuação robusta (clássica) do pca escrita no eixo de menor variação -HvocêzEuWEu

você tem isso (isso é silenciosamente visível no gráfico acima):

EuHvocê(zEu)2<EuHvocê(WEu)2(1)

Mas você parece surpreso que:

Eu=1n(zEu)2>Eu=1n(WEu)2(2)

- da maneira que você descreveu seu procedimento de teste, você calcula o critério de avaliação de ajuste em todo o conjunto de dados; portanto, seu critério de avaliação é uma função monótona de (2), onde você deve usar uma função monótona de (1) -

Em outras palavras, não espere que um ajuste robusto tenha uma soma menor de resíduos ortogonais ao quadrado do que um procedimento não robusto em seu conjunto de dados completo: o estimador não robusto já é o minimizador exclusivo do SSOR no conjunto de dados completo.


1
Obrigado pela sua resposta. Demorei um pouco para experimentar outros dados e pensar em sua resposta para realmente entendê-los.
user765195
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.