Interpolación de Fourier / trigonométrica


9

Antecedentes

En un artículo de Epstein (1991): al obtener valores climatológicos diarios a partir de medias mensuales , se proporciona la formulación y un algoritmo para calcular la interpolación de Fourier para valores periódicos y espaciados pares.

En el documento, el objetivo es obtener valores diarios de medios mensuales por interpolación.

En resumen, se supone que los valores diarios desconocidos se pueden representar mediante la suma de componentes armónicos: En el documento (tiempo) se expresa en meses.

y(t)=a0+j[ajcos(2πjt/12)+bjsin(2πjt/12)]
t

Después de alguna desviación, se muestra que los términos pueden calcularse mediante:

a0=TYT/12aj=[(πj/12)/sin(πj/12)]×T[YTcos(2πjT/12)/6]       j=1,,5bj=[(πj/12)/sin(πj/12)]×T[YTsin(2πjT/12)/6]       j=1,,5a6=[(πj/12)/sin(πj/12)]×T[YTcos(πT)/12]b6=0
Donde YT denota las medias mensuales y T el mes.

Harzallah (1995) resume este enfoque de la siguiente manera: "La interpolación se lleva a cabo agregando ceros a los coeficientes espectrales de los datos y realizando una transformada inversa de Fourier a los coeficientes extendidos resultantes. El método es equivalente a aplicar un filtro rectangular a los coeficientes de Fourier ".


Preguntas

Mi objetivo es utilizar la metodología anterior para la interpolación de medios semanales para obtener datos diarios (ver mi pregunta anterior ). En resumen, tengo 835 datos de recuento de medios semanales (consulte el conjunto de datos de ejemplo al final de la pregunta). Hay bastantes cosas que no entiendo antes de poder aplicar el enfoque descrito anteriormente:

  1. ¿Cómo tendrían que cambiarse las fórmulas para mi situación (valores semanales en lugar de mensuales)?
  2. ¿Cómo podría expresarse el tiempo ? Asumí (o con puntos de datos en general), ¿es correcto?tt/835t/nn
  3. ¿Por qué el autor calcula 7 términos (es decir, )? ¿Cuántos términos debería tener en cuenta?0j6
  4. Entiendo que la pregunta probablemente se pueda resolver usando un enfoque de regresión y usando las predicciones para la interpolación (gracias a Nick). Aún así, algunas cosas no me quedan claras: ¿cuántos términos de armónicos deberían incluirse en la regresión? ¿Y qué período debo tomar? ¿Cómo se puede hacer la regresión para garantizar que se conserven las medias semanales (ya que no quiero un ajuste armónico exacto a los datos)?

Utilizando el enfoque de regresión (que también se explica en este documento ), logré obtener un ajuste armónico exacto a los datos (la en mi ejemplo correría a través de , por lo que ajusté 417 términos). ¿Cómo se puede modificar este enfoque, si es posible , para lograr la conservación de los medios semanales? ¿Quizás aplicando factores de corrección a cada término de regresión?j1,,417  

La trama del ajuste armónico exacto es:

Ajuste armónico exacto

EDITAR

Usando el paquete de señal y la interp1función, esto es lo que he logrado hacer usando el conjunto de datos de ejemplo a continuación (muchas gracias a @noumenal). Yo uso q=7como tenemos datos semanales:

# Set up the time scale

daily.ts <- seq(from=as.Date("1995-01-01"), to=as.Date("2010-12-31"), by="day")

# Set up data frame 

ts.frame <- data.frame(daily.ts=daily.ts, wdayno=as.POSIXlt(daily.ts)$wday,
                       yearday = 1:5844,
                       no.influ.cases=NA)

# Add the data from the example dataset called "my.dat"

ts.frame$no.influ.cases[ts.frame$wdayno==3] <- my.dat$case

# Interpolation

case.interp1 <- interp1(x=ts.frame$yearday[!is.na(ts.frame$no.influ.case)],y=(ts.frame$no.influ.cases[!is.na(ts.frame$no.influ.case)]),xi=ts.frame$yearday, method = c("cubic"))

# Plot subset for better interpretation
par(bg="white", cex=1.2, las=1)
plot((ts.frame$no.influ.cases)~ts.frame$yearday, pch=20,
     col=grey(0.4),
     cex=1, las=1,xlim=c(0,400), xlab="Day", ylab="Influenza cases")
