Capítulo 6


Método Jackknife



“Natural selection is a mechanism for generating an exceedingly high degree of improbability.”



– Ronald Aylmer Fisher, 1983



6.1. Introdução


Desenvolvido por Maurice Quenouille em 1949 (Quenouille 1949) e posteriormente aperfeiçoado por John Tukey em 1958 (Tukey 1958), o método jackknife constitui uma das abordagens mais antigas de reamostragem para avaliação da variabilidade de estimadores estatísticos. Tal como o método bootstrap, o jackknife busca obter, por meios computacionais, estimativas do viés e do erro-padrão de uma estatística a partir da amostra observada, sem a necessidade de conhecimento explícito sobre a distribuição da população de origem. O conceito fundamental por trás do jackknife reside na construção de subconjuntos da amostra original — as chamadas amostras jackknife. No caso do jackknife clássico (ou de exclusão simples), essas amostras são obtidas pela exclusão sucessiva de uma única observação por vez. Dada uma amostra de tamanho \(n\), o método gera \(n\) subamostras de tamanho \(n-1\), cada uma contendo todas as observações, exceto a \(i\)-ésima, para \(i = 1, \dots, n\). Para cada uma dessas amostras reduzidas, calcula-se o estimador de interesse, produzindo uma coleção de estimativas denotadas por \(\hat{\theta}_{(1)}, \hat{\theta}_{(2)}, \dots, \hat{\theta}_{(n)}\). Essas são denominadas estimativas jackknife.


6.2. Amostras Jackknife


As amostras jackknife são definidas por meio da exclusão sistemática de \(k\) observações do conjunto amostral original \(\mathbf{x} = (x_1, x_2, \dots, x_n)\), com o propósito de construir subamostras a partir das quais se obtêm estimativas parciais da estatística de interesse. Tais estimativas são então utilizadas para inferir propriedades inferenciais, como o viés e o erro-padrão, do estimador calculado na amostra completa. O caso mais comum e mais utilizado na prática corresponde à exclusão de uma única observação por vez, isto é, \(k = 1\). Neste contexto, denominado jackknife de exclusão simples (leave-one-out jackknife), a \(i\)-ésima amostra jackknife, denotada por \(\mathbf{x}_{(i)}\), é obtida pela remoção da \(i\)-ésima unidade da amostra original, conforme ilustrado na Figura 6.1.


Figura 6.1.. Ilustração da seleção de amostras jackknife.

Fonte: Schematic of Jackknife Resampling | Greenkiwibird, 2023.


Definição 6.1. (Amostras Jackknife - Miller 1974; Efron 1982; Shao e Tu 2012). Seja \(\mathbf{x} = (x_1, x_2, \dots, x_n)\) uma amostra de tamanho \(n\), composta por observações independentes e identicamente distribuídas. No método jackknife clássico, com exclusão de uma única observação por vez (leave-one-out jackknife), a \(i\)-ésima amostra jackknife é definida por:

\[\begin{align}\\ \mathbf{x}_{(i)} = (x_1, x_2, \dots, x_{i-1}, x_{i+1}, \dots, x_n)\\\\ \end{align}\]

para \(i = 1, 2, \dots, n\). Neste caso, cada subamostra \(\mathbf{x}_{(i)}\) contém \(n - 1\) observações, e o conjunto formado pelas \(n\) subamostras jackknife constitui a base para o cálculo das estimativas jackknife, denotadas por \(\hat{\theta}_{(1)}, \hat{\theta}_{(2)}, \dots, \hat{\theta}_{(n)}\), obtidas pela aplicação da estatística de interesse a cada \(\mathbf{x}_{(i)}\).


Exemplo 6.1. Suponha que uma amostra simples aleatória contenha as seguintes observações relativas ao tempo (em minutos) gasto por 5 indivíduos para completar uma tarefa:

\[\begin{align}\\ \mathbf{x} = (12, 15, 14, 10, 13)\\\\ \end{align}\]

O objetivo é construir as amostras jackknife a partir da amostra original, removendo sistematicamente uma observação por vez, conforme a definição formal do método jackknife. Assim, as cinco subamostras jackknife, cada uma contendo \(n-1 = 4\) observações, são descritas por:

\[\begin{align}\\ \mathbf{x}_{(1)} &= (15, 14, 10, 13) \\\\ \mathbf{x}_{(2)} &= (12, 14, 10, 13) \\\\ \mathbf{x}_{(3)} &= (12, 15, 10, 13) \\\\ \mathbf{x}_{(4)} &= (12, 15, 14, 13) \\\\ \mathbf{x}_{(5)} &= (12, 15, 14, 10) \\\\ \end{align}\]

O Código 6.1 apresenta, em ambiente R, uma rotina que implementa a geração das amostras jackknife descritas acima.


Código 6.1. Implementação em R para geração das amostras jackknife a partir da exclusão sistemática de uma observação em cada subamostra.

# ------------------------------
# Seleção de Amostras Jackknife
# ------------------------------

# --- 1. Definir a amostra original ---

x                           <- c(12, 15, 14, 10, 13)

# --- 2. Função para gerar as amostras jackknife (leave-one-out) ---

gen_jackknife_samples       <- function(original_sample)
{
  n                         <- length(original_sample)
  jackknife_samples         <- vector("list", n)
  
  for (i in 1:n) 
  {
    jackknife_samples[[i]]  <- original_sample[-i]
  }
  
  return(jackknife_samples)
}

# --- 3. Gerar as amostras jackknife ---

jackknife_samples           <- gen_jackknife_samples(x)

# --- 4. Exibir as amostras jackknife ---

for(i in 1:length(jackknife_samples)) 
{
  cat("Amostra Jackknife nº", i, ": ", jackknife_samples[[i]], "\n")
}
Amostra Jackknife nº 1 :  15 14 10 13 
Amostra Jackknife nº 2 :  12 14 10 13 
Amostra Jackknife nº 3 :  12 15 10 13 
Amostra Jackknife nº 4 :  12 15 14 13 
Amostra Jackknife nº 5 :  12 15 14 10 

\[\small \begin{align}\\ \tag*{$\blacksquare$}\\\\\\ \end{align}\]

Observação 6.1. Na Definição 6.1, destaca-se que o tamanho de cada subamostra jackknife é \(m = n - k\), onde \(n\) representa o tamanho da amostra original e \(k\) o número de observações removidas em cada subamostra. O total de subamostras distintas possíveis é dado por \(\binom{n}{k}\), correspondente ao número de combinações de \(k\) elementos extraídos de um conjunto de \(n\) unidades. No caso particular mais utilizado, em que \(k = 1\), obtém-se \(n\) subamostras distintas, denotadas por \(\{\mathbf{x}_{(i)}\}_{i=1}^n\), cada uma construída a partir da remoção sistemática da \(i\)-ésima observação da amostra original. Trata-se de um procedimento estritamente determinístico, pois não envolve qualquer elemento de aleatoriedade na geração das subamostras. Como consequência, o número de iterações é fixo e igual a \(n\), o que confere ao método previsibilidade, simplicidade de implementação e estabilidade computacional.


6.3. Replicação Jackknife


