Muestreo aleatorio con reemplazo¿Es posible hacer esto? No parece que la función Tablas -> Subconjunto lo permita.
Reconozco que puede obtener estimaciones de Bootstrap en varias partes de la plataforma JMP Pro, pero me pregunto específicamente sobre la generación de tablas de datos.
¡Gracias!
Re: Muestreo aleatorio con reemplazoHola wendy
Sí, vea el guión a continuación. Toma una tabla de 4 líneas y extrae 10 muestras con reemplazo. La función AsList () es necesaria para lograr esto, de lo contrario, obtendrá un error, desafortunadamente.
Names Default To Here( 1 );
dt = astable((1::4)`);
nSamples = 10;
dt2 = dt << subset( rows( As List( J( nSamples, 1, Random Integer( 1, N Row( dt ) ) ) ) ) );
Re: Muestreo aleatorio con reemplazoHola Wendy, puedes hacer esto desde la tabla de datos. Haga clic con el botón derecho en el encabezado de una columna, seleccione Nueva columna de fórmula, Aleatorio y luego Muestra con reemplazo.
Re: Muestreo aleatorio con reemplazoHola Wendy, debo aclararte.
La técnica de Nueva columna de fórmula que menciona Mia funcionará siempre que el usuario desee una muestra cuyo tamaño sea menor o igual que el número de filas en la tabla. Si necesita una muestra más grande, no conozco una forma de hacerlo (eficientemente, es decir, concatenar una tabla consigo misma hasta que su tamaño sea lo suficientemente grande, es ineficiente pero funcionará) mediante apuntar y hacer clic. Tal vez otros intervengan con una forma de hacerlo.
El script funcionará para cualquier tamaño de muestra, pero necesita la función As List () alrededor de la matriz de filas cada vez que el número de filas solicitado excede el número de filas en la tabla original.
Re: Muestreo aleatorio con reemplazo¡Gracias a los dos! Sí, creo que el cliente puede tener una necesidad de sobremuestreo, por lo que sería útil saber cómo otros han logrado esto.
La otra pregunta relacionada es en torno a la estratificación. ¿Es posible volver a muestrear con reemplazo asegurando una distribución de otro atributo?
Re: Muestreo aleatorio con reemplazoHola @wendytseng ,
Hay un Muestra con complemento de reemplazo que puede realizar sobremuestreo, pero no estratificación con respecto a otra variable.
@Julian
Re: Muestreo aleatorio con reemplazoHola wendy
No estoy seguro de si su cliente está dispuesto a escribir, pero la idea puede extenderse fácilmente para estratificar una variable categórica. La secuencia de comandos breve a continuación hace esto para el conjunto de datos de datos físicos del automóvil y la columna "Tipo". Se solicitan 1000 filas, donde la tabla original tiene 116. Tenga en cuenta que se devuelven 1002 filas, debido al redondeo al número entero más cercano del tamaño de muestra de cada categoría.
Esta no es la forma más rápida de hacerlo, pero es relativamente sencillo de entender. ¿Quizás su cliente podrá escribir lo que quiera si le explica esto?
Salud,
Brady
Names Default To Here( 1 );
dt = Open( "$Sample_Data\Car Physical Data.jmp" );
stratCol = Column( dt, "Type" );
nSample = 1000;
//determine the (over)sampling ratio
sRatio = nSample / N Row( dt );
//get a list of the stratification column's values
categories = ((Associative Array( stratCol << get values ) << get keys));
// initialize the master row matrix
rowMat = [];
//For each category
For( i = 1, i <= N Items( categories ), i++,
// Get the table rows belonging to this category
catRows = dt << getrowswhere( dt:stratCol == categories[i] );
// Determine how many rows belong to this category
catN = N Items( catRows );
// Oversample these row values by the specified ratio, and append them to the master row list
rowMat |/= catRows[As List( J( Ceiling( catN * sRatio ), 1, Random Integer( 1, catN ) ) )];
);
// Subset the data table, using the final master row list
dt << subset( rows( As List( rowMat ) ) );
Re: Muestreo aleatorio con reemplazoPara el sobremuestreo, también existe este complemento: Complemento de particionamiento de datos estratificado (con opciones de equilibrio)
No he probado en JMP 15 ...
Re: Muestreo aleatorio con reemplazoEse es el que especificamos para el profesor en UC Denver, ¿verdad? Lo busqué en el código y no pude encontrar una manera de hacerlo funcionar sin entrar en Train / Test / Validate.