Procedimento automatizado para selecionar subconjunto de pontos de dados com correlação mais forte?

15

Existe algum procedimento padrão (como um que possa ser citado como referência) para selecionar o subconjunto de pontos de dados de um pool maior com a correlação mais forte (em apenas duas dimensões)?

Por exemplo, digamos que você tenha 100 pontos de dados. Você deseja um subconjunto de 40 pontos com a correlação mais forte possível ao longo das dimensões X e Y.

Sei que escrever código para fazer isso seria relativamente simples, mas estou me perguntando se há alguma fonte para citá-lo.

Julie
fonte
3
"Eu sei que escrever código para fazer isso seria relativamente simples". Ah? E como você faria isso?
user603
3
Suponho que ela quis dizer algo como "melhor correlação de subconjunto"; selecione subconjuntos de ( k = 40 no exemplo dela) pontos do seu N ( N = 100 no exemplo dela) e calcule a estimativa da correlação ρ ( X , Y ) (assumindo que ela pretendia conhecer um subconjunto de pontos com a melhor correlação linear ). No entanto, esse processo parece computacionalmente caro para N grande , porque você precisa calcular ( Nkk=40NN=100ρ(X,Y)N multiplicado pelo coeficiente. (Nk)
Néstor
11
Se você deseja examinar combinações lineares das variáveis , é o que procura correlações canônicas . Caso contrário, a seleção do recurso de correlação pode ser interessante. X
MånsT
Eu acho que alguns podem estar me entendendo mal. @ Néstor parece estar certo. Existem 100 itens, cada um com um valor X e um valor Y. Eu quero encontrar o subconjunto de 40 que tem a correlação mais forte possível (com regressão linear / linear) entre os valores de X e Y. Posso escrever código para explorar todo o espaço de pesquisa, mas o que eu citaria para oferecer suporte a esse método? Como é chamado para encontrar a correlação ideal entre todos os subconjuntos possíveis?
Julie
11
Você está interessado em maximizar a correlação ou obter a melhor linha de regressão de ajuste como, por exemplo, medida pela variação residual mínima? Os dois não são os mesmos quando você escolhe seus pontos de dados.
21134 jbowman

Respostas:

17

Eu diria que seu método se encaixa na categoria geral descrita neste artigo da Wikipedia que também tem outras referências se você precisar de algo mais do que apenas a wikipedia. Alguns dos links desse artigo também se aplicam.

Outros termos que podem ser aplicados (se você quiser fazer mais pesquisas) incluem "Dragagem de Dados" e "Tortura dos dados até que eles confessem".

Observe que você sempre pode obter uma correlação de 1 se escolher apenas 2 pontos que não têm valores idênticos de x ou y. Alguns anos atrás, havia um artigo na revista Chance que mostrava que quando você tem uma variável xey essencialmente sem correlação, é possível encontrar uma maneira de separar x e calcular a média dos y nos compartimentos para mostrar uma tendência crescente ou decrescente ( Chance 2006, Revelações visuais: Descobrindo o que não existe através da infeliz lista de resultados: The Mendel Effect, pp. 49-52). Também com um conjunto de dados completo mostrando uma correlação positiva moderada, é possível escolher um subconjunto que mostra uma correlação negativa. Dado isso, mesmo que você tenha uma razão legítima para fazer o que propõe, você está dando a muitos céticos muitos argumentos para usar contra quaisquer conclusões que você venha a ter.

Greg Snow
fonte
Qual é o nome do artigo do The American Statistician?
assumednormal
11
Lembrei-me de onde vi o artigo, na verdade estava na Chance Magazine, e não no The American Statistician. Corrigi isso acima e incluí o ano, o título e os números de página para que as partes interessadas possam encontrar cópias facilmente.
Greg Snow
4

O algoritmo RANSAC soa como o que você deseja. Basicamente, ele assume que seus dados consistem em uma mistura de inliers e outliers e tenta identificar os inliers amostrando repetidamente subconjuntos dos dados, ajustando um modelo a ele e tentando ajustar todos os outros pontos de dados ao modelo. Aqui está o artigo da Wikipedia sobre isso .

No seu caso, você pode continuar repetindo o algoritmo enquanto salva o melhor modelo atual que cabe no mínimo 40 pontos, para não garantir a melhor correlação absoluta, mas deve se aproximar.

Joseph
fonte
1

É difícil imaginar um contexto em que isso seria uma boa prática, mas vamos supor por um momento que você realmente tem um bom motivo para fazer isso.

Um algoritmo de força bruta pode ser algo como isto:

  1. Você calcula todas as subamostras possíveis de n da sua amostra geral de N. A maioria dos pacotes estatísticos possui funções para calcular combinações sem substituições que farão isso por você.

  2. Você estima a correlação entre x e y para cada uma das subamostras e seleciona o máximo desse conjunto.

Acabei de ver o comentário do pôster original sobre uma referência para esse procedimento. Não tenho certeza de que alguém tenha um nome específico para esse procedimento, afinal você está simplesmente gerando uma distribuição empírica de toda correlação possível no seu conjunto de dados e selecionando o máximo. Abordagens semelhantes são usadas ao executar o bootstrap, mas, nesse caso, você está interessado na variabilidade empírica, NÃO as utiliza para escolher uma subamostra específica associada ao valor máx.

David
fonte
2
Eu presumo que você tenha acesso ao 1032. ou mais ciclos de CPU necessários para resolver o problema para N=100 e n=40.? (Isso seria apenas cerca de um milhão de anos se você pudesse aproveitar cada PC no tempo integral mundo :-).
whuber
Não há necessidade de ser sarcástico sobre isso :-p. Ponto justo.
David
Desculpe ... Eu gosto desses números, porque eles nos dão muito espaço para um algoritmo aprimorado :-).
whuber