A construção das estimativas jackknife está fundamentada na aplicação sistemática da estatística de interesse a subamostras geradas a partir da remoção de um subconjunto fixo de observações da amostra original.A ideia central consiste em calcular, para cada subamostra, a mesma função estatística originalmente aplicada ao conjunto completo de dados, produzindo assim uma coleção de estimativas parciais. Tais estimativas, denominadas replicações jackknife, fornecem uma base empírica para inferência sobre o parâmetro populacional de interesse.


Definição 6.2. (Replicações Jackknife - Miller 1974; Efron 1982; Shao e Tu 2012).. Seja \(\mathbf{x} = (x_1, x_2, \dots, x_n)\) uma amostra de tamanho \(n\), e seja \(\hat{\theta} = s(\mathbf{x})\) uma estatística que estima um parâmetro populacional \(\theta\), onde \(s(\cdot)\) denota uma função dos dados. No contexto do método jackknife com exclusão de uma observação por vez (isto é, \(k = 1\)), define-se a \(i\)-ésima replicação jackknife como:

\[\begin{align}\\ \hat{\theta}_{(i)} = s(\mathbf{x}_{(i)}) = s(x_1, x_2, \dots, x_{i-1}, x_{i+1}, \dots, x_n), \, \, i = 1, 2, \dots, n\\\\ \end{align}\]

onde \(\mathbf{x}_{(i)}\) é a subamostra resultante da remoção da \(i\)-ésima observação da amostra original. A coleção \(\{ \hat{\theta}_{(i)} \}_{i=1}^{n}\) constitui o conjunto de replicações jackknife, utilizado para a quantificação do viés, do erro-padrão e da sensibilidade da estimativa \(\hat{\theta}\) em relação às unidades amostrais.


Exemplo 6.2. Suponha que um pesquisador esteja analisando os níveis de colesterol (em mg/dL) de um grupo de 6 pacientes, com o objetivo de estimar a média populacional desse indicador em uma determinada população clínica. Os valores observados são:

\[\begin{align}\\ \mathbf{x} = (200,\ 190,\ 220,\ 210,\ 205,\ 215)\\\\ \end{align}\]

Deseja-se aplicar o método jackknife para obter as replicações da média amostral, utilizando subamostras com uma observação removida por vez (isto é, \(k = 1\)). Para cada subamostra \(\mathbf{x}_{(i)}\), calcula-se a média correspondente, resultando nas replicações jackknife associadas à estatística \(\hat{\theta} = \bar{x}\). O Código 6.2 apresenta, em ambiente R, uma rotina que descreve esse procedimento.


Código 6.2. Implementação, em R, do cálculo das replicações jackknife para estimar a média dos níveis de colesterol, a partir das subamostras obtidas pela exclusão sistemática de observações.

# ----------------------------------
# Cálculo das Replicações Jackknife
# ----------------------------------

# --- 1. Definir a amostra original ---

x                           <- c(200, 190, 220, 210, 205, 215)

# --- 2. Função para gerar replicações jackknife da média ---

jackknife_means             <- function(x)
{
  n                         <- length(x)
  theta_i                   <- numeric(n)  # vetor para armazenar replicações
  
  for (i in 1:n) 
  {
    x_i                     <- x[-i]       # remove a i-ésima observação
    theta_i[i]              <- mean(x_i)   # calcula a média da subamostra
  }
  
  return(theta_i)
}


# --- 3. Obter replicações jackknife ---

replicacoes_jackknife       <- jackknife_means(x)

# --- 4. Resultados ---

for (i in 1:length(replicacoes_jackknife))
{
  cat("Replicação Jackknife", i, ":", replicacoes_jackknife[i], "\n")
}
Replicação Jackknife 1 : 208 
Replicação Jackknife 2 : 210 
Replicação Jackknife 3 : 204 
Replicação Jackknife 4 : 206 
Replicação Jackknife 5 : 207 
Replicação Jackknife 6 : 205 

\[\small \begin{align}\\ \tag*{$\blacksquare$}\\\\\\ \end{align}\]

6.4. Pseudovalor Jackknife


A partir das replicações jackknife, pode-se definir uma nova quantidade estatística, denominada pseudovalor jackknife, concebida para quantificar a contribuição individual de cada observação da amostra à estimativa do parâmetro de interesse. O \(i\)-ésimo pseudovalor é obtido como uma combinação linear entre a estimativa global \(\hat{\theta}\), calculada com base na amostra completa, e a replicação jackknife \(\hat{\theta}_{(i)}\), correspondente à estimativa obtida com a exclusão da \(i\)-ésima unidade amostral. Essa construção atribui pesos proporcionais ao tamanho da amostra e busca expressar, de forma ajustada, o impacto marginal de cada observação na estatística de interesse. Em essência, o pseudovalor jackknife permite reconstituir o valor estimado de \(\theta\) como se cada elemento da amostra estivesse sendo avaliado individualmente quanto à sua influência sobre a estimativa total.


Definição 6.3. (Pseudovalores Jackknife - Miller 1974; Efron 1982; Shao e Tu 2012).. Seja \(\mathbf{x} = (x_1, x_2, \dots, x_n)\) uma amostra de tamanho \(n\), e seja \(\hat{\theta} = s(\mathbf{x})\) uma estimativa de um parâmetro de interesse \(\theta\), obtida a partir de uma função \(s\). Para cada replicação jackknife \(\hat{\theta}_{(i)} = s(\mathbf{x}_{(i)})\), correspondente à exclusão da \(i\)-ésima observação, define-se o \(i\)-ésimo pseudovalor jackknife como:

\[\begin{align}\\ \tilde{\theta}_i = n \hat{\theta} - (n - 1) \hat{\theta}_{(i)}, \,\,\, i = 1, \dots, n\\\\ \end{align}\]

Essa quantidade, em particular, baseia-se nas diferenças ponderadas da estimativa com todas as observações \((\hat\theta)\) e na replicação jackknife \(\left(\hat\theta_{(i)}\right)\). Neste sentido, o estimador pontual jackknife é obtido pela média dos pseudovalores jackknife, isto é,

\[\begin{align}\\ \tilde{\theta}_{\text{jack}} = \frac{1}{n} \sum_{i=1}^{n} \tilde{\theta}_i\\\\ \end{align}\]


Exemplo 6.3. Suponha que um pesquisador deseje estimar a média do tempo de reação (em milissegundos) de um grupo de indivíduos submetidos a um estímulo auditivo. Para tanto, foi coletada a seguinte amostra com os tempos de reação de cinco participantes:

\[\begin{align}\\ \mathbf{x} = (210, 230, 250, 220, 240)\\\\ \end{align}\]

Neste caso, o parâmetro de interesse é a média populacional, estimada pela média amostral:

\[\begin{align}\\ \hat{\theta} = \bar{x} = \frac{1}{5}(210 + 230 + 250 + 220 + 240) = 230\\\\ \end{align}\]

Com o objetivo de aplicar o método jackknife com exclusão de uma observação por vez \((k=1)\), geram-se as seguintes subamostras, juntamente com suas respectivas estimativas parciais, conhecidas como replicações jackknife:

