Como agrupar dados numéricos em "colchetes" naturais? (por exemplo, renda)

14

A seguir, é descrito o que estou tentando realizar, mas é possível que uma declaração alternativa de problema possa descrever meu objetivo:

eu quero

  1. divida os seguintes números em grupos em que as variações dos números em cada grupo não são muito grandes e as diferenças entre as médias dos grupos não são muito pequenas

  2. compare a distribuição obtida no final com as "perfeitas" e veja como é "diferente" de ser perfeita.


A explicação do objetivo de Layman

Estou tentando calcular a distribuição de renda e determinar os "escalões de renda" em que cada população está. O escalão de renda deve se auto-ajustar com base nos dados de entrada.

Meu objetivo é medir ou calcular a diferença entre os escalões de renda. Suponho que haverá muitos colchetes e quero ver a que distância cada camada está "separada".

Aqui está uma amostra da renda horária para um conjunto de amostras de uma população de 20 e uma renda total de 3587:

Population= 10                   pop=2   population=5              population =3
10, 11,13,14,14,14,14,14,15,20,  40,50  ,90,91,92,93,94      999,999,900 

Como posso usar conceitos matemáticos para agrupar, classificar e analisar dados que atuam como distribuição de renda em uma determinada população?

No final do cálculo, quero determinar a distribuição de renda em camadas, onde uma distribuição perfeita se pareceria com algo assim

(each person makes $10 more per hour than the previous; total is 3587)
89, 99, 109, 119, 129, 139, 149, 159, 169, 179, 189, 199, 209, 219, 229, 239, 249, 259, 269, 279

ou isto:

(evenly distributed groups of people make the same per hour) 
(gaps between income groups is consistent and not "too far")
(income total is 3587)
99 99 99   129 129 129   159 159 159   199 199 199  229 229 229  269 269 269 

Questão

Como devo analisar os grupos populacionais e medir a lacuna de uma maneira que me diga quanto é necessário para torná-la mais parecida com os dois últimos conjuntos de modelos listados acima?

goodguys_activate
fonte
Graças @svidgen para a sugestão para postar aqui em vez de Programmers.SE
goodguys_activate
Nota: Recebi esse feedback ao fazer esta pergunta: It may seem you are interested in cluster analysis, but the problem with real-life distributions is they are nearly continuous, and hence the straightforward clusterization won't apply.
goodguys_activate
Eu pareço ter encontrado algo muito semelhante ao que eu preciso ... chamado binning data: msdn.microsoft.com/en-us/magazine/dn342876.aspx
goodguys_activate
Sim, migre a pergunta (e inclua sua melhor explicação nos comentários, se possível).
goodguys_activate
Procure lacunas na distribuição de renda, se tiver sorte, poderá encontrar picos (um tanto artificiais) que poderão ser usados ​​como colchetes. Provavelmente isso funciona relativamente bem para rendimentos mais baixos.
Marc Claesen

Respostas:

18

A análise de cluster com uma única variável faz todo o sentido sempre que houver alguma dimensão na qual os valores possam ser organizados. Pode ser uma escala de medição , tempo ou espaço .

Dados os dados ordenados em alguma escala de medição , pode haver interesse em procurar quebras relativas em uma distribuição de frequência (antimodos, em uma terminologia).

Nota de cautela: No entanto, as quebras que definem caixas que são, ou que podem parecer arbitrárias, são amplamente evitadas em várias áreas da ciência estatística, e há uma preferência ampla e marcada pelo descarte com intervalos iguais e, muitas vezes, por evitar o descarte completamente, quando possível . Isso é em parte uma questão de gosto, em parte uma das convenções: as práticas mudaram à medida que fica mais fácil armazenar conjuntos de dados em sua totalidade.

Uma série temporal pode ser dividida em feitiços, épocas, períodos, o que for, idealmente com diferenças relativamente pequenas dentro das sub-séries e diferenças relativamente grandes entre as sub-séries. O mesmo problema surge para o espaço sempre que uma única dimensão espacial (horizontal ou vertical) deve ser subdividida. Nas ciências geológicas e outras, isso é frequentemente estudado sob o título de zonação.

Observe que qualquer cluster formal sempre deve ser acompanhado de plotagem apropriada dos dados (por exemplo, usando um gráfico de pontos ou quantis ou linhas), o que de fato pode deixar claro que as quebras são óbvias (para que o cluster formal seja meramente decorativo) ou que não existem quebras convincentes (para que o agrupamento formal possa ser inútil).

Considere um exemplo de brinquedo de valores ordenados por magnitude:

    14 15 16 23 24 25 56 57 58 

onde é evidente que um agrupamento de três grupos

    14 15 16 | 23 24 25 | 56 57 58 

é sensato. Se a ordem está nos próprios valores, no tempo ou no espaço, os dados sempre podem ser dispostos em uma dimensão, o que confere uma estrutura especial ao problema. Assim, embora métodos de agrupamento mais gerais possam ser usados, essa estrutura especial idealmente deve ser explorada.knk-1k-1=2n-1(n-1k-1)k2n-1n

O problema pode ser preciso (Fisher 1958; Hartigan 1975), colocando marcadores para minimizar, para um determinado número de grupos, a

soma sobre grupos de variabilidade em torno de centros de grupo.

Uma soma de desvios quadrados das médias de grupo surgirá como a possibilidade mais óbvia. A soma dos desvios absolutos das medianas do grupo e outras medidas pode muito bem ser considerada.

Hartigan (1975) mostrou como uma abordagem de programação dinâmica torna essa computação simples e apresenta o código Fortran. Uma implementação Stata (Cox 2007) group1ddeve ser instalada a partir do SSC.

Cox, NJ 2007. GROUP1D: módulo Stata para agrupar ou agrupar em uma dimensão. http://ideas.repec.org/c/boc/bocode/s456844.html

Fisher, WD 1958. No agrupamento para máxima homogeneidade. Journal, American Statistical Association 53: 789-98.

Hartigan, JA 1975. Algoritmos de agrupamento. Nova York: John Wiley. Ch.6.

Postscript Essa abordagem parece coincidir com a primeira parte da pergunta específica. Eu a proponho geralmente porque acho que a formulação é de algum interesse geral (e porque foi fácil para mim reciclar parte da documentação de Cox 2007). Mas se o objetivo específico é comparar uma distribuição de renda com uma distribuição uniforme de referência, não vejo que o binning tenha algum papel a desempenhar. Esse é um problema padrão na economia, para o qual as curvas de Lorenz e as medidas de desigualdade são os pontos de partida. Em essência, você pode comparar quantil a quantil ou ponto percentual a ponto percentual.

Nick Cox
fonte
1

Dê uma olhada no Jenks Natural Break:

https://en.wikipedia.org/wiki/Jenks_natural_breaks_optimization

Eu acho que é o que você precisa, e há implementações em vários idiomas.

ftfarias
fonte
5
Embora possa não ser imediatamente evidente, esta é precisamente a sugestão de Nick Cox de que "uma soma de desvios quadrados das médias de grupo passará à mente como a possibilidade mais óbvia". Ele estava sendo mais geral do que isso em parte (suspeito) porque, para as rendas, essa será uma solução ruim: geralmente é melhor executar o cálculo em termos das rendas de log.
whuber