# Correções aplicadas nesta versão de trabalho

Esta versão foi preparada a partir do arquivo `ssmodels.zip` enviado pelo usuário.

## Correções principais

1. Correção do sinal de `loglik` em `HeckmanCL`, `HeckmanGe`, `HeckmanBS`, `HeckmanSK` e `HeckmantS`.
2. Correção dos métodos `summary.*`, que usavam `object$NObs` embora os objetos guardem `nObs`.
3. Reescrita de `extract_model_components()` para padronizar a variável de seleção em 0/1, permitir fatores binários e tratar `NA` no desfecho apenas para observações não selecionadas.
4. Correção de `twostep()` e simplificação de `HCinitial()` para usar a extração comum.
5. Correção do cálculo de `delta` no método de dois passos: foi usado o preditor linear probit em vez da probabilidade ajustada.
6. Reestruturação de `HeckmanGe()` usando diretamente as matrizes `Msigma` e `Mrho`, com inicialização correta em `log(sigma)` e `atanh(rho)`.
7. Reescrita de `HeckmantS()` com parametrização irrestrita: `sigma = exp(eta_sigma)`, `rho = tanh(eta_rho)` e `df = 2 + exp(eta_df)`.
8. Inclusão de inversão robusta da Hessiana por `tryCatch()` e `MASS::ginv()` como fallback.
9. Melhorias de estabilidade em `HeckmanSK()` usando `pnorm(..., log.p = TRUE)` e `dnorm(..., log = TRUE)`.
10. Validação de positividade do desfecho em `HeckmanBS()` para observações selecionadas.

## Observação

Não foi executado `R CMD check` neste ambiente, pois o R não está instalado. Recomenda-se executar localmente:

```r
R CMD build ssmodels
R CMD check ssmodels_1.0.2.tar.gz --as-cran
```

## Atualização adicional: HeckmanSK com gradiente validado e testes seguros

- A função `HeckmanSK()` agora retorna o componente `gradient`, correspondente ao vetor escore analítico avaliado em `coefficients`.
- Foi adicionado o script `inst/validation/validar_gradiente_HeckmanSK_MEPS2001_seguro.R`, que valida o gradiente analítico com `numDeriv::grad()` no banco `MEPS2001` e em pequenas perturbações numericamente seguras.
- Foi adicionado o teste `tests/testthat/test-HeckmanSK-gradient.R`, com `skip_on_cran()`, para comparar o gradiente analítico da função com o gradiente numérico no ponto estimado.
- A versão do pacote foi atualizada para `1.0.3`.
