Thursday, December 15, 2016

Moving Average Nan Matlab

Utilizando MATLAB, cómo puedo encontrar el promedio móvil de 3 días de una columna específica de una matriz y añadir el promedio móvil a esa matriz? Estoy tratando de calcular el promedio móvil de 3 días de abajo hacia arriba de la matriz. He proporcionado mi código: Dada la siguiente matriz a y máscara: He intentado implementar el comando conv pero estoy recibiendo un error. Aquí está el comando conv que he estado tratando de usar en la segunda columna de la matriz a: La salida que deseo se da en la siguiente matriz: Si usted tiene alguna sugerencia, lo agradecería mucho. Gracias Por la columna 2 de la matriz a, estoy calculando el promedio móvil de 3 días de la siguiente manera y colocando el resultado en la columna 4 de la matriz a (I renombrado matriz a como 39desiredOutput39 sólo por ilustración). El promedio de 3 días de 17, 14, 11 es 14 el promedio de 3 días de 14, 11, 8 es 11 el promedio de 3 días de 11, 8, 5 es 8 y el promedio de 3 días de 8, 5, 2 es 5. No hay valor en las 2 filas inferiores para la cuarta columna porque el cálculo para la media móvil de 3 días comienza en la parte inferior. La salida 39valid39 no se mostrará hasta al menos 17, 14 y 11. Esperamos que esto tiene sentido ndash Aaron Jun 12 13 at 1:28 1 Respuesta En general, sería de ayuda si se muestra el error. En este caso usted está haciendo dos cosas mal: Primero su convolución necesita ser dividido por tres (o la longitud de la media móvil) Segundo, observe el tamaño de c. Usted no puede apenas caber c en a. La forma típica de obtener un promedio móvil sería usar lo mismo: pero eso no se parece a lo que quieres. En cambio, se ve obligado a utilizar un par de líneas: Cómo estimar NaN con promedio móvil ponderado en Matlab Los NaNs en su problema al menos en el ejemplo están ahí para ajustar el tamaño de la matriz para el trazado y podrían ser eliminados. Te das cuenta de que este código produce la misma trama sin trucos NaN / desastre. Si los datos en z contiene NaN, es necesario eliminarlos con el comando isnan que le devuelve un booleano No tengo ni idea de lo que quiere hacer, pero aquí hay un ejemplo isnan (z (i)) yi1 (i) a (1) Si el valor de z es NaN, entonces la mejor predicción es que no cambió el índice de índice, i almacenar el índice (i-1) yi1 (i-1) Donde no tenía idea de final yi1 (índice) NaN atributos NaN a todo el valor que no tenía ni idea, así que tal vez mejor no trazarlos. (2: 11, yi1, g-) leyenda (valores reales, pronóstico: 0.9) retener Tengo una pregunta que necesita respondió quickmovingaverage v3.1 (1: 10, z, o: Mar 2008) MOVINGAVERAGE (X, F) suaviza los datos vectoriales X con una ventana de carrocería de tamaño 2F1, es decir, mediante el promedio de cada elemento con los elementos F a su derecha y los elementos F a su izquierda. Los elementos extremos también son promediados pero con menos datos, obviamente. Dejando los bordes intactos. El método es muy rápido. MOVINGAVERAGE2 (X, M, N) suaviza la matriz X con una ventana de carrocería de tamaño (2M1) x (2N1), es decir, mediante el promedio de cada elemento con sus elementos circundantes que encaja en la mencionada caja centrada en ella. Este también es muy rápido. Los elementos en los bordes también se promedian, pero las esquinas se dejan intactas. NANMOVINGAVERAGE (X, F) o NANMOVINGAVERAGE (X, F, 1) aceptan elementos NaNs en el vector X este interpola también aquellos elementos NaNs rodeados por elementos numéricos. NANMOVINGAVERAGE2 (X, M, N) o NANMOVINGAVERAGE2 (X, M, N, 1) aceptan elementos NaNs en la matriz X este interpola también aquellos elementos NaN rodeados por elementos numéricos. Nuevo relleno simple de GAP: SMOOTHMAVERAGE (X, M, N, IND) éste suaviza solamente los elementos de X (IND). Ignorando NaNs. Esto puede usarse para eliminar GAPS en sus datos. Cada M-files tiene un ejemplo (ver la captura de pantalla). Consulte abajo para ver los CAMBIOS en la v3.1. Nota: Mirando el código bidimensional de MOVINGAVERAGE2.M (y RUNMEAN para algunos consejos) alguien puede hacer fácilmente una MA N-dimensional. MATLAB 7.5 (R2007b) MATLAB Etiquetas de ruta de búsqueda para este archivo Por favor, inicie sesión para etiquetar archivos. Inicia sesión para añadir un comentario o calificación. Comentarios y Calificaciones (31) Me gustaría obtener una función de media móvil que trata de nan valores Carlos, me gusta su función movingaverage, muy fácil de usar. Tengo datos que tiene pequeños y grandes intervalos de tiempo y donx27t quiero filtrar a través de las lagunas. Podría romper el vector en cada hueco, pero eso significaría trabajo. Cualquier sugerencia sobre cómo manejar algo como esto Muy útil enemigo (principalmente para el trazado) Queridos todos, Ix27m que se ocupan de la brecha de relleno en las mediciones meteorológicas que el NaN debe ser llenado sobre la base de la ventana de tiempo de varios días. días). Por ejemplo, un NaN a las 5pm será reemplazado por el valor medio en la vecindad hora de barrio varios días. (Letx27s dicen 4, 5 y 6pm del barrio 5 días) Aquí está el hueso de la pregunta que me gusta tratar: valores rand (1,1000) x27 fakeNaN piso (rand (1,300) x271000) valores (fakeNaN) NaN para i 1 : Length (valores) n 24 i (1: 5) havenanindex find (isnan (valores)) newvalues ​​nanmean (valores (havenanindex n-1: havingnanindexn1)):: Algo así: Si tiene alguna solución o consejo, por favor No dude en hacérmelo saber. Gracias, Michael hola Carlos te he enviado un correo electrónico sobre las dificultades en la programación de la cobertura móvil recursiva tienes alguna idea sobre este tema cualquier ayuda por favor gracias por adelantado Edgar Guevara Codina Itx27s adecuado por postprocesamiento de señales espectroscópicas, muy útil de hecho. Carlos Adrian Vargas Aguilera Común Aslak, estás buscando FLEAS en lugar de BUGS. Pero, ok, USUARIOS: CUIDADO DE OUTLIERS y GRANDES MEDIOS cuando se utiliza CUMSUM runmean método Utilice bastante: NDNANFILTER :) Hola Carlos. Lo quise decir como una crítica constructiva. El punto es que el error es innecesario, fácilmente evitable, y no hay ventaja de velocidad. Usted tiene razón que en el ejemplo específico el error no es muy grande (aunque comete el error de compararlo con la media en lugar de la desviación estándar). Sin embargo, sólo porque el error es pequeño en ese caso no significa que es para todas las series. Intente por ejemplo esto: m3 n100000 xrandn (n, 1) x (1) 1e100 El problema es que el outlier da lugar a errores enormes en toda la serie suavizada, y no sólo dentro de la ventana. Me olvido de la calificación de Aslakx27s ejemplo (1 estrella): está comparando errores de precisión 1e-90.000000001 y 1e-13 eps. Sí 10.000 veces mayor, pero para valores con 1.000 significa que es 1x27000.000x27000.000 mayor que el mayor error. Eso es un gran error poco isnx27t él código agradable pero. El truco de cumsum para calcular promedios móviles puede resultar en grandes errores unneccarily bajo ciertas condiciones: La media es muy diferente de cero y la serie es muy larga. Herex27s una pequeña prueba que ilustra el problema mediante el uso de 3 enfoques diferentes de calcular el promedio móvil. Muestra que el método x27cumsumx27 tiene errores que son más de 10000 veces mayores que los errores del método de filtro. No hay una diferencia de velocidad real. M10 n300000 xrandn (n, 1) 1000 piensa por ejemplo en la presión atmosférica. Tic snan (longitud (x) - m1,1) para ii1: longitud (s) s (ii) media (x (ii (0: m-1) (M, 1) / m ffilter2 (flt, x, x27validx27) filtrotimetoc filtererrorsqrt (mean ((fs ) 2)) slowtime 9.4732 cumsumtime 0.041549 cumsumerror 2.6456e-009 filtrotime 0.033685 filtererror 1.4151e-013 Bueno comentado Compruebe los números de E / S y los errores vectorizados rápido Carlos Adrin Vargas Aguilera Encontró un error inofensivo en MOVINGAVERAGE, línea 75: coma extra en el Warning ja RK: De hecho, éstas son limitaciones de este promedio móvil, pero el problema con los bordes son comunes en la teoría del filtrado. El autor nos proporciona una idea y usted BTW: que GAP llenar es lo que estaba buscando. Gracias Carlos Adrin Vargas Aguilera Hola Sam Gracias por sus comentarios. No tuve ningún problema con el ejemplo, debe obtener la captura de pantalla de arriba (sin los agujeros), tal vez itx27s su liberación matlab, pero el código es muy simple y debe trabajar en otros. Sobre la F, para obtener un promedio centrado alrededor de un elemento, el número de elementos a la media debe ser impar, por lo que 2F1, y de esta manera F es la mitad de ancho de la ventana (ver la descripción anterior). Similar para el m, n en 2D. Hola Carlos, muchas gracias por su interesante código matlab. Tengo una duda sobre el tamaño de la ventana en 1D media móvil. El tamaño de la ventana es x272F1x27 puede usted por favor decirme lo que x27Fx27 representan También he intentado conseguir el promedio móvil 2D para trabajar con su ejemplo suministrado, i couldnx27t lo consigue work. Documentation tsmovavg salida tsmovavg (tsobj, s, lag ) Devuelve el promedio móvil simple para el objeto de serie temporal financiera, tsobj. Lag indica el número de puntos de datos anteriores utilizados con el punto de datos actual al calcular la media móvil. La salida tsmovavg (vector, s, lag, dim) devuelve la media móvil simple para un vector. Lag indica el número de puntos de datos anteriores utilizados con el punto de datos actual al calcular la media móvil. La salida tsmovavg (tsobj, e, timeperiod) devuelve la media móvil ponderada exponencial para la serie de tiempo financiero, tsobj. La media móvil exponencial es una media móvil ponderada, en la que timeperiod especifica el período de tiempo. Las medias móviles exponenciales reducen el retraso aplicando más peso a los precios recientes. Por ejemplo, una media móvil exponencial de 10 periodos pesa el precio más reciente en 18.18. Porcentaje exponencial 2 / (TIMEPER 1) o 2 / (WINDOWSIZE 1). La salida tsmovavg (vector, e, timeperiod, dim) devuelve la media móvil ponderada exponencial para un vector. La media móvil exponencial es una media móvil ponderada, en la que timeperiod especifica el período de tiempo. Las medias móviles exponenciales reducen el retraso aplicando más peso a los precios recientes. Por ejemplo, una media móvil exponencial de 10 periodos pesa el precio más reciente en 18.18. (2 / (periodo de tiempo 1)). La salida tsmovavg (tsobj, t, numperiod) devuelve la media móvil triangular para el objeto de serie temporal financiera, tsobj. La media móvil triangular dobla los datos. Tsmovavg calcula la primera media móvil simple con el ancho de la ventana de ceil (numperíodo 1) / 2. Luego calcula un segundo promedio móvil simple en el primer promedio móvil con el mismo tamaño de ventana. La salida tsmovavg (vector, t, numperiod, dim) devuelve el promedio móvil triangular de un vector. La media móvil triangular dobla los datos. Tsmovavg calcula la primera media móvil simple con el ancho de la ventana de ceil (numperíodo 1) / 2. Luego calcula un segundo promedio móvil simple en el primer promedio móvil con el mismo tamaño de ventana. La salida tsmovavg (tsobj, w, weights) devuelve la media móvil ponderada para el objeto de serie temporal financiera, tsobj. Suministrando pesos para cada elemento en la ventana en movimiento. La longitud del vector de peso determina el tamaño de la ventana. Si se utilizan factores de peso mayores para precios más recientes y factores más pequeños para los precios anteriores, la tendencia es más sensible a los cambios recientes. La salida tsmovavg (vector, w, pesos, dim) devuelve la media móvil ponderada del vector suministrando pesos para cada elemento de la ventana en movimiento. La longitud del vector de peso determina el tamaño de la ventana. Si se utilizan factores de peso mayores para precios más recientes y factores más pequeños para los precios anteriores, la tendencia es más sensible a los cambios recientes. La salida tsmovavg (tsobj, m, numperiod) devuelve la media móvil modificada para el objeto de serie temporal financiera, tsobj. La media móvil modificada es similar a la media móvil simple. Considere el argumento numperiod como el desfase de la media móvil simple. La primera media móvil modificada se calcula como una media móvil simple. Los valores subsiguientes se calculan sumando el nuevo precio y restando el último promedio de la suma resultante. La salida tsmovavg (vector, m, numperiod, dim) devuelve la media móvil modificada para el vector. La media móvil modificada es similar a la media móvil simple. Considere el argumento numperiod como el desfase de la media móvil simple. La primera media móvil modificada se calcula como una media móvil simple. Los valores subsiguientes se calculan sumando el nuevo precio y restando el último promedio de la suma resultante. Dim 8212 dimensión para operar a lo largo de entero positivo con valor 1 o 2 Dimensión para operar a lo largo, especificado como un entero positivo con un valor de 1 o 2. dim es un argumento de entrada opcional y si no se incluye como una entrada, el valor predeterminado Se asume el valor 2. El valor predeterminado de dim 2 indica una matriz orientada a filas, donde cada fila es una variable y cada columna es una observación. Si dim 1. se supone que la entrada es un vector de columna o una matriz orientada a columnas, donde cada columna es una variable y cada fila una observación. E 8212 Indicador para el vector de caracteres de media móvil exponencial El promedio móvil exponencial es una media móvil ponderada, en la que el tiempo es el período de tiempo de la media móvil exponencial. Las medias móviles exponenciales reducen el retraso aplicando más peso a los precios recientes. Por ejemplo, una media móvil exponencial de 10 periodos pesa el precio más reciente en 18.18. Porcentaje exponencial 2 / (TIMEPER 1) o 2 / (WINDOWSIZE 1) período de tiempo 8212 Longitud del período de tiempo entero no negativo Select Your CountryDocumentation arima class Descripción arima crea objetos modelo para el modelo de serie de tiempo lineal no estacionario o de raíz unitaria. Esto incluye modelos de media móvil, autorregresiva (AR), autoregresivo mixto y media móvil (ARMA), integrado (ARIMA), multiplicativo estacional y lineal que incluyen un componente de regresión (ARIMAX). Especifique los modelos con coeficientes conocidos, estime los coeficientes con los datos usando la estimación. O simular modelos con simular. Por defecto, la varianza de las innovaciones es un escalar positivo, pero se puede especificar cualquier modelo de varianza condicional soportado, como un modelo GARCH. Construcción Mdl arima crea un modelo ARIMA de grados cero. Mdl arima (p, D, q) crea un modelo de series de tiempo lineal no estacional utilizando el grado autorregresivo p. Grado de diferenciación D. y grado medio móvil q. Mdl arima (Name, Value) crea un modelo de serie cronológica lineal utilizando opciones adicionales especificadas por uno o más argumentos de nombre y par de valores. Nombre es el nombre de la propiedad y Valor es el valor correspondiente. El nombre debe aparecer dentro de comillas simples (). Puede especificar varios argumentos de par nombre-valor en cualquier orden como Nombre1, Valor1. NombreN, ValueN. Argumentos de entrada Nota: Sólo puede utilizar estos argumentos para modelos no estacionales. Para los modelos estacionales, utilice la sintaxis nombre-valor. Definiciones Lag Operador El operador de retraso L se define como L i y t y t x2212 i. Puede crear polinomios de operador de retraso utilizando los mismos para condensar la notación y resolver ecuaciones de diferencia lineal. Los polinomios del operador de retraso en las definiciones del modelo de serie temporal lineal son: x03D5 (L) 1 x2212 x03D5 L x2212 x03D5 2 L 2 x2212. X2212 x03D5 p L p. Que es el polinomio autorregresivo grado p. X03B8 (L) 1 x03B8 L x03B8 2 L 2. X03B8 q L q. Que es el polinomio de grado q medio móvil. X03A6 (L) 1 x2212 x03A6 p 1 L p 1 x 2212 x03A6 p 2 L p 2 x 2212. X2212 x03A6 p s L p s. Que es el polinomio autorregresivo estacional de grado p s. X0398 (L) 1 x0398 q 1 L q 1 x0398 q 2 L q 2. X0398 q s L q s. Que es el grado q s polinomio promedio móvil estacional. Nota: Los grados de los operadores de lag en los polinomios estacionales 934 (L) y 920 (L) no se ajustan a los definidos por Box y Jenkins 1. En otras palabras, Econometrics Toolboxx2122 no trata p 1 s. P _ {2} 2s. P s c p s ni q 1 s. Q 2 2s. Q s c q s donde c p y c q son enteros positivos. El software es flexible ya que le permite especificar los grados de operador lag. Consulte Especificaciones del modelo ARIMA multiplicativo. Linear Time Series Modelo Un modelo lineal de series temporales para el proceso de respuesta yt y las innovaciones 949 t es un proceso estocástico que tiene la forma ytc x03D5 1 yt x2212 1 x2026 x03D5 pyt x2212 p x03B5 t x03B8 1 x03B5 t x2212 1 x2026 x03B8 q x03B5 t x2212 Q. En la notación del operador de lag, este modelo es x03D5 (L) y t c x03B8 (L) x03B5 t. El modelo general de serie de tiempos, que incluye diferenciación, estacionalidad multiplicativa y diferenciación estacional, es x03D5 (L) (1 x 2212 L) D x03A6 (L) (1 x 2212 L s) D sytc x03B8 (L) x0398 (L) x03B5 t . Los coeficientes de los polinomios autorregresivos no estacionales y estacionales x03D5 (L) y x03A6 (L) corresponden a AR y SAR. respectivamente. Los grados de estos polinomios son p y p s. De forma similar, los coeficientes de los polinomios x03B8 (L) y x0398 (L) corresponden a MA y SMA. Los grados de estos polinomios son q y q s. respectivamente. Los polinomios (1 x 2212 L) D y (1 x 2212 L s) D s tienen un grado de integración no estacional y estacional D y D s. respectivamente. Tenga en cuenta que s corresponde a la propiedad de modelo Seasonality. D s es 1 si Seasonality es diferente de cero, y es 0 de lo contrario. Es decir, el software aplica la diferenciación estacional de primer orden si la Estacionalidad 8805 1. La propiedad del modelo Q es igual a q q s. Puede ampliar este modelo incluyendo una matriz de datos predictores. Para más detalles, vea Modelo ARIMA Incluyendo Covariados Exógenos. Requisitos de estacionariedad x03D5 (L) y t c x03B8 (L) x03B5 t. Donde 949 t tiene una media 0, varianza 963 2. Y C o v (x03B5 t. X03B5 s) 0 para t 8800 s. Es estacionario si su valor esperado, varianza y covarianza entre los elementos de la serie son independientes del tiempo. Por ejemplo, el modelo MA (q), con c 0. Es estacionario para cualquier q x003C x221E porque E (yt) x03B8 (L) 0 0. V ar (yt) x03C3 2 x2211 i 1 q x03B8 i 2. y C ov (y t. Yt x2212 s) están libres de t para Todos los puntos de tiempo 1. Unidad Raíz La serie temporal x007B y t t 1. T x007D es un proceso de raíz unitaria si su valor esperado, varianza o covarianza crece con el tiempo. Posteriormente, la serie temporal no es estacionaria. Referencias 1 Box, G. E. P. G. M. Jenkins y G. C. Reinsel. Análisis de series temporales: Predicción y control. 3ª ed. Englewood Cliffs, NJ: Prentice Hall, 1994. 2 Enders, W. Serie Econométrica Aplicada. Hoboken, NJ: John Wiley amp Sons, Inc. 1995. Seleccione su país


No comments:

Post a Comment