lines(case.interp1, col="steelblue", lwd=1)

Cubicinterpo

Hay dos problemas aquí:

  1. La curva parece encajar "demasiado bien": pasa por cada punto
  2. Los medios semanales no se conservan.

Conjunto de datos de ejemplo

structure(list(date = structure(c(9134, 9141, 9148, 9155, 9162, 
9169, 9176, 9183, 9190, 9197, 9204, 9211, 9218, 9225, 9232, 9239, 
9246, 9253, 9260, 9267, 9274, 9281, 9288, 9295, 9302, 9309, 9316, 
9323, 9330, 9337, 9344, 9351, 9358, 9365, 9372, 9379, 9386, 9393, 
9400, 9407, 9414, 9421, 9428, 9435, 9442, 9449, 9456, 9463, 9470, 
9477, 9484, 9491, 9498, 9505, 9512, 9519, 9526, 9533, 9540, 9547, 
9554, 9561, 9568, 9575, 9582, 9589, 9596, 9603, 9610, 9617, 9624, 
9631, 9638, 9645, 9652, 9659, 9666, 9673, 9680, 9687, 9694, 9701, 
9708, 9715, 9722, 9729, 9736, 9743, 9750, 9757, 9764, 9771, 9778, 
9785, 9792, 9799, 9806, 9813, 9820, 9827, 9834, 9841, 9848, 9855, 
9862, 9869, 9876, 9883, 9890, 9897, 9904, 9911, 9918, 9925, 9932, 
9939, 9946, 9953, 9960, 9967, 9974, 9981, 9988, 9995, 10002, 
10009, 10016, 10023, 10030, 10037, 10044, 10051, 10058, 10065, 
10072, 10079, 10086, 10093, 10100, 10107, 10114, 10121, 10128, 
10135, 10142, 10149, 10156, 10163, 10170, 10177, 10184, 10191, 
10198, 10205, 10212, 10219, 10226, 10233, 10240, 10247, 10254, 
10261, 10268, 10275, 10282, 10289, 10296, 10303, 10310, 10317, 
10324, 10331, 10338, 10345, 10352, 10359, 10366, 10373, 10380, 
10387, 10394, 10401, 10408, 10415, 10422, 10429, 10436, 10443, 
10450, 10457, 10464, 10471, 10478, 10485, 10492, 10499, 10506, 
10513, 10520, 10527, 10534, 10541, 10548, 10555, 10562, 10569, 
10576, 10583, 10590, 10597, 10604, 10611, 10618, 10625, 10632, 
10639, 10646, 10653, 10660, 10667, 10674, 10681, 10688, 10695, 
10702, 10709, 10716, 10723, 10730, 10737, 10744, 10751, 10758, 
10765, 10772, 10779, 10786, 10793, 10800, 10807, 10814, 10821, 
10828, 10835, 10842, 10849, 10856, 10863, 10870, 10877, 10884, 
10891, 10898, 10905, 10912, 10919, 10926, 10933, 10940, 10947, 
10954, 10961, 10968, 10975, 10982, 10989, 10996, 11003, 11010, 
11017, 11024, 11031, 11038, 11045, 11052, 11059, 11066, 11073, 
11080, 11087, 11094, 11101, 11108, 11115, 11122, 11129, 11136, 
11143, 11150, 11157, 11164, 11171, 11178, 11185, 11192, 11199, 
11206, 11213, 11220, 11227, 11234, 11241, 11248, 11255, 11262, 
11269, 11276, 11283, 11290, 11297, 11304, 11311, 11318, 11325, 
11332, 11339, 11346, 11353, 11360, 11367, 11374, 11381, 11388, 
11395, 11402, 11409, 11416, 11423, 11430, 11437, 11444, 11451, 
11458, 11465, 11472, 11479, 11486, 11493, 11500, 11507, 11514, 
11521, 11528, 11535, 11542, 11549, 11556, 11563, 11570, 11577, 
11584, 11591, 11598, 11605, 11612, 11619, 11626, 11633, 11640, 
11647, 11654, 11661, 11668, 11675, 11682, 11689, 11696, 11703, 
11710, 11717, 11724, 11731, 11738, 11745, 11752, 11759, 11766, 
11773, 11780, 11787, 11794, 11801, 11808, 11815, 11822, 11829, 
11836, 11843, 11850, 11857, 11864, 11871, 11878, 11885, 11892, 
11899, 11906, 11913, 11920, 11927, 11934, 11941, 11948, 11955, 
11962, 11969, 11976, 11983, 11990, 11997, 12004, 12011, 12018, 
12025, 12032, 12039, 12046, 12053, 12060, 12067, 12074, 12081, 
12088, 12095, 12102, 12109, 12116, 12123, 12130, 12137, 12144, 
12151, 12158, 12165, 12172, 12179, 12186, 12193, 12200, 12207, 
12214, 12221, 12228, 12235, 12242, 12249, 12256, 12263, 12270, 
12277, 12284, 12291, 12298, 12305, 12312, 12319, 12326, 12333, 
12340, 12347, 12354, 12361, 12368, 12375, 12382, 12389, 12396, 
12403, 12410, 12417, 12424, 12431, 12438, 12445, 12452, 12459, 
12466, 12473, 12480, 12487, 12494, 12501, 12508, 12515, 12522, 
12529, 12536, 12543, 12550, 12557, 12564, 12571, 12578, 12585, 
12592, 12599, 12606, 12613, 12620, 12627, 12634, 12641, 12648, 
12655, 12662, 12669, 12676, 12683, 12690, 12697, 12704, 12711, 
12718, 12725, 12732, 12739, 12746, 12753, 12760, 12767, 12774, 
12781, 12788, 12795, 12802, 12809, 12816, 12823, 12830, 12837, 
12844, 12851, 12858, 12865, 12872, 12879, 12886, 12893, 12900, 
12907, 12914, 12921, 12928, 12935, 12942, 12949, 12956, 12963, 
12970, 12977, 12984, 12991, 12998, 13005, 13012, 13019, 13026, 
13033, 13040, 13047, 13054, 13061, 13068, 13075, 13082, 13089, 
13096, 13103, 13110, 13117, 13124, 13131, 13138, 13145, 13152, 
13159, 13166, 13173, 13180, 13187, 13194, 13201, 13208, 13215, 
13222, 13229, 13236, 13243, 13250, 13257, 13264, 13271, 13278, 
13285, 13292, 13299, 13306, 13313, 13320, 13327, 13334, 13341, 
13348, 13355, 13362, 13369, 13376, 13383, 13390, 13397, 13404, 
13411, 13418, 13425, 13432, 13439, 13446, 13453, 13460, 13467, 
13474, 13481, 13488, 13495, 13502, 13509, 13516, 13523, 13530, 
13537, 13544, 13551, 13558, 13565, 13572, 13579, 13586, 13593, 
13600, 13607, 13614, 13621, 13628, 13635, 13642, 13649, 13656, 
13663, 13670, 13677, 13684, 13691, 13698, 13705, 13712, 13719, 
13726, 13733, 13740, 13747, 13754, 13761, 13768, 13775, 13782, 
13789, 13796, 13803, 13810, 13817, 13824, 13831, 13838, 13845, 
13852, 13859, 13866, 13873, 13880, 13887, 13894, 13901, 13908, 
13915, 13922, 13929, 13936, 13943, 13950, 13957, 13964, 13971, 
13978, 13985, 13992, 13999, 14006, 14013, 14020, 14027, 14034, 
14041, 14048, 14055, 14062, 14069, 14076, 14083, 14090, 14097, 
14104, 14111, 14118, 14125, 14132, 14139, 14146, 14153, 14160, 
14167, 14174, 14181, 14188, 14195, 14202, 14209, 14216, 14223, 
14230, 14237, 14244, 14251, 14258, 14265, 14272, 14279, 14286, 
14293, 14300, 14307, 14314, 14321, 14328, 14335, 14342, 14349, 
14356, 14363, 14370, 14377, 14384, 14391, 14398, 14405, 14412, 
14419, 14426, 14433, 14440, 14447, 14454, 14461, 14468, 14475, 
14482, 14489, 14496, 14503, 14510, 14517, 14524, 14531, 14538, 
14545, 14552, 14559, 14566, 14573, 14580, 14587, 14594, 14601, 
14608, 14615, 14622, 14629, 14636, 14643, 14650, 14657, 14664, 
14671, 14678, 14685, 14692, 14699, 14706, 14713, 14720, 14727, 
14734, 14741, 14748, 14755, 14762, 14769, 14776, 14783, 14790, 
14797, 14804, 14811, 14818, 14825, 14832, 14839, 14846, 14853, 
14860, 14867, 14874, 14881, 14888, 14895, 14902, 14909, 14916, 
14923, 14930, 14937, 14944, 14951, 14958, 14965, 14972), class = "Date"), 
    cases = c(168L, 199L, 214L, 230L, 267L, 373L, 387L, 443L, 
    579L, 821L, 1229L, 1014L, 831L, 648L, 257L, 203L, 137L, 78L, 
    82L, 69L, 45L, 51L, 45L, 63L, 55L, 54L, 52L, 27L, 24L, 12L, 
    10L, 22L, 42L, 32L, 52L, 82L, 95L, 91L, 104L, 143L, 114L, 
    100L, 83L, 113L, 145L, 175L, 222L, 258L, 384L, 755L, 976L, 
    879L, 846L, 1004L, 801L, 799L, 680L, 530L, 410L, 302L, 288L, 
    234L, 269L, 245L, 240L, 176L, 188L, 128L, 96L, 59L, 63L, 
    44L, 52L, 39L, 50L, 36L, 40L, 48L, 32L, 39L, 28L, 29L, 16L, 
    20L, 25L, 25L, 48L, 57L, 76L, 117L, 107L, 91L, 90L, 83L, 
    76L, 86L, 104L, 101L, 116L, 120L, 185L, 290L, 537L, 485L, 
    561L, 1142L, 1213L, 1235L, 1085L, 1052L, 987L, 918L, 746L, 
    620L, 396L, 280L, 214L, 148L, 148L, 94L, 107L, 69L, 55L, 
    69L, 47L, 43L, 49L, 30L, 42L, 51L, 41L, 39L, 40L, 38L, 22L, 
    37L, 26L, 40L, 56L, 54L, 74L, 99L, 114L, 114L, 120L, 114L, 
    123L, 131L, 170L, 147L, 163L, 163L, 160L, 158L, 163L, 124L, 
    115L, 176L, 171L, 214L, 320L, 507L, 902L, 1190L, 1272L, 1282L, 
    1146L, 896L, 597L, 434L, 216L, 141L, 101L, 86L, 65L, 55L, 
    35L, 49L, 29L, 55L, 53L, 57L, 34L, 43L, 42L, 13L, 17L, 20L, 
    27L, 36L, 47L, 64L, 77L, 82L, 82L, 95L, 107L, 96L, 106L, 
    93L, 114L, 102L, 116L, 128L, 123L, 212L, 203L, 165L, 267L, 
    550L, 761L, 998L, 1308L, 1613L, 1704L, 1669L, 1296L, 975L, 
    600L, 337L, 259L, 145L, 91L, 70L, 79L, 63L, 58L, 51L, 53L, 
    39L, 49L, 33L, 47L, 56L, 32L, 43L, 47L, 19L, 32L, 18L, 34L, 
    39L, 63L, 57L, 55L, 69L, 76L, 103L, 99L, 108L, 131L, 113L, 
    106L, 122L, 138L, 136L, 175L, 207L, 324L, 499L, 985L, 1674L, 
    1753L, 1419L, 1105L, 821L, 466L, 274L, 180L, 143L, 82L, 101L, 
    72L, 55L, 71L, 50L, 33L, 26L, 25L, 27L, 21L, 24L, 24L, 20L, 
    18L, 18L, 25L, 23L, 13L, 10L, 16L, 9L, 12L, 16L, 25L, 31L, 
    36L, 40L, 36L, 47L, 32L, 46L, 75L, 63L, 49L, 90L, 83L, 101L, 
    78L, 79L, 98L, 131L, 83L, 122L, 179L, 334L, 544L, 656L, 718L, 
    570L, 323L, 220L, 194L, 125L, 95L, 77L, 46L, 42L, 29L, 35L, 
    21L, 29L, 16L, 14L, 19L, 15L, 19L, 18L, 21L, 10L, 14L, 7L, 
    7L, 5L, 9L, 14L, 11L, 18L, 22L, 39L, 36L, 46L, 44L, 37L, 
    30L, 39L, 37L, 45L, 71L, 59L, 57L, 80L, 68L, 88L, 72L, 74L, 
    208L, 357L, 621L, 839L, 964L, 835L, 735L, 651L, 400L, 292L, 
    198L, 85L, 64L, 41L, 40L, 23L, 18L, 14L, 22L, 9L, 19L, 8L, 
    14L, 12L, 15L, 14L, 4L, 6L, 7L, 7L, 8L, 13L, 10L, 19L, 17L, 
    20L, 22L, 40L, 37L, 45L, 34L, 26L, 35L, 67L, 49L, 77L, 82L, 
    80L, 104L, 88L, 49L, 73L, 113L, 142L, 152L, 206L, 293L, 513L, 
    657L, 919L, 930L, 793L, 603L, 323L, 202L, 112L, 55L, 31L, 
    27L, 15L, 15L, 6L, 13L, 21L, 10L, 11L, 9L, 8L, 11L, 7L, 5L, 
    1L, 4L, 7L, 2L, 6L, 12L, 14L, 21L, 29L, 32L, 26L, 22L, 44L, 
    39L, 47L, 44L, 93L, 145L, 289L, 456L, 685L, 548L, 687L, 773L, 
    575L, 355L, 248L, 179L, 129L, 122L, 103L, 72L, 72L, 36L, 
    26L, 31L, 12L, 14L, 14L, 14L, 7L, 8L, 2L, 7L, 8L, 9L, 26L, 
    10L, 13L, 13L, 5L, 5L, 3L, 6L, 1L, 10L, 6L, 7L, 17L, 12L, 
    21L, 32L, 29L, 18L, 22L, 24L, 38L, 52L, 53L, 73L, 49L, 52L, 
    70L, 77L, 95L, 135L, 163L, 303L, 473L, 823L, 1126L, 1052L, 
    794L, 459L, 314L, 252L, 111L, 55L, 35L, 14L, 30L, 21L, 16L, 
    9L, 11L, 6L, 6L, 8L, 9L, 9L, 10L, 15L, 15L, 11L, 6L, 3L, 
    8L, 4L, 7L, 7L, 13L, 10L, 23L, 24L, 36L, 25L, 34L, 37L, 46L, 
    39L, 37L, 55L, 65L, 54L, 60L, 82L, 55L, 53L, 61L, 52L, 75L, 
    92L, 121L, 170L, 199L, 231L, 259L, 331L, 357L, 262L, 154L, 
    77L, 34L, 41L, 21L, 17L, 16L, 7L, 15L, 11L, 7L, 5L, 6L, 13L, 
    7L, 6L, 8L, 7L, 1L, 11L, 9L, 3L, 9L, 9L, 8L, 15L, 19L, 16L, 
    10L, 12L, 26L, 35L, 35L, 41L, 34L, 30L, 36L, 43L, 23L, 55L, 
    107L, 141L, 217L, 381L, 736L, 782L, 663L, 398L, 182L, 137L, 
    79L, 28L, 26L, 16L, 14L, 8L, 4L, 4L, 6L, 6L, 11L, 4L, 5L, 
    7L, 7L, 6L, 8L, 2L, 3L, 3L, 1L, 1L, 3L, 3L, 2L, 8L, 8L, 11L, 
    10L, 11L, 8L, 24L, 25L, 25L, 33L, 36L, 51L, 61L, 74L, 92L, 
    89L, 123L, 402L, 602L, 524L, 494L, 406L, 344L, 329L, 225L, 
    136L, 136L, 84L, 55L, 55L, 42L, 19L, 28L, 8L, 7L, 2L, 7L, 
    6L, 4L, 3L, 5L, 3L, 3L, 0L, 1L, 2L, 3L, 2L, 1L, 2L, 2L, 9L, 
    4L, 9L, 10L, 18L, 15L, 13L, 12L, 10L, 19L, 15L, 22L, 23L, 
    34L, 43L, 53L, 47L, 57L, 328L, 552L, 787L, 736L, 578L, 374L, 
    228L, 161L, 121L, 96L, 58L, 50L, 37L, 14L, 9L, 6L, 15L, 12L, 
    9L, 1L, 6L, 4L, 7L, 7L, 3L, 6L, 9L, 15L, 22L, 28L, 34L, 62L, 
    54L, 75L, 65L, 58L, 57L, 60L, 37L, 47L, 60L, 89L, 90L, 193L, 
    364L, 553L, 543L, 676L, 550L, 403L, 252L, 140L, 125L, 99L, 
    63L, 63L, 76L, 85L, 68L, 67L, 38L, 25L, 24L, 11L, 9L, 9L, 
    4L, 8L, 4L, 6L, 5L, 2L, 6L, 4L, 4L, 1L, 5L, 4L, 1L, 2L, 2L, 
    2L, 2L, 3L, 4L, 4L, 7L, 5L, 2L, 10L, 11L, 17L, 11L, 16L, 
    15L, 11L, 12L, 21L, 20L, 25L, 46L, 51L, 90L, 123L)), .Names = c("date", 
"cases"), row.names = c(NA, -835L), class = "data.frame")

