Media móvil y media móvil ponderada en un conjunto de datosHola,
Estoy tratando de hacer un promedio móvil y un promedio móvil ponderado en el conjunto de datos que publiqué a continuación.
Quiero hacer una media móvil para la columna 'Media'.
¿También puedo repetir esta fórmula con el grupo 'Muestra' en mi conjunto de datos?
Re: Media móvil y media móvil ponderada en un conjunto de datosPara los casos en los que "Contador" es menor que 5, es necesario ajustar el divisor hasta la suma de los pesos para cada uno de esos niveles, por lo que el código debería verse así:
If( :sample != Lag( :sample, 1 ) | Row() == 1,
counter = 0
);
counter = counter + 1;
If(
counter == 1, :Mean1,
counter == 2, Mean( Lag( ::Mean1, 1 ) * 1, Lag( ::Mean1, 1 ) * 4 ) / 5,
counter == 3, Mean( Lag( ::Mean1, 1 ) * 1, Lag( ::Mean1, 1 ) * 4, Lag( ::Mean1, 1 ) * 6 ) / 11,
counter == 4,
Mean( Lag( ::Mean1, 1 ) * 1, Lag( ::Mean1, 1 ) * 4, Lag( ::Mean1, 1 ) * 6, Lag( ::Mean1, 1 ) * 4 ) /
15,
Mean(
Lag( ::Mean1, 1 ) * 1,
Lag( ::Mean1, 1 ) * 4,
Lag( ::Mean1, 1 ) * 6,
Lag( ::Mean1, 1 ) * 4,
Lag( ::Mean1, 1 ) * 1
) / 16
);
Re: Media móvil y media móvil ponderada en un conjunto de datosIf( :muestra != Lag( :muestra, 1 ) | Fila() == 1,
contador = 0
);
contador = contador + 1;
Si(
contador == 1, :Media1,
contador == 2, Media( Retraso( ::Media1, 1 ) * 1, Retraso( ::Media1, 1 ) * 4 ) / 16,
contador == 3,
Media( Retraso( ::Media1, 1 ) * 1, Retardo( ::Media1, 1 ) * 4, Retardo( ::Media1, 1 ) * 6 )
/ dieciséis,
contador == 4,
Significar(
Retraso( ::Media1, 1 ) * 1,
Retraso( ::Media1, 1 ) * 4,
Retraso( ::Media1, 1 ) * 6,
Retraso( ::Media1, 1 ) * 4
) / dieciséis,
Significar(
Retraso( ::Media1, 1 ) * 1,
Retraso( ::Media1, 1 ) * 4,
Retraso( ::Media1, 1 ) * 6,
Retraso( ::Media1, 1 ) * 4,
Retraso( ::Media1, 1 ) * 1
) / dieciséis
);
¿La fórmula se verá así o tendré que dividir el retraso de los pesos 1 y 4 entre 5 y así sucesivamente?
Re: Media móvil y media móvil ponderada en un conjunto de datosLa función Col Moving Average() se agregó en JMP 13. Por lo tanto, para JMP 12 necesitarás usar el código que proporcioné. Y todo lo que necesitas hacer es agregar la división por 16 al código. Asegúrese de dividir los subconjuntos de retraso 1,2,3,4 con el subconjunto apropiado, el 16
Re: Media móvil y media móvil ponderada en un conjunto de datosNo veo la función Col Moving Average en JMP 12
Re: Media móvil y media móvil ponderada en un conjunto de datosNo veo la función Col Moving Average en JMP 12
Re: Media móvil y media móvil ponderada en un conjunto de datos¿Esta fórmula dividirá la media ponderada por la suma de pesos que es 16?
No obtengo la respuesta esperada usando la fórmula
Re: Media móvil y media móvil ponderada en un conjunto de datosVea la nota al final de esta respuesta.
La fórmula que utiliza la función index() no funcionará para un cálculo ponderado. Lo que supongo que quieres hacer se ilustra con la siguiente fórmula
Mean(
Lag( ::Mean1, 1 ) * 1,
Lag( ::Mean1, 1 ) * 4,
Lag( ::Mean1, 1 ) * 6,
Lag( ::Mean1, 1 ) * 4,
Lag( ::Mean1, 1 ) * 1
);
Esta estructura no permite el cálculo simple de 2 niveles, por lo que debe ampliarse, pero es básicamente la misma lógica.
If( :sample != Lag( :sample, 1 ) | Row() == 1,
counter = 0;
);
counter = counter + 1;
If( counter == 1,
:Mean1,
counter ==2,
Mean(
Lag( ::Mean1, 1 ) * 1,
Lag( ::Mean1, 1 ) * 4
),
counter ==3,
Mean(
Lag( ::Mean1, 1 ) * 1,
Lag( ::Mean1, 1 ) * 4,
Lag( ::Mean1, 1 ) * 6
),
counter ==4,
Mean(
Lag( ::Mean1, 1 ) * 1,
Lag( ::Mean1, 1 ) * 4,
Lag( ::Mean1, 1 ) * 6,
Lag( ::Mean1, 1 ) * 4
),
Mean(
Lag( ::Mean1, 1 ) * 1,
Lag( ::Mean1, 1 ) * 4,
Lag( ::Mean1, 1 ) * 6,
Lag( ::Mean1, 1 ) * 4,
Lag( ::Mean1, 1 ) * 1
)
);
Y después de todo esto, encontré la función Col Moving Average(). Así que no hagas nada de lo que sugerí anteriormente; en su lugar, ve a
Ayuda==>Índice de secuencias de comandos==>Promedio móvil de columnas
y obtendrás una única función que hará todo lo que has pedido
Re: Media móvil y media móvil ponderada en un conjunto de datos¿Cómo puedo hacer una media móvil ponderada con la fórmula anterior con los coeficientes 1,4,6,4,1?
Re: Media móvil y media móvil ponderada en un conjunto de datosGracias por sus prontas respuestas. Funcionó para mi conjunto de datos.
Re: Media móvil y media móvil ponderada en un conjunto de datosEs sólo una simple extensión de su fórmula. Solo tiene que realizar un seguimiento de cuándo cambia :Sample y luego comenzar los cálculos desde cero.
If( :sample != Lag( :sample, 1 ) | Row() == 1,
counter = 0;
startrow = Row();
);
counter = counter + 1;
If( counter < 3,
Mean( :Mean1[Index( startrow, Row() )] ),
Mean( :Mean1[Index( Row() - (3 - 1), Row() )] )
);
Re: Media móvil y media móvil ponderada en un conjunto de datosPude obtener la media móvil de 3 puntos y también pude aplicar la fórmula.
"Si (Fila()
,
Media (: Media1 [Índice (1, Fila ())]),
Media( :Media1[Índice( Fila() - (3 - 1), Fila() )] )
)"
¿Cómo puedo hacer esto por grupo para la columna "Muestra"?
Para cada valor de Muestra, quiero un promedio móvil para los valores "Mean1" y tengo 239 valores de Muestra.
gracias por su ayuda
Re: Media móvil y media móvil ponderada en un conjunto de datosUsar una fórmula para definir los valores de una columna es una parte esencial de JMP. Está bien documentado en el libro de JMP llamado "Uso de JMP". Te sugiero que leas ese libro. Se instaló en su computadora cuando instaló JMP. Puedes acceder a él en el menú desplegable Ayuda.
Ayuda==>Libros==>Usando JMP
De todos modos, aquí se explica cómo usar la fórmula que le proporcioné: cree una nueva columna en su tabla de datos y luego haga clic derecho en el encabezado de la columna y seleccione "Fórmula".