\[\begin{align}\\ \mathbf{x}_{(1)} &= (230, 250, 220, 240) \Rightarrow \hat{\theta}_{(1)} = 235\\\\ \mathbf{x}_{(2)} &= (210, 250, 220, 240) \Rightarrow \hat{\theta}_{(2)} = 230\\\\ \mathbf{x}_{(3)} &= (210, 230, 220, 240) \Rightarrow \hat{\theta}_{(3)} = 225\\\\ \mathbf{x}_{(4)} &= (210, 230, 250, 240) \Rightarrow \hat{\theta}_{(4)} = 232.5\\\\ \mathbf{x}_{(5)} &= (210, 230, 250, 220) \Rightarrow \hat{\theta}_{(5)} = 227.5\\\\ \end{align}\]

A partir dessas replicações, calculam-se os pseudovalores jackknife correspondentes:

\[\begin{align}\\ \tilde{\theta}_1 &= 5 \cdot 230 - 4 \cdot 235 = 1150 - 940 = 210 \\\\ \tilde{\theta}_2 &= 5 \cdot 230 - 4 \cdot 230 = 1150 - 920 = 230 \\\\ \tilde{\theta}_3 &= 5 \cdot 230 - 4 \cdot 225 = 1150 - 900 = 250 \\\\ \tilde{\theta}_4 &= 5 \cdot 230 - 4 \cdot 232.5 = 1150 - 930 = 220 \\\\ \tilde{\theta}_5 &= 5 \cdot 230 - 4 \cdot 227.5 = 1150 - 910 = 240\\\\ \end{align}\]

Por fim, o estimador pontual jackknife é então obtido pela média dos pseudovalores:

\[\begin{align}\\ \tilde{\theta}_{\text{jack}} = \frac{1}{5}(210 + 230 + 250 + 220 + 240) = 230\\\\ \end{align}\]

Neste exemplo, observa-se que o estimador jackknife coincide numericamente com a média amostral original. Contudo, a metodologia permite, além da obtenção de estimativas pontuais, a análise da influência de cada observação individual sobre o valor final da estimativa, ampliando assim a robustez e a confiabilidade das inferências estatísticas. O Código 6.3 apresenta, em ambiente R, uma rotina que descreve os cálculos realizados neste exemplo.


Código 6.3. Implementação, em R, do cálculo do estimador jackknife para a média dos tempos de reação a um estímulo auditivo, com base nas amostras geradas pela técnica de exclusão sistemática.

# -------------------------------
# Cálculo do Estimador Jackknife 
# -------------------------------

# --- 0. Pacotes necessários ---

library(knitr)

# --- 1. Definir a amostra original ---

x                           <- c(210, 230, 250, 220, 240)

# --- 2. Calcular as características da amostra ---

n                           <- length(x)
theta_hat                   <- mean(x)

# --- 3. Cálculo das replicações jackknife ---

theta_hat_i                 <- numeric(n)

for (i in 1:n) 
{
  x_i                       <- x[-i]
  theta_hat_i[i]            <- mean(x_i)
}

theta_hat_i
[1] 235.0 230.0 225.0 232.5 227.5
# --- 4. Cálculo dos pseudovalores jackknife ---

theta_tilde                 <- n * theta_hat - (n - 1) * theta_hat_i
theta_tilde
[1] 210 230 250 220 240
# --- 5. Estimador pontual jackknife (média dos pseudovalores) ---

theta_jack                  <- mean(theta_tilde)

# --- 6. Resultados ---

res                         <- data.frame(row.names = c('Estimativa Amostral',
                                                        'Estimativa Jackknife'),
                                          valores = c(theta_hat, theta_jack))
kable(res, 
      align = 'c', 
      escape = FALSE, 
      format = 'html',
      col.names = c('Valores')) 
Valores
Estimativa Amostral 230
Estimativa Jackknife 230

\[\small \begin{align}\\ \tag*{$\blacksquare$}\\\\\\ \end{align}\]

6.5. Estimativa do Erro-Padrão via Jackknife

O erro-padrão de um estimador representa uma medida essencial da sua variabilidade amostral, refletindo o grau de incerteza associado à estimativa obtida a partir de uma amostra específica. Em termos conceituais, ele quantifica a dispersão esperada do estimador em torno do verdadeiro valor do parâmetro populacional. Entretanto, em certas situações, o cálculo analítico do erro-padrão revela-se inviável ou desconhecido, especialmente quando o estimador possui estrutura complexa ou é baseado em métodos não-paramétricos. Neste sentido, para superar essas limitações, técnicas de reamostragem, como o método jackknife, oferecem uma abordagem robusta e computacionalmente eficiente para estimar o erro-padrão diretamente a partir dos dados observados, sem a necessidade de pressupor uma distribuição paramétrica subjacente.


Definição 6.4 (Estimativa Jackknife do Erro-Padrão - Miller 1974; Efron 1982; Shao e Tu 2012).. Seja \(\mathbf{x} = (x_1, x_2, \dots, x_n)\) uma amostra de tamanho \(n\), e seja \(\hat{\theta} = s(\mathbf{x})\) uma estimativa de um parâmetro de interesse \(\theta\), obtida a partir de uma função \(s\). Para cada \(i = 1, \ldots, n\), denote por \(\hat{\theta}_{(i)}\) a replicação jackknife calculada a partir da amostra com exclusão do \(i\)-ésimo dado, ou seja, sobre \(\{X_1, \ldots, X_{i-1}, X_{i+1}, \ldots, X_n\}\). Defina a média das replicações jackknife por:

\[\begin{align}\\ \hat{\theta}_{(\cdot)} = \frac{1}{n} \sum_{i=1}^n \hat{\theta}_{(i)}\\\\ \end{align}\]

Logo, o estimador do erro-padrão de \(\hat{\theta}\) pelo método jackknife é dado por:

\[\begin{align}\\ \hat{\sigma}_{jack} = \sqrt{\frac{n-1}{n} \sum_{i=1}^n \left(\hat{\theta}_{(i)} - \hat{\theta}_{(\cdot)}\right)^2}\\\\ \end{align}\]


Exemplo 6.4. Suponha que um analista financeiro deseja estimar o retorno médio mensal de uma ação com base em uma amostra de cinco meses consecutivos, cujos retornos observados são \(\mathbf{x} = (0{.}015, 0{.}022, 0{.}018, 0{.}020, 0{.}017)\), expressos em fração decimal. O objetivo é obter uma estimativa do erro-padrão do retorno médio utilizando o método jackknife. Sabe-se que o estimador natural para o retorno médio é a média amostral \(\hat{\theta} = \bar{x}\). Então, aplicando o método jackknife, para cada \(i = 1, \ldots, 5\), calcula-se a média dos retornos excluindo o \(i\)-ésimo mês, gerando as replicações:

\[\begin{align}\\ \hat{\theta}_{(1)} = \frac{0{.}022 + 0{.}018 + 0{.}020 + 0{.}017}{4} = 0{.}0193\\\\ \hat{\theta}_{(2)} = \frac{0{.}015 + 0{.}018 + 0{.}020 + 0{.}017}{4} = 0{.}0175\\\\ \hat{\theta}_{(3)} = \frac{0{.}015 + 0{.}022 + 0{.}020 + 0{.}017}{4} = 0{.}0185\\\\ \hat{\theta}_{(4)} = \frac{0{.}015 + 0{.}022 + 0{.}018 + 0{.}017}{4} = 0{.}0180\\\\ \hat{\theta}_{(5)} = \frac{0{.}015 + 0{.}022 + 0{.}018 + 0{.}020}{4} = 0{.}0188\\\\ \end{align}\]