2
La literatura antigua a menudo se deleita en fórmulas de complejidad rococó para este tipo de cosas. En la práctica, me inclinaría hacia atrás para pensar en esto como un problema de regresión para que los valores interpolados sean solo los valores pronosticados de la regresión. Consulte, por ejemplo, stats.stackexchange.com/questions/60500/…. El principio clave es que el ciclo principal se repite una vez al año.
Nick Cox

1
En la práctica, desea un ajuste muy cercano a los datos porque desea un suavizado local. Es posible que necesite varios pares de Fourier, pero los rendimientos decrecientes se establecen muy rápidamente, de modo que cada nuevo par de términos pronto agrega muy poco. Solo tienes que chuparlo y verlo. Trazar todo lo hace más claro.
Nick Cox

1
Probé esto brevemente con sus datos (usando Stata, no R). Brevemente, aunque hay una marcada estacionalidad en sus datos, no es lo suficientemente regular para que este enfoque funcione bien: por ejemplo, no solo el momento de los picos varía mucho, sino también el número de casos en el pico; en algunos años, pero no en todos, hay un pico secundario al final del año calendario. Además, la estacionalidad se agrava con una marcada tendencia a largo plazo. Supongo que para obtener casos diarios, debe recurrir a una interpolación o suavización estrictamente local de la serie semanal ampliada siete veces.
Nick Cox

