FamilyEngine — nupcialidade e fecundidade
Arquivo: persona_db/engines/family.py
Constantes de calibração
| Constante | Valor | Significado |
|---|---|---|
P_CASAMENTO_ALGUM_DIA | 0,72 | fração que se casa ao menos uma vez |
P_DIVORCIO | 0,21 | taxa de referência de divórcio |
P_SEGUNDO_CASAMENTO | 0,38 | recasamento após divórcio ou viuvez |
SAME_CLASS_PROB | 0,58 | homogamia de classe |
SAME_EDU_PROB | 0,55 | homogamia educacional |
SAME_RELIGION_PROB | 0,61 | homogamia religiosa |
1. Hazard de primeiro casamento
Curva gaussiana por idade e sexo:
| Sexo | pico | ||
|---|---|---|---|
| masculino | 30,0 | 6,0 | 0,12 |
| feminino | 27,0 | 5,0 | 0,13 |
first_marriage_age(sex) devolve None para os 28% que nunca se casam e, caso contrário, uma
idade (homens) ou (mulheres), limitada ao intervalo
[16, 55] anos.
2. Homogamia
engine.spouse_class("C1") # 58% "C1"; senão, classe adjacente
engine.homogamy_age_diff() # |N(2,5; 4,2²)| anos de diferença
O cônjuge nunca "salta" mais de uma posição na ordem A → B1 → B2 → C1 → C2 → D_E.
3. Fecundidade
| Classes | |
|---|---|
| A, B1, B2 | 1,4 |
| C1 | 1,9 |
| C2, D_E | 2,6 |
Modificadores somam-se a antes do sorteio: doenca, divorcio e superior (ensino
superior tipicamente reduz a fecundidade esperada).
engine.children_count("C2", {"superior": -0.6})
4. Divórcio (logístico)
A probabilidade final é limitada a 0,9. Note o acoplamento explícito com outros motores:
antecedentes criminais do cônjuge (CriminalEngine) e transtorno mental (HealthEngine) elevam o
risco; filhos pequenos e religiosidade alta protegem.
5. Ciclo de vida afetiva
engine.union_lifecycle(sex="feminino", class_label="B2")
# {"casou": True, "primeiro_casamento_idade": 26.4, "conjuge_classe": "B2", "divorcio": False, …}
É o atalho usado por gen_08_relacionamentos para montar, de uma vez, namoro → casamento →
(eventual) divórcio → recasamento, preservando a ordem cronológica.
6. Mortalidade auxiliar
death_likelihood(age, sex) é uma aproximação grosseira usada em simulações de parentes
ascendentes (que não passam pelo pipeline completo):
| Faixa | Probabilidade |
|---|---|
| < 5 anos | 0,008 |
| 5–39 | |
| 40–69 | |
| ≥ 70 |
Homens recebem multiplicador 1,15 e o resultado é limitado a 0,99.
Onde isso aparece no schema
relacionamento, namoro, casamento, divorcio, uniao_estavel, filho,
guarda_compartilhada, pensao_alimenticia, familia, membro_familia, parentesco,
arvore_genealogica.