7 votos

Cálculo de límites de Dvoretzky-Kiefer-Wolfowitz en MATLAB

Cuando ejecuto el test de Kolmogorov-Smirnov (kstest2 función en MATLAB) en dos vectores de datos, puedo obtener el valor de KS Estadística. ¿Cómo debo calcular Dvoretzky–Kiefer–Wolfowitz (DKW), vinculado al uso de esta información? Cuando miro a la wiki y otras páginas web, parece como si me parcela de la ECDF, toda la ECDF sería limitada por dos curvas (por ejemplo, diapositiva 14 aquí: http://cseweb.ucsd.edu/classes/fa07/cse103/CDFs.pdf). Sin embargo, a mí me parece que el DKW obligado sería un valor único y no delimitada a ambos lados. Podría alguien por favor explicar el cálculo de esta enlazado en MATLAB? Cualquier ayuda sería muy apreciada. Gracias.

Saludos, RD

7voto

Rob Allen Puntos 486

Suena como que usted desea calcular una banda de confianza: una región que contiene todo el CDF con una probabilidad de $1-\alpha$. Hacer esto con la Dvoretzky–Kiefer–Wolfowitz la desigualdad implica tres pasos:

  1. Generar la CDF (es decir, ordenar y contar sus valores--trivial en matlab)

  2. La desigualdad en sí mismo dice que $$ P\bigg(\sup_x \big|F(x) - \hat{F}(x)\big| \gt \epsilon\bigg) \le 2\exp(-2n\epsilon^2)$$ donde $F(x)$ es la "verdadera" de la población CDF, $\hat{F}(x)$ es la muestra de la CDF, y $n$ es el número de puntos de datos. Ajuste el lado derecho de la desigualdad a $\alpha$ y reordenando se obtiene:

$$ \epsilon = \sqrt{\frac{1}{2n}\log\bigg(\frac{2}{\alpha}}\bigg)$$

  1. You can now draw the confidence band. The confidence band has an upper edge $U(x)$ and a lower edge $L(x)$: $$ \begin{align*} L(x) = max\{\hat{F}(x) &- \epsilon, 0\} \\ U(x) = min\{\hat{F}(x) &+ \epsilon, 1\} \end{align*}$$

La traducción de esto en matlab es bastante trivial:

function [low_edge, F_hat, hi_edge, x] = dkw_bounds(data, alpha) [F_hat, x] = ecdf(data); epsilon = sqrt(ln(2/alpha)/(2*length(data))); low_edge = max(F_hat - epsilon, 0); %Does the right thing here, use pmax in R hi_edge = min(F_hat + epsilon, 1); end

Usted puede, a continuación, la trama de las tres curvas, uso de ellas para formar una patch, etc.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X