Voltar à página inicial
Documentação Metodológica

Análise Computacional do
Sofrimento Mental

Modelagem estatística · Inferência bayesiana · Python 3.11 · IRP
Amostra 1.357 entrevistas
Período out/2024 — mar/2026
Cidades 83 municípios · 12 países
CAAE 78783724.0.0000.0332
Ambiente Python 3.11

Coleta de Dados

Os dados foram coletados por meio de entrevistas estruturadas conduzidas por 197 entrevistadores treinados, distribuídos por 83 municípios dos estados do Paraná, São Paulo, no Brasil, nos países Chile, China, Mongólia, Coréia do Sul, Catar, Vietnã, Cambodja além das regiões do Tibet e alguns moradores do Congo, Nigéria, Paquistão e Bangladesh. O protocolo de campo incluiu etapas de aproximação institucional — contato prévio com secretarias municipais de saúde e autorização de equipes de psicologia e psiquiatria — seguidas da aplicação do instrumento nos próprios locais de atendimento.

Os participantes foram recrutados em Unidades Básicas de Saúde (UBS), hospitais, clínicas particulares, Centros de Atenção Psicossocial (CAPS) e instiuições especializadas em Saúde Mental, distribuídos em 83 municípios de 12 países. Foram incluídos indivíduos com idade igual ou superior a 12 anos em acompanhamento psicológico e/ou médico, bem como usuários de serviços públicos de atenção primária e rede socioassistencial. A participação foi precedida do Termo de Consentimento Livre e Esclarecido (TCLE); no caso de menores ou incapazes do Termo de Assentimento Livre e Esclarecido (TCLE), e o responsável legal assinou o termo correspondente.

832
entrevistas Brasil (2024/2026)
1.357
total acumulado até mar/2026
428
transtornos mapeados no DSM-5 TR
178
variáveis

O formulário de entrevista foi fundamentado no modelo biopsicossocial proposto por Engel (1977) com acréscimo e melhorias sobre o Histórico de Saúde e Social, organizando determinantes em oito eixo: identificação, queixa principal, histórico de saúde, biológico, psicológico, social, composição familiar e histórico social, — extraídos dos critérios do DSM-5 TR. Essa concepção evita a redução do fenômeno clínico a marcadores exclusivamente médicos, incorporando variáveis de contexto comunitário, rede de apoio e exposição a eventos adversos, reconhecidos como determinantes relevantes na gênese do sofrimento mental.

Pré-processamento e Cálculo Temporal

O pré-processamento dos dados foi conduzido como um pipeline estruturado de machine learning supervisionado, com etapas sequenciais de limpeza, engenharia de atributos, normalização e seleção de variáveis. O ponto de partida foram registros brutos com alta heterogeneidade semântica e estrutural — categorias inconsistentes, campos livres de sintomas, escalas mistas e valores ausentes — que precisaram ser transformados em um vetor de features comparável entre todos os participantes e contextos de coleta.

A engenharia de atributos temporais envolveu a decomposição da duração autorreferida em componentes discretos (anos, meses, dias) e sua projeção em um espaço contínuo normalizado, com posterior derivação de variáveis de segunda ordem como índices de cronicidade e razões de progressão. Variáveis categóricas foram submetidas a encoding supervisionado — target encoding para categorias de alta cardinalidade e one-hot para variáveis nominais de baixa cardinalidade — enquanto variáveis ordinais do tipo Likert foram tratadas como contínuas após verificação de distribuição.

pipeline — feature engineering (Python · pandas + sklearn)
# Normalização para escala [0, 100] com direção do efeito preservada from sklearn.preprocessing import MinMaxScaler from sklearn.pipeline import Pipeline import pandas as pd pipeline = Pipeline([ ('imputer', SimpleImputer(strategy='median')), ('scaler', MinMaxScaler(feature_range=(0, 100))), ('selector', SelectKBest(chi2, k='all')) ])
variáveis protetivas são invertidas antes do scaling: x_inv = 100 − x

O tratamento de dados faltantes seguiu análise de mecanismo de ausência (MCAR, MAR, MNAR). Variáveis com proporção de missing superior ao limiar definido por análise de completude foram removidas do espaço de features. Para variáveis com ausência residual, adotou-se imputação por moda (categóricas) ou mediana (contínuas), estratégia robusta a distribuições assimétricas frequentes em dados clínicos. A multicolinearidade foi avaliada sistematicamente via Fator de Inflação da Variância (VIF), com limiar de corte em VIF = 5.

