Pular para o conteúdo principal

SocioeconomicEngine — classe, escolaridade e renda

Arquivo: persona_db/engines/socio.py

1. Classe social e mobilidade intergeracional​

As seis classes do critério ABEP (A, B1, B2, C1, C2, D_E) têm distribuição marginal:

π=(0,03,  0,07,  0,15,  0,22,  0,25,  0,28)\pi = (0{,}03,\; 0{,}07,\; 0{,}15,\; 0{,}22,\; 0{,}25,\; 0{,}28)

Quando a classe dos pais é conhecida, o sorteio usa a linha correspondente da matriz estocástica P6×6P_{6\times 6}, com diagonal dominante (persistência intergeracional):

Pais ↓ / Filho →AB1B2C1C2D_E
A0,620,200,100,050,020,01
B10,080,550,220,100,030,02
B20,030,100,580,200,060,03
C10,010,040,120,560,180,09
C20,010,020,060,160,570,18
D_E0,010,010,040,100,240,60
SocioeconomicEngine.sample_class(rng, parent_class="C2") # → "C2" em ~57% dos casos
SocioeconomicEngine.sample_class(rng, parent_class=None) # usa a marginal π

Toda linha soma exatamente 1 — há um teste unitário dedicado a isso.

2. Escolaridade (logit multinomial)​

A utilidade latente de cada nível k∈{fundamental,meˊdio,superior,poˊs}k \in \{\text{fundamental}, \text{médio}, \text{superior}, \text{pós}\} é:

undefined