Creación de subconjuntos manteniendo la distribución original.Si tengo una tabla de datos con una variable continua y quiero crear varios subconjuntos que mantengan la misma distribución que la tabla original, ¿cómo puedo hacerlo?
Tengo JMP Pro y probé la opción Estratificar en el menú Subconjunto, pero no pude entender cómo hacerlo.
Exploración y visualización de datosRe: Creación de subconjuntos manteniendo la distribución original.Puede crear una columna de validación (en Modelado predictivo) estratificada como desee y luego usar esos subconjuntos. Creo que está limitado, al menos inicialmente, a 3 subconjuntos (subconjuntos de capacitación, validación y prueba), pero podría hacerlo varias veces si necesita más. Nunca he usado la opción estratificar en el menú Subconjunto, pero parece que funciona pero solo creará un subconjunto a la vez.
Re: Creación de subconjuntos manteniendo la distribución original.Como tiene JMP Pro y mencionó Stratify, aquí tiene otra opción: "Crear columnas plegadas en K" del complemento XGBoost para JMP Pro ( https://community.jmp.com/t5/JMP-Add-Ins/ XGBoost-Add-In-for-JMP-Pro/ta-p/319383 ) Y lea las páginas 3, 4, 5
en el archivo "XGBoost Add-in.pdf".

La función crea subconjuntos (el complemento lo llama plegado) que mantienen la distribución original (el complemento lo llama equilibrado), al tiempo que respeta la estratificación manteniendo equilibradas también las variables de estratificación. Consulte los histogramas en la página 5 de ese documento pdf.
Re: Creación de subconjuntos manteniendo la distribución original.Gracias por tu respuesta.
Me he dado cuenta de que se necesitan más de 3 subconjuntos. Puede usar "Crear columna de validación K-fold" en Modelado predictivo -> Crear columna de validación.
Re: Creación de subconjuntos manteniendo la distribución originalCreo que todo lo que necesitas hacer es especificar el subconjunto utilizando la capacidad de muestreo aleatorio en Tablas=> Plataforma de subconjuntos. El muestreo aleatorio por tasa o tamaño te dará tablas de datos con la misma distribución que la tabla original.
Re: Creación de subconjuntos manteniendo la distribución originalEn sentido estricto, se requiere un muestreo con reemplazo si se desea obtener la misma distribución que la original. Esa es la base de los métodos de remuestreo y de arranque. El comando Subset realiza un muestreo aleatorio sin reemplazo. Creo que se necesita un script para obtener lo que se necesita. El muestreo se basaría en el cálculo de subíndices aleatorios como este:
subscript = J( sample size, 1, Random Integer( 1, N Row( dt ) )
Este vector podría usarse en la creación de una columna de datos en una nueva tabla de datos.
New Table( "Sample", New Column( "Data", Value( dt:originalColumn[subscript] ) ) );
Re: Creación de subconjuntos manteniendo la distribución originalHola @bbenny7 ,
Este tema me pareció interesante por una razón similar: quería crear subconjuntos correctos de una tabla de datos, pero estratificándolos en una columna. Ya lo había hecho antes, como sugirió @dlehman1 , usando una columna de validación para estratificar en las columnas de interés, pero también tenía curiosidad por saber cómo hacerlo de otra manera en caso de necesitar varias tablas de datos. Intenté el método sugerido por @Mark_Bailey , pero descubrí que necesitaba dividir el código JSL para New Table() en dos líneas: una que definiera la nueva tabla y la siguiente que asignara los valores según la otra columna de interés de la tabla de datos. No conseguí que funcionara como estaba diseñado su código original. Así es como me funcionó un código modificado:
Names Default To Here( 1 );
dt = Data Table( "originaldatatable" ); //assigns the original data table to the variable dt
subscript = J( samplesize, 1, Random Integer( 1, N Rows( dt ) ) ); //creates the random integer vector of length 'samplesize'
dt2 = New Table( "Sample", New Column( "Data" ) ); //creates new data table with column Data
dt2:Data << Set Values( dt:originalColumn[subscript] ); // assigns values to Data based on the row entries for the originalColumn
Como una pequeña prueba divertida, generé 4 subconjuntos haciendo un bucle For() y colocando la línea de subíndice en él (para generar un nuevo conjunto de números de fila) y comparé las distribuciones de los 4 conjuntos, y sus estadísticas de resumen son todas muy similares.

Hice una prueba similar, pero creé cuatro columnas de validación estratificadas y analicé sus estadísticas. La N es diferente porque la plataforma "Crear columna de validación" no generaba las mismas proporciones que obtuve anteriormente, donde elegí 300 al azar. En cualquier caso, los resultados son muy similares.

De cualquier forma debería funcionar y llevarte adonde quieres llegar.
¡Buena suerte!,
DS
Re: Creación de subconjuntos manteniendo la distribución originalGracias por tu respuesta.
Me di cuenta de que no necesito el complemento, pero puedo usar "Crear columna de validación K-fold" en Modelado predictivo --> Crear columna de validación.