1
En la ingeniería de sistemas de control, el criterio de Nyquist se utiliza como piso para la frecuencia de muestreo. Dice muestra a más del doble de la frecuencia más alta en sus datos. En la práctica, es más convencional muestrear por encima de 5 veces la frecuencia más alta que espera resolver. Si su entrada es datos semanales, Nyquist sugiere que la frecuencia resoluble más alta es del orden de 2 semanas. Sería mejor si tuviera otras estadísticas semanales para informar el muestreo y reforzar la media. en.wikipedia.org/wiki/Nyquist-Shannon_sampling_theorem
EngrStudent

+1 Excelente pregunta! ¿Sabe por casualidad cómo detectar la señal en el ruido (preferiblemente en R), siempre que tenga una serie de distribuciones, donde el ruido es gaussiano y la señal es gaussiana más otra parte? Miré muchos paquetes y funciones (señal, fft (), etc.) e incluso jugué con datos, tratando de aplicar la transformación de Fourier e incluso medidas de entropía, pero hasta ahora fue inútil. Estaba tratando de responder una pregunta (no la mía) y aprender algo nuevo en el camino, ya que el tema me parece bastante interesante.
Aleksandr Blekh

Respuestas:


4

No soy un experto en transformaciones de Fourier, pero ...

El rango de muestra total de Epstein fue de 24 meses con una tasa de muestra mensual: 1/12 años. Su rango de muestra es de 835 semanas. Si su objetivo es estimar el promedio de un año con datos de ~ 16 años basados ​​en datos diarios, necesita una tasa de muestra de 1/365 años. Así que sustituya 52 por 12, pero primero estandarice las unidades y expanda sus 835 semanas a 835 * 7 = 5845 días. Sin embargo, si solo tiene puntos de datos semanales, sugiero una frecuencia de muestreo de 52 con una profundidad de bits de 16 o 17 para el análisis de picos, alternativamente 32 o 33 para la comparación par / impar. Por lo tanto, las opciones de entrada predeterminadas incluyen: 1) usar las medias semanales (o la desviación absoluta media, MAD, o algo así) o 2) usar los valores diarios, que proporcionan una resolución más alta.

