Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Pruebas de significancia para componentes periódicos

Este ejemplo muestra cómo evaluar la importancia de un componente sinusoidal en ruido blanco utilizando la estadística de Fisher.g Fisher's -statistic es la relación entre el mayor valor de periodograma y la suma de todos los valores de periodograma en 1/2 del intervalo de frecuencia, (0, /2).gFs Una descripción detallada de la -estadística y la distribución exacta se puede encontrar en las referencias.g

Cree una señal que consista en una onda sinusoidal de 100 Hz en ruido gaussiano blanco con media cero y varianza 1. La amplitud de la onda sinusoidal es 0,25. La frecuencia de muestreo es de 1 kHz. Establezca el generador de números aleatorios en la configuración predeterminada para obtener resultados reproducibles.

rng default  Fs = 1e3; t = 0:1/Fs:1-1/Fs; x = 0.25*cos(2*pi*100*t)+randn(size(t));

Obtenga el periodograma de la señal utilizando .periodograma Excluir 0 y la frecuencia Nyquist ( /2).Fs Trazar el periodograma.

[Pxx,F] = periodogram(x,rectwin(length(x)),length(x),Fs); Pxx = Pxx(2:length(x)/2);  periodogram(x,rectwin(length(x)),length(x),Fs)

Encuentre el valor máximo del periodograma. Estadística de Fisher es la relación entre el valor máximo del periodograma y la suma de todos los valores de periodograma.g

[maxval,index] = max(Pxx); fisher_g = Pxx(index)/sum(Pxx)
fisher_g = 0.0381 

El valor máximo del periodograma se produce a 100 Hz, que se puede comprobar mediante la búsqueda de la frecuencia correspondiente al índice del valor máximo del periodograma.

F = F(2:end-1); F(index)
ans = 100 

Utilice los resultados distributivos detallados en las referencias para determinar el nivel de significancia, , de Fisher's -statistic.pvalg El siguiente código MATLAB® implementa la ecuación (6) de [2]. Utilice el logaritmo de la función gamma para evitar desbordamientos al calcular coeficientes binomiales.

N = length(Pxx); nn = 1:floor(1/fisher_g);  I = (-1).^(nn-1).*exp(gammaln(N+1)-gammaln(nn+1)-gammaln(N-nn+1)).*(1-nn*fisher_g).^(N-1);  pval = sum(I)
pval = 2.0163e-06 

El valor -es menor que 0.00001, lo que indica un componente periódico significativo a 100 Hz.p La interpretación de la estadística de Fisher se complica por la presencia de otras periodicidades.g Consulte [1] para una modificación cuando puedan estar presentes varias periodicidades.

Referencias

[1] Percival, Donald B. y Andrew T. Walden. .Spectral Analysis for Physical Applications Cambridge, Reino Unido: Cambridge University Press, 1993.

[2] Wichert, Sofía, Konstantinos Fokianos y Korbinian Strimmer. "Identificación de transcripciones expresadas periódicamente en datos de series temporales de Microarray." .Bioinformatics 20 de vol. 2004, págs. 5-20.

Consulte también

|