A partir dessas replicações, obtém-se:

\[\begin{align}\\ \hat{\theta}_{(\cdot)} = \frac{0{.}01925 + 0{.}0175 + 0{.}0185 + 0{.}018 + 0{.}01875}{5} = 0{.}0184\\\\ \end{align}\]

Logo, a estimativa jackknife do erro-padrão do retorno médio é descrita por:

\[\begin{align}\\ \hat{\sigma}_{jack} = \sqrt{\frac{5-1}{5} \sum_{i=1}^5 \left(\hat{\theta}_{(i)} - 0{.}0184\right)^2} = \sqrt{\frac{4}{5} \times 1{.}814 \times 10^{-6}} \approx 0{.}0012.\\\\ \end{align}\]

Portanto, o erro-padrão estimado do retorno médio mensal pelo método jackknife é aproximadamente 0,0012, oferecendo uma medida da variabilidade esperada do retorno médio calculado a partir da amostra observada. O Código 6.4 apresenta, em ambiente R, uma rotina que descreve os cálculos realizados neste exemplo.


Código 6.4. Implementação, em R, do cálculo da estimativa jackknife do erro-padrão para o retorno médio, utilizando as replicações geradas pela técnica de exclusão sistemática.

# -----------------------------------------------
# Cálculo da Estimativa Jackknife do Erro-Padrão
# -----------------------------------------------

# --- 0. Pacotes necessários ---

library(knitr)

# --- 1. Definir a amostra original ---

retornos            <- c(0.015, 0.022, 0.018, 0.020, 0.017)
n                   <- length(retornos)

# --- 2. Cálculo das replicações jackknife

jackknife_replicas  <- sapply(1:n, function(i){mean(retornos[-i])})
round(jackknife_replicas, 5)
[1] 0.01925 0.01750 0.01850 0.01800 0.01875
# --- 3. Média das replicações jackknife ---

theta_bar           <- mean(jackknife_replicas)

# --- 4. Estimativa do erro-padrão pelo método jackknife ---

sigma_jack          <- sqrt((n-1)/n * sum((jackknife_replicas - theta_bar)^2))

# --- 5. Resultados ---

res                         <- data.frame(row.names = c('Média das Replicações',
                                                        'Estimativa Jackknife do Erro-Padrão do Retorno Médio'),
                                          valores = c(round(theta_bar, 5), round(sigma_jack, 5)))
kable(res, 
      align = 'c', 
      escape = FALSE, 
      format = 'html',
      col.names = c('Valores')) 
Valores
Média das Replicações 0.01840
Estimativa Jackknife do Erro-Padrão do Retorno Médio 0.00121

\[\small \begin{align}\\ \tag*{$\blacksquare$}\\\\\\ \end{align}\]

Observação 6.2. Na Definição 6.4, observa-se que, diferentemente da estimativa do erro-padrão obtida por meio do método bootstrap, a expressão correspondente no método jackknife incorpora o fator \((n-1)/n\), em contraste com o fator \(1/(n-1)\) que aparece na formulação bootstrap clássica. Importante notar que \((n-1)/n\) é numericamente superior a \(1/(n-1)\), funcionando, nesse contexto, como um fator de inflação. Tal ajuste é necessário porque os desvios quadráticos computados nas replicações jackknife, da forma \(\left(\hat{\theta}_{(i)} - \hat{\theta}_{(\cdot)}\right)^2\), tendem a ser sistematicamente menores do que os desvios obtidos a partir das replicações bootstrap, expressos por \(\left(\hat{\theta}^{*(b)} - \hat{\theta}^{*(\cdot)}\right)^2\). Em outras palavras,

\[\begin{align}\\ \left(\hat{\theta}_{(i)} - \hat{\theta}_{(\cdot)}\right)^2 \leqslant \left(\hat{\theta}^{*(b)} - \hat{\theta}^{*(\cdot)}\right)^2\\\\ \end{align}\]

Essa diferença decorre do fato de que as amostras jackknife, construídas pela exclusão sistemática de uma única observação, preservam maior similaridade estrutural com a amostra original em comparação com as amostras bootstrap, que são geradas com reposição e, portanto, apresentam maior variabilidade. Como consequência, os estimadores jackknife refletem menor dispersão e, para compensar essa subestimação da variabilidade amostral, introduz-se o fator \((n-1)/n\) na estimativa do erro-padrão.


6.6. Estimativa do Viés via Jackknife


No contexto da inferência estatística, dois aspectos fundamentais de qualquer estimador são seu viés e sua variabilidade. O viés refere-se à diferença sistemática entre o valor esperado do estimador e o verdadeiro valor do parâmetro populacional, enquanto o erro-padrão expressa a dispersão do estimador em torno de sua média, quantificando a incerteza inerente ao processo amostral. Em muitos problemas práticos, especialmente aqueles envolvendo estimadores de forma complexa ou baseados em procedimentos não-paramétricos, o cálculo analítico do viés e do erro-padrão pode ser intratável. Nesse cenário, métodos de reamostragem oferecem alternativas viáveis para a avaliação empírica dessas propriedades. Dentre esses métodos, o jackknife destaca-se por sua simplicidade conceitual e eficácia computacional. Mais precisamente, o método jackknife permite construir uma estimativa do viés do estimador original, fornecendo uma versão corrigida desse estimador, usualmente menos enviesada. Além disso, sob suposições razoáveis, é possível estimar o erro-padrão do estimador ajustado com base nos pseudovalores jackknife, os quais condensam a informação de cada replicação de forma a refletir a influência individual de cada ponto da amostra.


Definição 6.5 (Estimativa Jackknife do Viés - Miller 1974; Efron 1982; Shao e Tu 2012).. Seja \(\mathbf{x} = (x_1, x_2, \dots, x_n)\) uma amostra de tamanho \(n\), e seja \(\hat{\theta} = s(\mathbf{x})\) um estimador de um parâmetro \(\theta\), obtido por meio de uma função \(s\). Para cada \(i = 1, \dots, n\), denote por \(\hat{\theta}_{(i)} = s(\mathbf{x}_{(i)})\) a \(i\)-ésima replicação jackknife, em que \(\mathbf{x}_{(i)}\) corresponde à amostra obtida pela exclusão do \(i\)-ésimo elemento da amostra original. A média das replicações é denotada por:

\[\begin{align}\\ \hat{\theta}_{(\cdot)} = \frac{1}{n} \sum_{i=1}^n \hat{\theta}_{(i)}\\\\ \end{align}\]

A estimativa do viés de \(\hat{\theta}\) pelo método jackknife, neste caso, é dada por:

\[\begin{align}\\ \hat{V}_{\text{jack}} = (n - 1)(\hat{\theta}_{(\cdot)} - \hat{\theta})\\\\ \end{align}\]