Liebman y col. eligió el punto de corte jmax = 2. Por lo tanto, la Fig. 3. contiene menos parciales y, por lo tanto, es más simétrica en la parte superior del seno en comparación con la Fig. 2. (Un solo parcial en la frecuencia base daría como resultado una onda sinusoidal pura. ) Si Epstein hubiera seleccionado una resolución más alta (por ejemplo, jmax = 12), la transformación presumiblemente solo produciría fluctuaciones menores con los componentes adicionales, o tal vez carecería de la potencia de cálculo.

A través de la inspección visual de sus datos, parece tener 16-17 picos. Sugeriría que establezca jmax o la "profundidad de bits" en 6, 11, 16 o 17 (consulte la figura) y compare las salidas. Cuanto más altos son los picos, más contribuyen a la forma de onda compleja original. Asumiendo una resolución de 17 bandas o una profundidad de bits, el 17º parcial contribuye mínimamente al patrón de forma de onda original en comparación con el 6º pico. Sin embargo, con una resolución de 34 bandas, detectaría una diferencia entre picos pares e impares, como lo sugieren los valles bastante constantes. La profundidad de bits depende de su pregunta de investigación, si está interesado solo en los picos o en ambos picos y valles, pero también cómo exactamente desea aproximar la serie original.

El análisis de Fourier reduce sus puntos de datos. Si invirtiera la función a cierta profundidad de bits utilizando una transformada de Fourier, probablemente podría verificar si las nuevas estimaciones medias corresponden a sus medias originales. Entonces, para responder su cuarta pregunta: los parámetros de regresión que mencionó dependen de la sensibilidad y la resolución que requiera. Si no desea un ajuste exacto, simplemente ingrese los medios semanales en la transformación. Sin embargo, tenga en cuenta que una menor profundidad de bits también reduce los datos. Por ejemplo, observe cómo la superposición armónica de Epstein en el análisis de Lieberman y sus colegas pierde el punto medio de la función de paso, con una curva sesgada ligeramente a la derecha (es decir, la temperatura es demasiado alta), en diciembre en la Figura 3.


