English

Teste de Hosmer-Lemeshow

Modelos e regressão · distribuição de referência: χ²(g−2)

Quando usar

Verificar se as probabilidades previstas por uma regressão logística batem com as frequências observadas, agrupando os casos por faixa de risco.

Hipótese nula

O modelo se ajusta bem: as frequências observadas e previstas coincidem.

Pressupostos

Estatística

HL = \sum_{j=1}^{g} \dfrac{(O_j - E_j)^2}{E_j\,(1 - E_j / n_j)}

Como reportar

χ²(8) = 6,3; p = 0,61: sem evidência de mau ajuste

No R e no Python

R
library(ResourceSelection)
hoslem.test(modelo$y, fitted(modelo), g = 10)
Python
# sem função no statsmodels: agrupe por decis de p_hat
g = pd.qcut(p_hat, 10, labels=False)
t = pd.DataFrame({"y": y, "p": p_hat, "g": g}).groupby("g").agg(o=("y", "sum"), e=("p", "sum"), n=("y", "size"))
HL = ((t.o - t.e)**2 / (t.e * (1 - t.e / t.n))).sum()
p = stats.chi2.sf(HL, 10 - 2)

No Python, stats é scipy.stats e np é numpy.

Variantes e alternativas

Onde fica no catálogo

Modelos e regressão. Testes feitos dentro de um modelo ajustado: se um coeficiente importa, se o modelo explica algo e se os resíduos cumprem os pressupostos.

Na árvore de decisão

  1. O que você quer fazer? Testar um modelo de regressão
  2. O que você quer testar? O ajuste de uma regressão logística

Abrir a árvore de decisão