Como puede ver en mi ejemplo, llamé a la nueva columna "Promedio móvil".
La siguiente ventana que se abrirá es el Editor de fórmulas.

Le permite apuntar y hacer clic y crear las fórmulas que desee. Sin embargo, también puedes hacer doble clic en el cuadro delineado en azul que tiene el texto "sin fórmula" y aparecerá el editor.

Como se ve en la ventana de arriba, acabo de escribir la fórmula o la puedo pegar en la ventana. Luego, cuando haga clic en el botón "Aceptar", verá la forma gráfica de la fórmula.

Luego, cuando haga clic en el botón "Aceptar" o en el botón "Aplicar", la fórmula se ejecutará para la nueva columna.

Re: Media móvil y media móvil ponderada en un conjunto de datosHola txnelson,
¿La siguiente fórmula que sugirió es un promedio móvil para la columna 'Puntos'? ¿Y está utilizando la fórmula Media()?
¿Cómo puedo poner esto en un bucle for para hacerlo en todas las filas?
También quiero hacer esto por grupo.
Re: Media móvil y media móvil ponderada en un conjunto de datosAquí hay una fórmula de promedio móvil.
Mean( Lag( :Points, 1 ),
Lag( :Points, 2 ),
Lag( :Points, 3 ),
Lag( :Points, 4 ),
Lag( :Points, 5 )
)
y una media móvil ponderada
Mean(
Lag( :points, 1 ) * :mean,
Lag( :points, 2 ) * :mean,
Lag( :points, 3 ) * :mean,
Lag( :points, 4 ) * :mean,
Lag( :points, 5 ) * :mean
)