Esta expressão fornece uma aproximação do viés amostral de \(\hat{\theta}\), sob a suposição de que a média das replicações é uma estimativa consistente de \(\mathbb{E}[\hat{\theta}]\). Assim, o estimador será assintoticamente não-viciado se \(\mathbb{E}[\hat{\theta}_{(\cdot)}] = \theta\), isto é, se \(\frac{1}{n} \sum_{i=1}^n \mathbb{E}[\hat{\theta}_{(i)}] = \theta\).


Exemplo 6.5. Considere um estudo ambiental conduzido para avaliar a concentração diária de dióxido de nitrogênio (NO₂), um poluente atmosférico comum em áreas urbanas, em uma determinada estação de monitoramento ao longo de seis dias consecutivos. As medições registradas, em partes por bilhão (ppb), foram:

\[\begin{align}\\ \mathbf{x} = (42{.}1,\ 39{.}5,\ 45{.}3,\ 41{.}2,\ 38{.}9,\ 43{.}0)\\\\ \end{align}\]

O interesse recai sobre a estimativa da concentração média de NO₂ durante o período, sendo a média amostral o estimador natural para esse parâmetro. Todavia, devido ao tamanho amostral reduzido e à ausência de conhecimento sobre a distribuição populacional do poluente, opta-se por avaliar o possível viés desse estimador por meio do método jackknife. Inicialmente, então, calcula-se a média da amostra, que representa o estimador \(\hat{\theta}\):

\[\begin{align}\\ \hat{\theta} = \frac{250{.}0}{6} = 41{.}6667\\\\ \end{align}\]

Em seguida, para cada \(i = 1, \ldots, 6\), constrói-se a amostra jackknife \(\mathbf{x}_{(i)}\), obtida pela exclusão do \(i\)-ésimo valor, e calcula-se a replicação correspondente \(\hat{\theta}_{(i)} = s(\mathbf{x}_{(i)})\). Os resultados são:

\[\begin{align}\\ \hat{\theta}_{(1)} = \frac{39{.}5 + 45{.}3 + 41{.}2 + 38{.}9 + 43{.}0}{5} = 41{.}58\\\\ \hat{\theta}_{(2)} = \frac{42{.}1 + 45{.}3 + 41{.}2 + 38{.}9 + 43{.}0}{5} = 42{.}10\\\\ \hat{\theta}_{(3)} = \frac{42{.}1 + 39{.}5 + 41{.}2 + 38{.}9 + 43{.}0}{5} = 40{.}94\\\\ \hat{\theta}_{(4)} = \frac{42{.}1 + 39{.}5 + 45{.}3 + 38{.}9 + 43{.}0}{5} = 41{.}76\\\\ \hat{\theta}_{(5)} = \frac{42{.}1 + 39{.}5 + 45{.}3 + 41{.}2 + 43{.}0}{5} = 42{.}22\\\\ \hat{\theta}_{(6)} = \frac{42{.}1 + 39{.}5 + 45{.}3 + 41{.}2 + 38{.}9}{5} = 41{.}40\\\\ \end{align}\]

Logo, a média das replicações jackknife é dada por:

\[\begin{align}\\ \hat{\theta}_{(\cdot)} = \frac{1}{6} \sum_{i=1}^6 \hat{\theta}_{(i)} = \frac{41{.}58 + 42{.}10 + 40{.}94 + 41{.}76 + 42{.}22 + 41{.}40}{6} = \frac{250{.}2}{6} = 41{.}7000\\\\ \end{align}\]

Por fim, da equação da estimativa jackknife do viés, obtém-se:

\[\begin{align}\\ \hat{V}_{\text{jack}} = (6 - 1)(41{.}6667 - 41{.}6667) = 5 \cdot 0{.}0333 = 0\\\\ \end{align}\]

Portanto, o viés estimado da média amostral pelo método jackknife é aproximadamente 0 ppb. Esse resultado indica que a média da amostra original é uma boa estimativa da média verdadeira da concentração de NO₂. O Código 6.5 apresenta, em ambiente R, uma rotina que descreve os cálculos realizados neste exemplo.


Código 6.5. Implementação, em R, do cálculo da estimativa jackknife do viés para o retorno médio da concentração diária média de dióxido de nitrogênio (NO₂), com base nas replicações obtidas por exclusão sistemática.

# ----------------------------------------
# Cálculo da Estimativa Jackknife do Viés
# ----------------------------------------

# --- 0. Pacotes necessários ---

library(knitr)

# --- 1. Definir a amostra original ---

x                   <- c(42.1, 39.5, 45.3, 41.2, 38.9, 43.0)

# --- 2. Definir as características da amostra ---

n                   <- length(x)
theta_hat           <- mean(x)
theta_hat
[1] 41.66667
# --- 3. Cálculo das replicações jackknife

theta_jack          <- numeric(n)

for(i in 1:n)
{
  x_i               <- x[-i]  
  theta_jack[i]     <- mean(x_i)
}

theta_jack
[1] 41.58 42.10 40.94 41.76 42.22 41.40
# --- 4. Média das replicações jackknife ---

theta_dot           <- mean(theta_jack)

# --- 5. Estimativa do viés pelo método jackknife ---

V_jack              <- (n - 1) * (theta_dot - theta_hat)

# --- 6. Resultados ---

res                         <- data.frame(row.names = c('Média das Replicações',
                                                        'Estimativa Jackknife do Viés da Média de NO₂'),
                                          valores = c(round(theta_dot, 5), round(V_jack, 5)))
kable(res, 
      align = 'c', 
      escape = FALSE, 
      format = 'html',
      col.names = c('Valores')) 
Valores
Média das Replicações 41.66667
Estimativa Jackknife do Viés da Média de NO₂ 0.00000

\[\small \begin{align}\\ \tag*{$\blacksquare$}\\\\\\ \end{align}\]

Na prática, é habitual aplicar uma correção de viés ao estimador jackknife para garantir que ele seja, efetivamente, não-viciado. Para isso, considera-se o conjunto de pseudovalores jackknife \(\tilde{\theta}_i\), obtidos ao recalcular o estimador \(\hat{\theta}_{(i)}\) com a exclusão da \(i\)-ésima observação da amostra, para \(i = 1, \ldots, n\). Com base nesses valores, o estimador jackknife corrigido para o parâmetro \(\theta\) é definido como:

\[\begin{align}\\ \hat{\theta}_{jack} = n \hat{\theta} - (n - 1) \hat{\theta}_{(\cdot)}\\\\ \end{align}\]

onde \(\hat{\theta}\) é o estimador calculado com a amostra completa e \(\hat{\theta}_{(\cdot)} = \frac{1}{n} \sum_{i=1}^n \hat{\theta}_{(i)}\) representa a média dos estimadores recalculados. Essa expressão pode ser reescrita na forma:

\[\begin{align}\\ \hat{\theta}_{jack} = \hat{\theta} - \hat{V}_{jack}\\\\ \end{align}\]