Parámetros de Liebman y colegas:

  • Profundidad de bits: 2

Parámetros de Epstein:

  • Tasa de muestra: 12 [cada mes]
  • Rango de muestra: 24 meses
  • Profundidad de bits: 6

Sus parámetros:

  • Tasa de muestra: 365 [todos los días]

  • Rango de muestra: 5845 días

Enfoque exacto de profundidad de bits

Ajuste exacto basado en inspección visual. (Si tiene el poder, solo vea lo que sucede en comparación con profundidades de bits más bajas).

  • Espectro completo (picos): 17
  • Espectro completo (par / impar): 34

Enfoque de profundidad de bits variable

Esto es probablemente lo que deseas hacer:

  • Comparar solo picos: 6, 11, 16, 17
  • Comparar par / impar: 12, 22, 32, 34
  • Volver a sintetizar y comparar medios

Este enfoque produciría algo similar a la comparación de las Figuras en Epstein si invierte la transformación nuevamente, es decir, sintetiza los parciales en una aproximación de la serie de tiempo original. También podría comparar los puntos discretos de las curvas resintetizadas con los valores medios, tal vez incluso probar las diferencias significativas para indicar la sensibilidad de su elección de profundidad de bits.


ACTUALIZACIÓN 1:

Profundidad de bits

