Função de distribuição empírica - Empirical distribution function

The green curve, which asymptotically approaches heights of 0 and 1 without reaching them, is the true cumulative distribution function of the standard normal distribution. The grey hash marks represent the observations in a particular sample drawn from that distribution, and the horizontal steps of the blue step function (including the leftmost point in each step but not including the rightmost point) form the empirical distribution function of that sample. (Click here to load a new graph.)
A curva verde, que assintoticamente se aproxima das alturas de 0 e 1 sem alcançá-las, é a verdadeira função de distribuição cumulativa da distribuição normal padrão . As marcas de hash cinza representam as observações em uma amostra específica extraída dessa distribuição e as etapas horizontais da função de etapa azul (incluindo o ponto mais à esquerda em cada etapa, mas não incluindo o ponto mais à direita) formam a função de distribuição empírica dessa amostra. ( Clique aqui para carregar um novo gráfico. )

Em estatística , uma função de distribuição empírica (comumente também chamada de Função de Distribuição Cumulativa empírica, eCDF) é a função de distribuição associada à medida empírica de uma amostra . Esta função de distribuição cumulativa é uma função escalonada que aumenta 1 / n em cada um dos n pontos de dados. Seu valor em qualquer valor especificado da variável medida é a fração de observações da variável medida que são menores ou iguais ao valor especificado.

A função de distribuição empírica é uma estimativa da função de distribuição cumulativa que gerou os pontos na amostra. Ele converge com probabilidade 1 para essa distribuição subjacente, de acordo com o teorema de Glivenko – Cantelli . Existem vários resultados para quantificar a taxa de convergência da função de distribuição empírica para a função de distribuição cumulativa subjacente.

Definição

Vamos ( X 1 , ..., X n ) ser independentes e identicamente distribuídos variáveis aleatórias reais com a comum função de distribuição cumulativa F ( t ) . Em seguida, a função de distribuição empírica é definida como

onde é o indicador de evento A . Para um t fixo , o indicador é uma variável aleatória de Bernoulli com parâmetro p = F ( t ) ; portanto, é uma variável aleatória binomial com média nF ( t ) e variância nF ( t ) (1 - F ( t )) . Isso implica que é um estimador imparcial para F ( t ) .

No entanto, em alguns livros, a definição é dada como

Quer dizer

A média da distribuição empírica é um estimador imparcial da média da distribuição da população.

que é mais comumente denotado

Variância

A variância dos tempos de distribuição empírica é um estimador imparcial da variância da distribuição da população.

Erro quadrático médio

O erro quadrático médio para a distribuição empírica é o seguinte.

Onde está o estimador e um parâmetro desconhecido

Quantil

Para qualquer número real, a notação (leia “teto de a”) denota o menor número inteiro maior ou igual a . Para qualquer número real a, a notação (leia “piso de a”) denota o maior inteiro menor ou igual a .

Se não for um número inteiro, então o -ésimo quantil é único e é igual a

Se for um número inteiro, então o -ésimo quantil não é único e é qualquer número real tal que

Mediana empírica

Se for ímpar, a mediana empírica é o número

Se for par, então a mediana empírica é o número

Propriedades assintóticas

Uma vez que a razão ( n  + 1) / n se aproxima de 1 à medida que n vai para o infinito, as propriedades assintóticas das duas definições fornecidas acima são as mesmas.

Pela lei forte dos grandes números , o estimador converge para F ( t ) como n  → ∞ quase que certamente , para cada valor de t :

portanto, o estimador é consistente . Essa expressão afirma a convergência pontual da função de distribuição empírica para a verdadeira função de distribuição cumulativa. Há um resultado mais forte, chamado de teorema de Glivenko – Cantelli , que afirma que a convergência de fato acontece uniformemente em t :

O sup-norma nesta expressão é chamado a estatística de Kolmogorov-Smirnov para testar o bem-de-ajuste entre a distribuição empírica e a verdadeira função de distribuição cumulativa assumido F . Outras funções de norma podem ser razoavelmente usadas aqui, em vez da sup-norm. Por exemplo, a norma L 2 dá origem à estatística de Cramér-von Mises .

A distribuição assintótica pode ainda ser caracterizada de várias maneiras diferentes. Primeiro, o teorema do limite central afirma que , pontualmente , tem distribuição assintoticamente normal com a taxa padrão de convergência:

Esse resultado é estendido pelo teorema de Donsker , que afirma que o processo empírico , visto como uma função indexada por , converge em distribuição no espaço de Skorokhod para o processo gaussiano de média zero , onde B é a ponte browniana padrão . A estrutura de covariância deste processo gaussiano é

A taxa uniforme de convergência no teorema de Donsker pode ser quantificada pelo resultado conhecido como embedding húngaro :

Alternativamente, a taxa de convergência de também pode ser quantificada em termos do comportamento assintótico da sup-norma desta expressão. Existem vários resultados neste local, por exemplo, a desigualdade Dvoretzky – Kiefer – Wolfowitz fornece probabilidades limitadas na cauda de :