sendo \(\hat{V}_{jack} = (n - 1)(\hat{\theta}_{(\cdot)} - \hat{\theta})\) a estimativa do viés do estimador original \(\hat{\theta}\). Essa abordagem é conhecida como correção de viés e tem por objetivo ajustar o estimador inicial, eliminando seu viés sistemático e aprimorando sua precisão como estimativa do parâmetro populacional. Assim, a partir dessa correção e assumindo que os pseudovalores jackknife \(\tilde{\theta}_i\) sejam independentes, o erro-padrão do estimador jackknife pode ser estimado pela expressão:

\[\begin{align}\\ \hat{\sigma}_{jack} = \sqrt{\frac{1}{n(n - 1)} \sum_{i=1}^{n} \left(\tilde{\theta}_i - \tilde{\theta}\right)^2}\\\\ \end{align}\]

onde \(\tilde{\theta} = \frac{1}{n} \sum_{i=1}^{n} \tilde{\theta}_i\) corresponde à média dos pseudovalores. Assim, a estimativa do erro-padrão equivale ao erro-padrão da média dos pseudovalores, ajustado pelo fator \(1/[n(n-1)]\), que reflete a variabilidade resultante do procedimento jackknife.


6.7. Intervalos de Confiança Jackknife


Uma das principais vantagens da aplicação da correção de viés, combinada com o uso dos pseudovalores jackknife, é a possibilidade de construir intervalos de confiança para o parâmetro \(\theta\) fundamentados na distribuição \(t\) de Student com \(n - 1\) graus de liberdade, onde \(n\) representa o tamanho da amostra. Essa metodologia é importante em contextos de amostras de tamanho moderado a pequeno, pois integra a variabilidade adicional gerada pelo procedimento de reamostragem, resultando em intervalos que apresentam propriedades inferenciais mais robustas e realistas.


Definição 6.6 (Intervalo de Confiança via Jackknife - Miller 1974; Efron 1982; Shao e Tu 2012).. Seja \(\hat{\theta}_{jack}\) o estimador jackknife corrigido para o parâmetro \(\theta \in \mathbb{R}\), calculado a partir de uma amostra de tamanho \(n\). Assumindo que os pseudovalores jackknife \(\tilde{\theta}_i\), para \(i = 1, \ldots, n\), são aproximadamente independentes e normalmente distribuídos, o intervalo de confiança para \(\theta\) com nível \((1 - \alpha) \times 100\%\) é definido por:

\[\begin{align}\\ \mathrm{IC}_{1-\alpha}(\theta) = \left[ \hat{\theta}_{jack} - t_{\alpha/2,\, n-1} \cdot \hat{\sigma}_{jack}, \quad \hat{\theta}_{jack} + t_{\alpha/2,\, n-1} \cdot \hat{\sigma}_{jack} \right]\\\\ \end{align}\]

onde \(\hat{\sigma}_{jack}\) é a estimativa do erro-padrão obtida a partir dos pseudovalores, e \(t_{\alpha/2,\, n-1}\) é o quantil superior da distribuição \(t\) de Student com \(n-1\) graus de liberdade correspondente à probabilidade \(\alpha/2\).


Exemplo 6.6. Considere um estudo cujo objetivo é estimar o tempo médio de espera de clientes em uma fila de atendimento de uma agência bancária. Para tal, foi coletada uma amostra aleatória simples de \(n = 10\) tempos de espera, em minutos, durante diferentes horários de funcionamento ao longo de um mesmo dia útil. Os valores observados foram:

\[\begin{align}\\ \mathbf{x} = (5{.}2,\; 4{.}8,\; 6{.}1,\; 5{.}5,\; 5{.}0,\; 6{.}3,\; 4{.}9,\; 5{.}8,\; 5{.}4,\; 6{.}0)\\\\ \end{align}\]

O objetivo é construir um intervalo de confiança para o tempo médio populacional \(\theta = \mathbb{E}[X]\), utilizando o método jackknife, com nível de confiança de 95%. O primeiro passo consiste em calcular a média amostral:

\[\begin{align}\\ \bar{x} = \frac{1}{n} \sum_{i=1}^{n} x_i = \frac{55{.}0}{10} = 5{.}50\\\\ \end{align}\]

Para aplicar o método jackknife, calcula-se, para cada \(i = 1, \ldots, 10\), a média amostral com a exclusão da \(i\)-ésima observação, denotada por \(\hat{\theta}_{(i)}\). Cada uma dessas médias parciais é baseada em \(n - 1 = 9\) observações. Por exemplo, ao remover o primeiro valor (\(x_1 = 5{.}2\)), obtém-se:

\[\begin{align}\\ \hat{\theta}_{(1)} = \frac{55{.}0 - 5{.}2}{9} = \frac{49{.}8}{9} \approx 5{.}533\\\\ \end{align}\]

Repetindo esse procedimento para cada \(i\), obtêm-se as \(n\) estimativas \(\hat{\theta}_{(i)}\), com base nas quais se definem os pseudovalores jackknife:

\[\begin{align}\\ \tilde{\theta}_i = n \cdot \bar{x} - (n - 1) \cdot \hat{\theta}_{(i)}\\\\ \end{align}\]

Esses pseudovalores, denotados por \(\tilde{\theta}_1, \ldots, \tilde{\theta}_{10}\), representam estimativas alternativas do parâmetro \(\theta\), cada uma incorporando o impacto da exclusão de uma única observação. A média dos pseudovalores fornece o estimador jackknife corrigido:

\[\begin{align}\\ \hat{\theta}_{\text{jack}} = \frac{1}{n} \sum_{i=1}^{n} \tilde{\theta}_i\\\\ \end{align}\]

A seguir, estima-se a variabilidade associada a esse estimador por meio do erro-padrão jackknife:

\[\begin{align}\\ \hat{\sigma}_{\text{jack}} = \sqrt{\frac{1}{n(n - 1)} \sum_{i=1}^{n} \left( \tilde{\theta}_i - \hat{\theta}_{\text{jack}} \right)^2}\\\\ \end{align}\]

Sob a suposição de que os pseudovalores são aproximadamente independentes e seguem distribuição normal, pode-se aplicar a Definição 3.18 para construir um intervalo de confiança com nível de confiança \(1 - \alpha = 0{.}95\). Utilizando o quantil \(t_{\alpha/2,\, n - 1}\) da distribuição \(t\) de Student com \(n - 1 = 9\) graus de liberdade e \(\alpha = 0{.}05\), tem-se \(t_{0{.}025,\,9} \approx 2{.}262\). Assim, o intervalo de confiança para \(\theta\) é dado por:

\[\begin{align}\\ \mathrm{IC}_{0{.}95}(\theta) = \left[ \hat{\theta}_{\text{jack}} - 2{.}262 \cdot \hat{\sigma}_{\text{jack}},\; \hat{\theta}_{\text{jack}} + 2{.}262 \cdot \hat{\sigma}_{\text{jack}} \right]\\\\ \end{align}\]

O Código 6.6 apresenta, em ambiente R, uma rotina que descreve o cálculo do intervalo de confiança para este exemplo.


Código 6.6. Implementação, em R, do cálculo do intervalo de confiança para o tempo médio de espera em uma agência bancária, empregando o método jackknife e as estimativas obtidas por exclusão sistemática.

# ---------------------------------
# Intervalo de Confiança Jackknife
# ---------------------------------

# --- 0. Pacotes necessários ---

library(knitr)

