Cómo trazar curvas de ajuste de pico individuales en histograma (mezcla ajustada de 2 normales)Hola,
Tengo un conjunto de datos que contiene múltiples picos, que puedo ajustar muy bien usando la opción de Mezcla Normal Ajustada 2 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.¿Hay alguna manera de visualizar los ajustes de picos individuales superpuestos en el histograma también?
¡Gracias!
Denny
Re: Cómo trazar curvas de ajuste de pico individuales en histograma (mezcla ajustada de 2 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 de marco y Editar Pegar contenido de marco después de agregar personalizaciones a un gráfico y pegarlas en otro grafico.

@patrickgiuliano
Re: Cómo trazar curvas de ajuste de pico individuales en histograma (mezcla ajustada de 2 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 una columna Por es que "plataforma" ahora tiene una lista de plataformas, no una única plataforma. Entonces, tenemos que indexar con un [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 nombre.
Re: Cómo trazar curvas de ajuste de pico individuales en histograma (mezcla ajustada de 2 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 otros datos datables por mi cuenta y funciona muy bien. Sin embargo, quiero poder obtener las estimaciones de parámetros usando <
solía
Fit Distribution( Normal Mixtures( Clusters( 2 ) ) ) ))<<MAKE into="" data="https://community.jmp.com/" table=""></MAKE>
Probablemente cometí algún error elemental, pero no puedo encontrarlo.
Además, si tuviera éxito, con la amable ayuda de la Comunidad, me gustaría mucho aprender a incluir valores por parámetro, si los hubiera usado (tengo que realizar este análisis para muchos subconjuntos en la tabla de datos).
Muchas gracias de antemano.
Poul Ravn Sorensen
Re: Cómo trazar curvas de ajuste de pico individuales en histograma (mezcla ajustada de 2 normales)Exactamente lo que estaba buscando. ¡Gracias!Re: Cómo trazar curvas de ajuste de pico individuales en histograma (mezcla ajustada de 2 normales)Hay un par de maneras de hacer esto.Ambos requieren la adición de JSL a su código.El método 1 es hacer clic derecho en el gráfico y seleccionar "Personalizar...".Esto le permitirá modificar el gráfico o agregarle.Si hace clic en el "+", le permitirá agregar una secuencia de comandos, y una de las muestras permite la creación de una curva normal.Con algún conocimiento de cómo graficar usando 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 sobre los datos de muestra.La función Add Graphics Script() hace el trabajo.Tomé un par de atajos codificando de forma rígida 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 tendrían que calcularse dentro de cualquier secuencia de comandos dada, 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 secuencia de comandos de gráficos () es el mismo código que agregaría a la secuencia de comandos si elige la opción Personalizar...
Re: Cómo trazar curvas de ajuste de pico individuales en histograma (mezcla ajustada de 2 normales)Hola,
Vi la opción de mostrar el ajuste de la curva general, pero no los picos individuales.Esto es lo que quiero generar (disculpe mi dibujo tosco):

¡Gracias!
Re: Cómo trazar curvas de ajuste de pico individuales en histograma (mezcla ajustada de 2 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 ) ) )
)
);