Originalmente publicado en este stackoverflow.com y la elimina y se trasladó aquí
Mi pregunta es similar a La similitud de los dos discreta de fourier tranforms (específicamente la respuesta seleccionada). También he recogido alguna información útil a partir de este R ayuda hilo.
Estoy atascado en la aplicación real de este proceso, sin embargo.
Tengo dos series de Fourier; mi objetivo final es calcular la suma de la ponderación de la coherencia. (En la actualidad tengo millones de series correspondientes a los píxeles, pero, vamos a llamarlo dos por ahora).
TS1 <- c(5051.29, 5355.31, 5602.18, 5784.4, 5896.45, 5934.9, 5898.6,
5788.64, 5608.37, 5363.27, 5060.78, 4710.09, 4321.86, 3907.89,
3480.75, 3053.42, 2638.89, 2249.75, 1897.82, 1593.81, 1346.93,
1164.71, 1052.67, 1014.21, 1050.52, 1160.47, 1340.74, 1585.84,
1888.33, 2239.02, 2627.25, 3041.22, 3468.36, 3895.69, 4310.22,
4699.36, 5051.29)
TS2 <- c(4192.83, 4532.62, 4836.41, 5094.96, 5300.41, 5446.53, 5528.88,
5544.95, 5494.25, 5378.33, 5200.71, 4966.78, 4683.65, 4359.93,
4005.45, 3630.98, 3247.9, 2867.85, 2502.38, 2162.59, 1858.8,
1600.25, 1394.8, 1248.67, 1166.33, 1150.26, 1200.95, 1316.87,
1494.5, 1728.43, 2011.55, 2335.28, 2689.76, 3064.23, 3447.31,
3827.36, 4192.83)
De los enlaces arriba veo que necesito para calcular la coherencia de la cruz espectro en cada frecuencia, y el peso de las frecuencias que tienen una mayor densidad espectral de potencia.
Sé que se puede extraer de la densidad espectral de
spectrum(data.frame(TS1, TS2))$spec
Sé que se puede extraer de coherencia en el uso de:
spectrum(data.frame(TS1, TS2))$coh
Puedo ver que el valor de la coherencia extraído es siempre igual a 1. Parece que la "solución" a este problema es el lag de la serie de tiempo de alguna manera.
No estoy seguro de cómo 1) calcular el óptimo lag, sobre todo porque me gustaría que sean comparables a través de todos los cálculos de coherencia, y 2) cómo especificar lag en el espectro(). spec.pgram toma "abarca", pero los que parecen tener más que ver con el suavizado de compensación.
He intentado un máximo de ccf función definida aquí, pero en muchos casos (no en el ejemplo que me has proporcionado, tendrás que confiar en mí) el "óptimo lag" devuelto es 0, lo cual tiene sentido porque la ccf es 1, pero no es realmente lo que estoy buscando.
Debo ser el uso de acf()
o ccf()
a calcular manualmente la coherencia?
¿Qué pasos (R funciones sería realmente útil) necesito realizar para llegar desde donde yo estoy, para tener una sola ponderado coherencia valor?