# --- 1. Definir a amostra original ---

x                   <- c(5.2, 4.8, 6.1, 5.5, 5.0, 6.3, 4.9, 5.8, 5.4, 6.0)

# --- 2. Definir parâmetros da amostra original ---

n                   <- length(x)
x_bar               <- mean(x)
x_bar
[1] 5.5
# --- 3. Calcular as estimativas parciais (removendo uma observação por vez) ---

theta_i             <- numeric(n)

for(i in 1:n)
{
  theta_i[i]        <- mean(x[-i])
}

# --- 4. Calcular os pseudovalores jackknife ---

pseudo_valores      <- n * x_bar - (n - 1) * theta_i

# --- 5. Calcular a estimativa jackknife corrigida ---

theta_jack          <- mean(pseudo_valores)

# --- 6. Calcular o erro-padrão jackknife ---

sigma_jack          <- sqrt(sum((pseudo_valores - theta_jack)^2) / (n * (n - 1)))

# --- 7. Determinar o quantil da distribuição t de Student ---

alpha               <- 0.05
t_crit              <- qt(1 - alpha / 2, df = n - 1)

# --- 8. Calcular os limites do intervalo de confiança ---

IC_inf              <- theta_jack - t_crit * sigma_jack
IC_sup              <- theta_jack + t_crit * sigma_jack

# --- 9. Resultados ---

res                         <- data.frame(row.names = c('Tempo Médio de Espera',
                                                        'Estimativa Jackknife do Tempo Médio de Espera',
                                                        'Estimativa Jackknife do Erro-Padrão do Tempo Médio de Espera',
                                                        'Limite Inferior de IC 95% do Tempo Médio de Espera',
                                                        'Limite Superior de IC 95% do Tempo Médio de Espera'),
                                          valores = c(round(x_bar, 5), 
                                                      round(theta_jack, 5), 
                                                      round(sigma_jack, 5),
                                                      round(IC_inf, 5),
                                                      round(IC_sup, 5)))
kable(res, 
      align = 'c', 
      escape = FALSE, 
      format = 'html',
      col.names = c('Valores')) 
Valores
Tempo Médio de Espera 5.50000
Estimativa Jackknife do Tempo Médio de Espera 5.50000
Estimativa Jackknife do Erro-Padrão do Tempo Médio de Espera 0.16799
Limite Inferior de IC 95% do Tempo Médio de Espera 5.11997
Limite Superior de IC 95% do Tempo Médio de Espera 5.88003
# --- 10. Histograma dos pseudovalores e IC ---

hist(pseudo_valores,
     breaks = 6,
     col = "lightblue",
     main = "Histograma dos Pseudovalores Jackknife",
     xlab = "Pseudovalores",
     ylab = "Frequência")
abline(v = theta_jack, col = "red", lwd = 1, lty = 1)     
abline(v = IC_inf, col = "darkgreen", lwd = 1, lty = 2)   
abline(v = IC_sup, col = "darkgreen", lwd = 1, lty = 2)   
legend("topright",
       legend = c("Estimador Jackknife", "Limites do IC 95%"),
       col = c("red", "darkgreen"),
       lty = c(1, 2),
       lwd = 1,
       bty = "n")


Figura 6.2.. Histograma dos pseudovalores jackknife obtidos para o tempo médio de espera em uma agência bancária, com indicação do estimador jackknife e dos limites do intervalo de confiança de 95%.

\[\small \begin{align}\\ \tag*{$\blacksquare$}\\\\\\ \end{align}\]

6.8. Aplicações Jackknife


Exemplo 6.7. (Data swiss). O conjunto de dados swiss consiste em informações socioeconômicas coletadas em 47 distritos suíços no início do século XX. Essas variáveis incluem índices relacionados à fertilidade, educação, porcentagem de católicos, taxa de emprego agrícola, entre outras características demográficas e econômicas. O objetivo clássico de análises envolvendo este conjunto é estudar as associações entre a fertilidade e fatores socioeconômicos, visando compreender os determinantes populacionais em contextos rurais históricos. No presente exemplo, será explorado a aplicação do método jackknife para estimar o coeficiente de correlação entre a fertilidade e a agricultura, bem como construir um intervalo de confiança para essa medida. Todo o procedimento é será ilustrado no Código 6.7.


Código 6.7. Implementação, em R, da estimativa jackknife do coeficiente de correlação entre fertilidade e agricultura na base de dados swiss, incluindo o cálculo do intervalo de confiança de 95%.

# --------------------------------------------------
# Método Jackknife Aplicado à Base de Dados 'swiss'
# --------------------------------------------------

# --- 0. Pacotes necessários ---

library(knitr)

# --- 1. Carregar os dados 'swiss' ---

rm(list = ls())     # Usado para limpar a workspace para evitar confrontos de nomes
data(swiss)

# --- 2. Calcular a correlação amostral entre 'Fertility' e 'Agriculture' ---

rho                 <- with(swiss, cor(Fertility, Agriculture))
rho
[1] 0.3530792
# --- 3. Calcular as estimativas parciais jackknife ---

n                   <- nrow(swiss)
indices             <- 1:n

pe                  <- sapply(indices, function(ii){with(swiss[-ii, ], 
                                                         cor(Fertility, Agriculture))})
head(sort(pe), n = 30)
 [1] 0.2527003 0.3130895 0.3236550 0.3252307 0.3295657 0.3373877 0.3384854
 [8] 0.3394874 0.3431902 0.3438933 0.3463836 0.3472831 0.3473921 0.3484359
[15] 0.3515465 0.3525519 0.3526445 0.3529275 0.3532247 0.3544081 0.3544769
[22] 0.3547668 0.3548660 0.3556879 0.3573136 0.3575933 0.3580389 0.3582101
[29] 0.3584283 0.3598261
# --- 4. Calcular os pseudovalores jackknife ---

pv                  <- n * rho - (n - 1) * pe
head(sort(pv), n = 30)
 [1] -1.438609208 -1.219276002 -0.826074886 -0.427443555 -0.394654825
 [6] -0.380399765 -0.265005713 -0.180598644 -0.147089195 -0.125250512
[11] -0.118273658 -0.103522641 -0.102906932 -0.066738055 -0.001907453
[16]  0.017305935  0.030944693  0.042721510  0.107019784  0.117054764
[21]  0.124930800  0.145427596  0.158296835  0.233079893  0.270887611
[26]  0.275450148  0.288782306  0.291947068  0.346384176  0.360058426
# --- 5. Calcular as estimativas jackknife ---

theta_jack          <- mean(pv)
se_jack             <- sqrt(var(pv) / n)

# --- 6. Calcular o intervalo de confiança (95%) baseado na distribuição t de Student ---

alpha               <- 0.05
t_crit              <- qt(1 - alpha / 2, df = n - 1)

ic_jack             <- theta_jack + c(-1, 1) * t_crit * se_jack

# --- 7. Resultados ---

