Cómo trazar curvas de ajuste de pico individuales en un histograma (ajustado con 2 mezclas normales)Hola,
Tengo un conjunto de datos que contiene múltiples picos, que puedo ajustar bien usando la opción Mezcla Normal 2 Ajustada del gráfico de histograma.Esto genera la media y sigma para cada pico, así como los pesos como valores numéricos y superpone la curva de ajuste sobre el histograma.¿Existe alguna forma de visualizar también los ajustes de picos individuales superpuestos en el histograma?
¡Gracias!
Denny
Re: Cómo trazar curvas de ajuste de picos individuales en un histograma (ajustado con 2 mezclas normales)Hola @txnelson ,
¿Se puede hacer algo similar en el gráfico de cuantiles normal? Me gustaría producir algo como el adjunto (dos modos separados), pero hacerlo de forma automática (reproducible), no solo usando Editar > Copiar contenido del marco y Editar Pegar contenido del marco después de agregar personalizaciones a un gráfico y pegarlas en otro. grafico.

@PatrickGiuliano
Re: Cómo trazar curvas de ajuste de picos individuales en un histograma (ajustado con 2 mezclas normales)Prueba esto:
Names Default To Here( 1 );
platform = Data Table( "Big Class.jmp" ) <<
Distribution(
Continuous Distribution(
Column( :height ),
Fit Distribution( Normal Mixtures( Clusters( 2 ) ) )
)
);
Wait( 0 );
Report( platform )[Outline Box( "Distributions" )][Outline Box( "height" )][
Outline Box( "Fitted Normal 2 Mixture" )][Outline Box( "Parameter Estimates" )][
Table Box( 1 )] << Make Into Data Table;
y aquí está con una columna Por:
Names Default To Here( 1 );
platform = Data Table( "Big Class.jmp" ) <<
Distribution(
Continuous Distribution(
Column( :height ),
Fit Distribution( Normal Mixtures( Clusters( 2 ) ) )
),
by(:sex)
);
Wait( 0 );
Report( platform[1] )[Outline Box( 1 )][Outline Box( "height" )][
Outline Box( "Fitted Normal 2 Mixture" )][Outline Box( "Parameter Estimates" )][
Table Box( 1 )] << Make Combined Data Table;
La diferencia con la columna Por es que "plataforma" ahora tiene una lista de plataformas, no una sola plataforma. Entonces, tenemos que indexar con [1] para obtener la primera entrada en la lista. Además, el primer cuadro de esquema del informe ahora tiene un valor por grupo. Por lo tanto, es más fácil indexarlo por número en lugar de por nombre.
Re: Cómo trazar curvas de ajuste de picos individuales en un histograma (ajustado con 2 mezclas normales)Hola, probé esta técnica usando (como se describe en la publicación)
dist =Distribution( Continuous Distribution(
Column( :Column 1 ),
Fit Distribution( Normal Mixtures( Clusters( 2 ) ) ) ));
para otro dato propio datable y funciona muy bien. Sin embargo, quiero poder obtener las estimaciones de los parámetros usando <
solía
Fit Distribution( Normal Mixtures( Clusters( 2 ) ) ) ))<<MAKE into="" data="https://community.jmp.com/" table=""></MAKE>
Probablemente he cometido algún error elemental, pero no lo encuentro.
Además, si tengo éxito, con la amable ayuda de la comunidad, me gustaría mucho aprender cómo incluir valores por parámetros, si los hubiera usado (tengo que realizar este análisis para muchos subconjuntos en la tabla de datos).
Muchas gracias de antemano.
Poul Ravn Sørensen
Re: Cómo trazar curvas de ajuste de picos individuales en un histograma (ajustado con 2 mezclas normales)Exactamente lo que estaba buscando. ¡Gracias!Re: Cómo trazar curvas de ajuste de picos individuales en un histograma (ajustado con 2 mezclas normales)Hay un par de formas de hacer esto.Ambos requieren agregar JSL a su código.El método 1 consiste en hacer clic derecho en el gráfico y seleccionar "Personalizar...".Esto le permitirá modificar el gráfico o agregarle elementos.Si hace clic en "+", le permitirá agregar un script, y una de las muestras permite la creación de una curva normal.Con algunos conocimientos de trazado utilizando la función Y y la función de densidad normal, podría agregar dicha curva.
A continuación se muestra un ejemplo de cómo agregar JSL a un script para generar 2 curvas normales encima de los datos de muestra.La función Agregar script de gráficos() hace el trabajo.Tomé un par de atajos codificando las 2 medias y desviaciones estándar diferentes y también los factores de escala basados en el número total de puntos de datos divididos por los puntos de datos para la barra máxima en la distribución del histograma.Estos valores de datos deberían calcularse dentro de cualquier secuencia de comandos determinada, en función de lo que esté proponiendo exactamente.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA\Big Class.jmp" );
Dis = dt << Distribution(
Continuous Distribution( Column( :height ), Vertical( 0 ), Density Axis( 1 ) )
);
Report( Dis )[Frame Box( 2 )] << Add Graphics Script(
mu = 63;
sigma = 3.2;
Pen Color( "Red" );
Y Function( Normal Density( (x - mu) / sigma ) / (40 / 12), x );
mu = 51.5;
sigma = .87;
Pen Color( "Blue" );
Y Function( Normal Density( (x - mu) / sigma ) / (40 / 2), x );
);

El código que se encuentra dentro de la función Agregar script de gráficos() es el mismo código que agregaría al script si elige la opción Personalizar...
Re: Cómo trazar curvas de ajuste de picos individuales en un histograma (ajustado con 2 mezclas normales)Hola,
Vi la opción para mostrar el ajuste general de la curva pero no los picos individuales.Esto es lo que quiero generar (disculpe mi dibujo tosco):

¡Gracias!
Re: Cómo trazar curvas de ajuste de picos individuales en un histograma (ajustado con 2 mezclas normales)Esta plataforma de distribución puede mostrar el ajuste de la curva:

dt = New Table( "Two Peaks",
Add Rows( 500 ),
New Column( "Column 1",
Numeric, "Continuous", Format( "Best", 12 ),
Formula(
If( Random Uniform() > 0.3,
Random Normal( 5 ),
Random Normal( 10 )
)
)
)
);
dist =Distribution(
Continuous Distribution(
Column( :Column 1 ),
Fit Distribution( Normal Mixtures( Clusters( 2 ) ) )
)
);