Na verdade, de Kolmogorov tem mostrado que, se a função de distribuição cumulativa F é contínuo, então a expressão converge em distribuição para , que tem a distribuição de Kolmogorov que não dependem da forma de F .

Outro resultado, que segue a lei do logaritmo iterado , é que

e

Intervalos de confiança

Gráficos empíricos de CDF, CDF e intervalo de confiança para vários tamanhos de amostra de distribuição normal

De acordo com a desigualdade de Dvoretzky – Kiefer – Wolfowitz, o intervalo que contém o verdadeiro CDF ,, com probabilidade é especificado como

Gráficos empíricos de CDF, CDF e intervalo de confiança para vários tamanhos de amostra da distribuição de Cauchy

De acordo com os limites acima, podemos plotar o CDF empírico, o CDF e os intervalos de confiança para distribuições diferentes usando qualquer uma das implementações estatísticas. A seguir está a sintaxe do Statsmodel para traçar a distribuição empírica.

Gráficos empíricos de CDF, CDF e intervalo de confiança para vários tamanhos de amostra de distribuição triangular
"""
Empirical CDF Functions
"""
import numpy as np
from scipy.interpolate import interp1d


def _conf_set(F, alpha=0.05):
    nobs = len(F)
    epsilon = np.sqrt(np.log(2.0 / alpha) / (2 * nobs))
    lower = np.clip(F - epsilon, 0, 1)
    upper = np.clip(F + epsilon, 0, 1)
    return lower, upper


class StepFunction:
    def __init__(self, x, y, ival=0.0, sorted=False, side="left"):
        if side.lower() not in ["right", "left"]:
            msg = "side can take the values 'right' or 'left'"
            raise ValueError(msg)
        self.side = side
        _x = np.asarray(x)
        _y = np.asarray(y)
        if _x.shape != _y.shape:
            msg = "x and y do not have the same shape"
            raise ValueError(msg)
        if len(_x.shape) != 1:
            msg = "x and y must be 1-dimensional"
            raise ValueError(msg)
        self.x = np.r_[-np.inf, _x]
        self.y = np.r_[ival, _y]
        if not sorted:
            asort = np.argsort(self.x)
            self.x = np.take(self.x, asort, 0)
            self.y = np.take(self.y, asort, 0)
        self.n = self.x.shape[0]

    def __call__(self, time):
        tind = np.searchsorted(self.x, time, self.side) - 1
        return self.y[tind]


class ECDF(StepFunction):
    def __init__(self, x, side="right"):
        x = np.array(x, copy=True)
        x.sort()
        nobs = len(x)
        y = np.linspace(1.0 / nobs, 1, nobs)
        super(ECDF, self).__init__(x, y, side=side, sorted=True)


def monotone_fn_inverter(fn, x, vectorized=True, **keywords):
    x = np.asarray(x)
    if vectorized:
        y = fn(x, **keywords)
    else:
        y = []
        for _x in x:
            y.append(fn(_x, **keywords))
        y = np.array(y)
    a = np.argsort(y)
    return interp1d(y[a], x[a])


if __name__ == "__main__":
    # TODO: Make sure everything is correctly aligned and make a plotting
    # function
    from urllib.request import urlopen
    import matplotlib.pyplot as plt

    nerve_data = urlopen("http://www.statsci.org/data/general/nerve.txt")
    nerve_data = np.loadtxt(nerve_data)
    x = nerve_data / 50.0  # Was in 1/50 seconds
    cdf = ECDF(x)
    x.sort()
    F = cdf(x)
    plt.step(x, F, where="post")
    lower, upper = _conf_set(F)
    plt.step(x, lower, "r", where="post")
    plt.step(x, upper, "r", where="post")
    plt.xlim(0, 1.5)
    plt.ylim(0, 1.05)
    plt.vlines(x, 0, 0.05)
    plt.show()

Implementação estatística

Uma lista não exaustiva de implementações de software da função Distribuição Empírica inclui:

  • No software R , calculamos uma função de distribuição cumulativa empírica, com vários métodos de plotagem, impressão e computação com esse objeto “ecdf”.
  • No Mathworks , podemos usar o gráfico da função de distribuição cumulativa empírica (cdf)
  • jmp do SAS , o gráfico CDF cria um gráfico da função de distribuição cumulativa empírica.
  • Minitab , crie um CDF empírico
  • Mathwave , podemos ajustar a distribuição de probabilidade aos nossos dados
  • Gráfico de dados , podemos traçar o gráfico CDF empírico
  • Scipy , usando scipy.stats podemos traçar a distribuição
  • Modelos de estatísticas , podemos usar statsmodels.distributions.empirical_distribution.ECDF
  • Matplotlib , podemos usar histogramas para traçar uma distribuição cumulativa
  • Seaborn , usando a função seaborn.ecdfplot
  • Plotly , usando a função plotly.express.ecdf
  • Excel , podemos traçar um gráfico CDF empírico

Veja também

Referências

Leitura adicional

  • Shorack, GR; Wellner, JA (1986). Processos empíricos com aplicações à estatística . Nova York: Wiley. ISBN 0-471-86725-X.

links externos