Un bit, abreviatura de dígito binario, es 0 o 1. Los bits 010101 describirían una onda cuadrada. La profundidad de bits es de 1 bit. Para describir una onda de sierra necesitaría más bits: 0123210. Cuanto más compleja es una onda, más bits necesita:

Esta es una explicación algo simplificada, pero cuanto más compleja es una serie temporal, más bits se requieren para modelarla. En realidad, "1" es un componente de onda sinusoidal y no una onda cuadrada (una onda cuadrada es más como 3 2 1 0 - vea la figura adjunta). 0 bits serían una línea plana. La información se pierde con la reducción de la profundidad de bits. Por ejemplo, el audio con calidad de CD suele ser de 16 bits, pero el audio con calidad de teléfono fijo suele ser de unos 8 bits.

Lea esta imagen de izquierda a derecha, centrándose en los gráficos:

FFT

En realidad, acaba de completar un análisis del espectro de potencia (aunque en alta resolución en su figura). Su próximo objetivo sería averiguar: ¿Cuántos componentes necesito en el espectro de potencia para capturar con precisión los medios de las series de tiempo?

ACTUALIZACIÓN 2


Para filtrar o no filtrar

No estoy completamente seguro de cómo introduciría la restricción en la regresión, ya que solo estoy familiarizado con las restricciones de intervalo, pero quizás DSP sea su solución. Esto es lo que pensé hasta ahora:

  • Paso 1. Divida la serie en componentes sinusales a través de la función de Fourier en el conjunto de datos completo (en días)

  • Paso 2. Recree la serie de tiempo a través de una transformada inversa de Fourier, con la restricción media adicional acoplada a los datos originales: las desviaciones de las interpolaciones de las medias originales deberían cancelarse entre sí (Harzallah, 1995).