auditoria — detecção de multicolinearidade (Python · statsmodels)
# Cálculo iterativo do VIF para seleção de features from statsmodels.stats.outliers_influence import variance_inflation_factor def drop_high_vif(X, threshold=5.0): while True: vif = [variance_inflation_factor(X.values, i) for i in range(X.shape[1])] max_vif = max(vif) if max_vif < threshold: break drop_col = X.columns[vif.index(max_vif)] X = X.drop(columns=[drop_col]) return X
variáveis com correlação > 0.80 entre si também foram avaliadas para consolidação ou remoção

Classificação Diagnóstica

As categorias originais fornecidas por pacientes ou profissionais de saúde foram refinadas computacionalmente por correspondência de termos-chave extraídos tanto do campo estruturado Categoria quanto da descrição livre de Sintomas. Esse procedimento de normalização semântica reduziu a fragmentação terminológica e permitiu o agrupamento consistente dos indivíduos em seis grupos diagnósticos alinhados à literatura internacional:

G01
Anxiety Disorders
G02
Obsessive-Compulsive Disorder
G03
Eating Disorders
G04
Mood Disorders
G05
Schizophrenia
G06
Personality Disorders
G07
Other (residual)

Registros que não se enquadraram em nenhum dos seis grupos principais foram incluídos em uma categoria residual denominada Other. Apenas grupos com no mínimo cinco participantes foram considerados elegíveis para a etapa de modelagem estatística, critério que garante a estabilidade mínima necessária para o ajuste distribucional.

A análise bivariada de triagem utilizou testes qui-quadrado ou exato de Fisher para variáveis categóricas e testes não paramétricos (Mann-Whitney ou Kruskal-Wallis) para variáveis contínuas. Variáveis com associação estatisticamente significativa (p < 0,05) ou relevância teórica foram candidatas para inclusão nos modelos multivariados subsequentes.

Modelagem Estatística da Idade de Início

Os valores de x₀ — idade de início — são tratados como variáveis contínuas. Para cada grupo diagnóstico, ajusta-se uma distribuição normal (Gaussiana) pelo método de máxima verossimilhança (MLE), que estima os parâmetros μ e σ maximizando a probabilidade conjunta das observações:

eq. 3 — função de densidade de probabilidade (PDF)
f(x | μ, σ) = (1 / σ√2π) · exp(−(x − μ)² / 2σ²)
estimadores MLE: μ̂ = x̄ · σ̂ = √[ Σ(xᵢ − x̄)² / n ]

Cada curva de densidade resultante representa a distribuição empírica-teórica da idade de surgimento dentro de cada grupo, permitindo comparações inter-grupo e identificação de janelas temporais de maior vulnerabilidade. A construção dos modelos foi realizada inteiramente em Python, com os ajustes distribucionais executados via scipy.stats.norm.fit().

Para estimar a contribuição independente dos determinantes ao desfecho clínico, foram ajustados modelos de regressão logística multinomial, considerando os três níveis do desfecho: ausência de diagnóstico, diagnóstico clínico geral e diagnóstico em saúde mental. A multicolinearidade foi monitorada pelo Fator de Inflação da Variância (VIF), com ponto de corte em VIF = 5 para exclusão ou ajuste de variáveis redundantes.

eq. 4 — log-verossimilhança para MLE
ℓ(μ, σ) = −n·ln(σ) − n/2·ln(2π) − Σ(xᵢ−μ)² / 2σ²
maximizada analiticamente; implementação via scipy.stats em Python 3.11
entrada
Planilha de Pacientes
eq. 1
Conversão temporal → t (anos decimais)
eq. 2
Estimação de x₀ = idade_atual − t
controle de qualidade
x₀ ≥ 0 e consistente?
→ não: registro descartado · sim: continua
nlp + regex
Normalização semântica de categorias
agrupamento
Atribuição a grupo diagnóstico G01–G07
critério mínimo
n ≥ 5 por grupo?
→ não: grupo excluído da modelagem
eq. 3 + MLE
Ajuste Normal: estimação de μ̂, σ̂
saída
Curvas PDF por grupo · Relatório IRP

Índice de Risco Psicossocial (IRP)

O IRP é um instrumento de mensuração de risco em saúde mental desenvolvido a partir dos dados coletados. Sua estrutura organiza os determinantes em seis domínios operacionais: Estrutural (SE), Traumático (ST), Estigma e Acesso (SA), Internalizante (SI), Funcional (SF) e Protetivo (SP). Os cinco primeiros compõem o bloco de risco; o domínio protetivo atua como modulador negativo sobre o escore final.

