experimento de simulaciónQuiero hacer un experimento de simulación, generar 12 variables aleatorias, cada variable contiene 100 observaciones, de modo que las variables estén sujetas al problema de heterogeneidad y sigan la distribución normal.
El experimento se repite 10.000 veces.
# No sé cómo hacer esto con JMPpro
Gracias
Modelado estadístico avanzadoventanasRe: experimento de simulación"cómo hacer que las variables tengan una varianza heterogénea": ¿eso significa que cada columna necesita una sigma diferente? ¿Necesita 12 valores sigma elegidos al azar?
"Problema de heterocedasticidad": ¿eso significa que tiene una función en mente para cambiar la sigma basada en mu? ¿Y una función para elegir mu, probablemente al azar? (No tengo ninguna experiencia aquí, solo estoy adivinando después de una lectura de 30 segundos).
Creo que querrás hacer esto usando bucles for anidados. Mi sugerencia original es demasiado simple. También puedes usar fórmulas de columna, pero un script JSL será más fácil de administrar. Los bucles anidados se verían así
m = J( 100 * 10000, 12, 0 );
for(row=1, row<=nrows(m), row+=1,
for(col=1, col<=ncols(m), col+=1,
m[row,col] = HSD(row,col);
);
);<BR /><BR />dt = astable(m)<BR /><BR />...
Tienes que escribir la función escrita por el usuario "HSD" con lo que realmente deseas.
También es posible que desee cambiar las 10000 repeticiones a 2 o 3 repeticiones hasta que decida qué debe hacer el análisis. Utilicé resumen porque incluye todos los análisis de 10K en una tabla de datos. Es posible que desee ejecutar una plataforma 10.000 veces, obtener algunos resultados y luego cerrar la plataforma. No desea que se abran plataformas de 10K a la vez porque JMP se quedará sin memoria.
Re: experimento de simulaciónEstimado
Primero, muchas gracias por ayudar.
De hecho, el guión anterior se acerca a lo que quiero.
pero no sé cómo hacer que las variables tengan una varianza heterogénea.
No sé cómo modificar tu script, de modo que:
Número de variables aleatorias = 12
El número de observaciones en cada variable = 100
Y que las variables resultantes sufren el problema de heterocedasticidad.
Con posibilidad de repetir el experimento 10.000 veces.
Saludos
Re: experimento de simulaciónmira una búsqueda como esta https://www.google.com/search?q=site%3Ajmp.com+Heteroscedasticidad para encontrar preguntas previas que puedan tener buenas respuestas en la comunidad. En la GUI de búsqueda de Google puedes hacerlo con sitio:jmp.com para limitar los resultados:
site:jmp.com Heteroscedasticitysite:jmp.com Heteroscedasticitysitio:jmp.com Heteroscedasticidad
No soy estadístico. Los datos anteriores son aleatorios. La fuente que usted señala sugiere que los datos deberían tener algún tipo de repetición a lo largo de las estaciones... no completamente aleatoria. Si 1..12 representa meses del año, puede que no tenga sentido tener una columna de enero, una columna de febrero,... Podría tener mucho más sentido tener una columna de fecha y una columna de valor.
| fecha |
valor |
| 2020/01 |
7 |
| 2020/02 |
6 |
| 2020/03 |
8 |
Miré hacia arriba heterocedasticidad y sospecho que necesitarás un enfoque diferente para generar números aleatorios para que realmente muestren ese rasgo. De lo contrario, es simplemente aleatorio sin nada interesante, excepto que mu y sigma pasaron a normalidad aleatoria, como se ve en el gráfico anterior.
Solo estoy adivinando, y estoy muy arriesgado... Creo que tendrías que generar un mu aleatorio (¿normal? ¿uniforme?), y un sigma basado en ese mu, y luego usar RandomNormal(mu,sigma). O podría estar completamente equivocado.
Re: experimento de simulación
la fuente:
Autoregresión periódica de coeficiente aleatorio (repec.org)
Re: experimento de simulaciónEstimado Craige_Hales
Muchas gracias por ayudarme,
Quería hacer un experimento de simulación:
Número de variables aleatorias = 12
El número de observaciones en cada variable = 100
Y que las variables resultantes sufren el problema de heterocedasticidad.
# Con posibilidad de repetir el experimento 10.000 veces
Re: experimento de simulaciónEl resumen podría ser un buen comienzo
</CODE></P>
<PRE><CODE class=" language-jsl">dt = As Table( J( 100 * 10000, 12, Random Normal( 0, 1 ) ) );
dt << New Column( "group", formula( Floor( (Row() - 1) / 100 ) + 1 ) );
dt << runformulas;
dt:group << deleteformula;
dt << Go To( group );
dt << Move Selected Columns( To first );
dtsummary = dt << Summary(
Group( :group ),
Mean( :Col1 ),
Min( :Col1 ),
Max( :Col1 ),
Std Dev( :Col1 ),
Mean( :Col2 ),
Min( :Col2 ),
Max( :Col2 ),
Std Dev( :Col2 ),
Freq( "None" ),
Weight( "None" )
);
dtsummary << Graph Builder(
Size( 653, 452 ),
Show Control Panel( 0 ),
Variables(
X( :group ),
Y( :"Mean(Col1)"n ),
Y( :"Min(Col1)"n, Position( 1 ) ),
Y( :"Max(Col1)"n, Position( 1 ) ),
Y( :"Std Dev(Col1)"n, Position( 1 ) ),
Y( :"Mean(Col2)"n, Position( 1 ) ),
Y( :"Min(Col2)"n, Position( 1 ) ),
Y( :"Max(Col2)"n, Position( 1 ) ),
Y( :"Std Dev(Col2)"n, Position( 1 ) )
),
Elements(
Points(
X,
Y( 1 ),
Y( 2 ),
Y( 3 ),
Y( 4 ),
Y( 5 ),
Y( 6 ),
Y( 7 ),
Y( 8 ),
Legend( 7 )
)
)
);
</CODE></P>
<P><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Color!" style="width: 812px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="Color!" style="width: 812px;"><span class="lia-inline-image-display-wrapper" image-alt="Color!" style="width: 812px;"><img src="https://us.v-cdn.net/6038925/uploads/images/41991iFA52067AFA73F318/Untitled%204%20By%20%28group%29%20-%20Graph%20Builder.png" role="button" title="Untitled 4 By (group) - Graph Builder.png" alt="Color!" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Color!</span></span><SPAN class="lia-inline-image-caption" onclick="event.preventDefault();">Color!</SPAN></SPAN><SPAN class="lia-inline-image-caption" onclick="event.preventDefault();">¡Color!</SPAN></SPAN></P></LINGO-BODY><LINGO-SUB id="lingo-sub-481697" slang="en-US" mode="NONE">Re: experimento de simulación</LINGO-SUB><LINGO-BODY id="lingo-body-481697" slang="en-US" mode="NONE"><P>No sé cuál es el problema de la heterogeneidad, pero el resto podría verse así:</P>
<P> </P>
<PRE><CODE class=" language-jsl">dt = As Table( J( 100 * 10000, 12, Random Normal( 0, 1 ) ) );
dt << New Column( "group", formula( Floor( (Row() - 1) / 100 ) + 1 ) );
dt << runformulas;
dt:group << deleteformula;
dt << Go To( group );
dt << Move Selected Columns( To first );
Haz tu análisis con la variable de grupo.
12 million random normal numbers12 million random normal numbers12 millones de números normales aleatorios