Mi mejor conjetura es que tendrías que introducir la autorregresión si entiendo Harzallah (1995, Fig. 2) correctamente. Entonces, ¿eso probablemente correspondería a un filtro de respuesta infinita (IIR)?

IIR http://paulbourke.net/miscellaneous/ar/

En resumen:

  1. Derivar medios de datos sin procesar
  2. Transformada de Fourier Datos sin procesar
  3. Transformada inversa de Fourier transformada de datos.
  4. Filtre el resultado usando IIR

¿Quizás podría usar un filtro IIR sin pasar por el análisis de Fourier? La única ventaja del análisis de Fourier, como lo veo, es aislar y determinar qué patrones son influyentes y con qué frecuencia vuelven a ocurrir (es decir, oscilan). Luego, puede decidir filtrar los que contribuyen menos, por ejemplo, utilizando un filtro de muesca estrecha en el pico que menos contribuye (o filtro basado en sus propios criterios). Para empezar, puede filtrar los valles impares menos contribuyentes que se parecen más al ruido en la "señal". El ruido se caracteriza por muy pocos casos y sin patrón. Un filtro de peine en componentes de frecuencia impar podría reducir el ruido, a menos que encuentre un patrón allí.

Aquí hay un binning arbitrario, solo con fines explicativos: ¿Puedes ver el ruido en los valles?

Vaya, ¿hay una función R para eso?

Al buscar un filtro IIR, descubrí que las funciones R se interpolan en el paquete Signal. Olvida todo lo que dije hasta este punto. Las interpolaciones deberían funcionar como las de Harzallah: http://cran.r-project.org/web/packages/signal/signal.pdf

Juega un poco con las funciones. Debería hacer el truco.


ACTUALIZACIÓN 3

interp1 no interp

case.interp1 <- interp1(x=(ts.frame$no.influ.cases[!is.na(ts.frame$no.influ.case)]),y=ts.frame$yearday[!is.na(ts.frame$no.influ.case)],xi=mean(WEEKLYMEANSTABLE),method = c("cubic"))

Establezca xi en los medios semanales originales.


Muchas gracias por esta respuesta! Mi objetivo de investigación es simple: tengo medias semanales y quiero obtener estimaciones diarias y la media de las estimaciones diarias (interpoladas) durante una semana debería ser igual a la media semanal (es decir, el punto de datos original). ¿Crees que es posible? Además, no entiendo lo que significa "profundidad de bits" y "análisis de pico" (no tengo experiencia con las transformaciones de Fourier).
COOLSerdash

1
@COOLSerdash ver mi actualización. ¡Sí, es posible! Pero necesitaría encontrar la mejor manera de comparar las medias estimadas de la serie temporal resintetizada con las medias originales de la serie temporal original.
noumenal

(Por cierto: +1 mañana, ya no puedo votar hoy). Muchas gracias por la actualización, ahora está más claro. Pensé en el siguiente procedimiento: 1) ajustar una función de Fourier a las medias semanales por regresión, 2) usar las predicciones de la regresión para "llenar" los espacios entre los valores semanales (es decir, para obtener los valores diarios) 3) para cada semana, calcule la media de todos los valores diarios y esta media debería ser igual al valor original. En el documento, Epstein utilizó algún tipo de factor de "corrección" para forzar a la función a tener las propiedades deseadas, pero todavía no estoy seguro de cómo hacerlo con la regresión.
COOLSerdash

@COOLSerdash ¡Vea la actualización 2! Salta al párrafo final.
noumenal

¡Absolutamente fantástico! Muchas gracias por la investigación. Tenga en cuenta que he logrado implementar el enfoque de Harzallah utilizando splines (lineales y cúbicos). Así que supongo que lo necesitaría interp. He editado mi pregunta. Muchas gracias de nuevo.
COOLSerdash
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.