Cada domínio é calculado como composição ponderada de suas variáveis constituintes, com pesos β derivados dos coeficientes padronizados da regressão logística multinomial — garantindo que o índice reflita a contribuição relativa de cada determinante controlando o efeito das demais variáveis. A agregação intra-domínio segue uma função de soma ponderada normalizada, com termos de interação capturados via produto de variáveis teoricamente relevantes:

eq. 5 — composição ponderada por domínio
D = [ Σᵢ (βₖᵢ · xᵢ) + Σᵢⱼ (γᵢⱼ · xᵢ · xⱼ) ] / Σᵢ |βₖᵢ|
onde β são os coeficientes do modelo multinomial · γ capturam interações de segunda ordem · k ∈ {SE, ST, SA, SI, SF, SP}
eq. 6 — escore global IRP com modulação protetiva
IRP = φ( Σₖ wₖ · Dᵣᵢₛₖ ) · ψ(DSP) ∈ [0, 100]
φ(·) = função de normalização ao intervalo unitário · ψ(·) = fator de amortecimento monotonicamente decrescente em D_SP · maior IRP = maior risco acumulado ajustado

Essa formulação captura simultaneamente a acumulação de vulnerabilidades, as interações não lineares entre determinantes e o efeito amortecedor de fatores protetivos — rede de apoio, vínculos comunitários, acesso a serviços — mantendo o escore em escala interpretável. A variável desfecho foi operacionalizada em três níveis: ausência de diagnóstico, diagnóstico clínico geral e diagnóstico em saúde mental, utilizada como proxy de risco clínico em modelagem multinomial.

Adicionalmente, foram exploradas interações entre variáveis com base em plausibilidade teórica, permitindo identificar combinações de fatores associadas a aumento não linear do risco — reforçando a concepção do risco como fenômeno sistêmico, em que os determinantes operam em rede e não de forma isolada.

Validação Interna

A validação interna do IRP foi realizada por dois procedimentos complementares. O primeiro consiste em reamostragem bootstrap com 1.000 iterações, permitindo estimar a distribuição empírica dos coeficientes do modelo e avaliar sua estabilidade sem pressupostos paramétricos adicionais. O segundo é validação cruzada k-fold com k = 5, que particiona o conjunto de dados em cinco subconjuntos, usando quatro para treino e um para teste em rotação.

eq. 6 — área sob a curva ROC (AUC)
AUC = ∫₀¹ TPR(FPR⁻¹(t)) dt
métrica de discriminação entre níveis do desfecho · AUC → 1 indica separabilidade perfeita

A capacidade discriminativa foi avaliada pela área sob a curva ROC (AUC), sensibilidade e especificidade para cada nível do desfecho. A classificação do IRP em faixas de risco — muito baixo, baixo, moderado, alto e muito alto — foi definida com base na distribuição empírica dos escores combinada a critérios de utilidade clínica, permitindo a aplicação do índice em triagem e priorização de casos em contextos reais de atendimento.

Implementação Computacional

Todo o pipeline — da ingestão e limpeza dos dados ao ajuste dos modelos e geração de visualizações — foi implementado em Python 3.11. Nenhuma dependência de ferramentas proprietárias foi introduzida; o ambiente é completamente reprodutível a partir de um arquivo de requisitos padrão. As legendas e rótulos de todos os artefatos gráficos foram produzidos em inglês, visando padronização para publicação internacional.

pandas ingestão, limpeza, recodificação e manipulação estrutural dos dados
scipy.stats ajuste de distribuições normais via MLE · testes estatísticos bivariados
statsmodels regressão logística multinomial · estimação de coeficientes e VIF
scikit-learn validação cruzada k-fold · métricas AUC · curvas ROC
numpy operações vetorizadas · bootstrap · álgebra linear auxiliar
matplotlib geração de curvas PDF por grupo diagnóstico · visualizações exportáveis

O banco de dados estruturado foi desenvolvido especificamente para o estudo, com posterior aplicação de inteligência artificial para identificação de padrões e tendências nos dados coletados. A pesquisa foi submetida à Plataforma Brasil e aprovada pelo Comitê de Ética sob número CAAE 78783724.0.0000.0332, em conformidade com as diretrizes nacionais e internacionais para pesquisa com seres humanos.