res                         <- data.frame(row.names = c('Coeficiente de Correlação Amostral',
                                                        'Estimativa Jackknife do Coeficiente de Correlação',
                                                        'Estimativa Jackknife do Erro-Padrão do Coeficiente de Correlação',
                                                        'Limite Inferior do IC de 95% do Coeficiente de Correlação)',
                                                        'Limite Superior do IC de 95% do Coeficiente de Correlação)'),
                                          valores = c(round(rho, 5),
                                                      round(theta_jack, 5), 
                                                      round(se_jack, 5),
                                                      round(ic_jack[1], 5),
                                                      round(ic_jack[2], 5)))
kable(res, 
      align = 'c', 
      escape = FALSE, 
      format = 'html',
      col.names = c('Valores')) 
Valores
Coeficiente de Correlação Amostral 0.35308
Estimativa Jackknife do Coeficiente de Correlação 0.36699
Estimativa Jackknife do Erro-Padrão do Coeficiente de Correlação 0.14076
Limite Inferior do IC de 95% do Coeficiente de Correlação) 0.08365
Limite Superior do IC de 95% do Coeficiente de Correlação) 0.65032

\[\small \begin{align} \tag*{$\blacksquare$}\\\\ \end{align}\]

Exemplo 6.8 (Data segreg do Pacote alr3). O conjunto de dados segreg, disponível no pacote alr3, reúne informações sobre a concentração de certos compostos químicos em função da temperatura, obtidas em experimentos de segregação em ligas metálicas. Esse tipo de dado é fundamental para entender o comportamento físico-químico dos materiais sob diferentes condições térmicas, o que é essencial em processos industriais e de pesquisa em ciência dos materiais. No presente exemplo, será utilizado o método jackknife aplicado a um modelo não-linear ajustado aos dados para estimar os parâmetros do modelo e seus respectivos intervalos de confiança. Todo o procedimento é será ilustrado no Código 6.8.


Código 6.8. Implementação, em R, da estimativa jackknife dos parâmetros do modelo não-linear ajustado aos dados da base segreg (pacote alr3), incluindo o cálculo dos erros-padrão e dos intervalos de confiança de 95%.

# ------------------------------------------------------------------------------------
# Estimativa Jackknife dos Parâmetros de um Modelo Não-Linear: Base de Dados 'segreg'
# ------------------------------------------------------------------------------------

# --- 0. Pacotes necessários ---

library(knitr)
library(ggplot2)
library(alr3)

# --- 1. Carregar os dados 'segreg' do pacote 'alr3' ---

data(segreg, package = "alr3")

# --- 2. Visualizar os dados ---

ggplot(segreg, aes(x = Temp, y = C)) +
  geom_point(color = "#2C3E50", size = 1.5, alpha = 0.7) +                      
  geom_smooth(method = "loess", se = TRUE, span = 0.4, color = "#E74C3C",
              fill = "#F1948A", size = 0.8) +                                   
  labs(title = "",
       x = "Temperatura (Temp)",
       y = "Concentração (C)") +
  theme_minimal(base_size = 10) +                                               
  theme(plot.title = element_text(face = "bold", hjust = 0.5, size = 12),
    plot.subtitle = element_text(hjust = 0.5, size = 10),
    axis.title = element_text(face = "bold", size = 10),
    axis.text = element_text(size = 9))


Figura 6.3.. Relação entre Temperatura e Concentração de Compostos (C) - Base de dados ‘segreg’ do pacote ‘alr3’.


# --- 3. Ajustar o modelo não-linear por mínimos quadrados não-lineares (nls) ---

n0          <- nls(C ~ th0 + th1 * (Temp - th2) * (Temp >= th2) + 0 * (Temp < th2),
                   data = segreg,
                   start = list(th0 = 75, th1 = 0.5, th2 = 50))
summary(n0)

Formula: C ~ th0 + th1 * (Temp - th2) * (Temp >= th2) + 0 * (Temp < th2)

Parameters:
    Estimate Std. Error t value Pr(>|t|)    
th0  74.6953     1.3433  55.607  < 2e-16 ***
th1   0.5674     0.1006   5.641 2.10e-06 ***
th2  41.9512     4.6583   9.006 9.44e-11 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 5.373 on 36 degrees of freedom

Number of iterations to convergence: 4 
Achieved convergence tolerance: 1.509e-08
# --- 4. Determinar o número de observações e índices ---

n           <- nrow(segreg)
indices     <- 1:n

# --- 5. Calcular os pseudovalores jackknife para cada parâmetro ---

pv          <- sapply(indices, FUN = function(ii) {n1 <- update(n0, 
                                                                data = segreg[-ii, ], 
                                                                start = coef(n0))
                                                   n * coef(n0) - (n - 1) * coef(n1)})
pv[1:3, 1:5]
           [,1]       [,2]       [,3]       [,4]       [,5]
th0 103.8767102 68.8478035 73.1790435 58.3058434 68.7659768
th1   0.5674297  0.5674297  0.5674297  0.5674297  0.5674297
th2  93.3785600 31.6459334 39.2790241 13.0674808 31.5017275
# --- 6. Estimativas jackknife e erros-padrão jackknife para os parâmetros

jk_estimates <- apply(pv, MARGIN = 1, FUN = mean)
jk_se        <- apply(pv, MARGIN = 1, FUN = sd) / sqrt(n)

# --- 7. Construção dos intervalos de confiança de 95% via distribuição t de Student ---

alpha        <- 0.05
df           <- n - length(coef(n0))  # graus de liberdade
t_crit       <- qt(1 - alpha / 2, df = df)

ic_lower     <- jk_estimates - t_crit * jk_se
ic_upper     <- jk_estimates + t_crit * jk_se

# --- 8. Resultados ---

res          <- data.frame(JK_Estimate  = round(jk_estimates, 5),
                           JK_StdError  = round(jk_se, 5),
                           IC_95_Lower  = round(ic_lower, 5),
                           IC_95_Upper  = round(ic_upper, 5))

kable(res, 
      align = 'c', 
      escape = FALSE, 
      format = 'html',
      col.names = c('Estimativa <br> Jackknife', 
                    'Estimativa Jackkife <br> do Erro-Padrão', 
                    'Limite Inferior <br> do IC de 95%', 
                    'Limite Superior <br> do IC de 95%'))
Estimativa
Jackknife
Estimativa Jackkife
do Erro-Padrão
Limite Inferior
do IC de 95%
Limite Superior
do IC de 95%
th0 74.41323 1.90987 70.53984 78.28662
th1 0.52591 0.07638 0.37100 0.68081
th2 40.05756 5.17481 29.56256 50.55256
# --- 9 (Opcional). Utilização do pacote 'nlstools' para validação ---

library(nlstools)                         # Carregar o pacote

jk_nlstools  <- nlsJack(n0)$jackCI   # Método jackknife

kable(jk_nlstools, 
      align = 'c', 
      escape = FALSE, 
      format = 'html',
      col.names = c('Estimativa <br> Jackknife', 
                    'Limite Inferior <br> do IC de 95%', 
                    'Limite Superior <br> do IC de 95%'))
Estimativa
Jackknife
Limite Inferior
do IC de 95%
Limite Superior
do IC de 95%
th0 74.4132297 70.5398352 78.2866241
th1 0.5259058 0.3710009 0.6808108
th2 40.0575604 29.5625649 50.5525559

\[\small \begin{align}\\ \tag*{$\blacksquare$}\\\\ \end{align}\]