Création de sous-ensembles en conservant la distribution d'origineSi j'ai une table de données avec une variable continue et que je souhaite créer plusieurs sous-ensembles qui conservent la même distribution que la table d'origine, comment puis-je faire ?
J'ai JMP Pro et j'ai essayé l'option Stratifier dans le menu Sous-ensemble, mais je n'ai pas compris comment le faire.
Exploration et visualisation des donnéesRe : Création de sous-ensemble en conservant la distribution d'origineMerci pour votre réponse.
J'ai réalisé que plus de 3 sous-ensembles sont nécessaires, vous pouvez utiliser "Créer une colonne de validation pliée en K" dans la modélisation prédictive -> Créer une colonne de validation.
Re : Création de sous-ensembles en conservant la distribution d'origineMerci pour votre réponse.
J'ai réalisé que je n'avais pas besoin du module complémentaire, mais je peux utiliser « Créer une colonne de validation K-fold » dans Modélisation prédictive --> Créer une colonne de validation.
Re : Création de sous-ensemble en conservant la distribution d'origineParce que vous disposez de JMP Pro et que vous avez mentionné Stratify, voici une autre option : "Créer des colonnes pliées en K" à partir du complément XGBoost pour JMP Pro ( https://community.jmp.com/t5/JMP-Add-Ins/ XGBoost-Add-In-for-JMP-Pro/ta-p/319383 ) Et lisez les pages 3, 4, 5
dans le fichier "XGBoost Add-in.pdf".

La fonction crée des sous-ensembles (le complément l'appelle plis) qui conservent la distribution d'origine (le complément l'appelle équilibrée), tout en respectant la stratification en gardant également les variables de stratification équilibrées. Voir les histogrammes à la page 5 de ce document pdf.
Re : Création de sous-ensembles en conservant la distribution d'origineSalut @bbenny7 ,
J'ai trouvé ce sujet intéressant pour une raison similaire : créer correctement des sous-ensembles d'une table de données, mais la stratifier sur une colonne. Je l'ai déjà fait, car @dlehman1 avait suggéré d'utiliser une colonne de validation pour stratifier sur la ou les colonnes d'intérêt, mais j'étais également curieux de savoir comment procéder différemment si plusieurs tables de données étaient nécessaires. J'ai essayé la méthode suggérée par @Mark_Bailey , mais j'ai constaté qu'il fallait diviser le code JSL de la fonction New Table() en deux lignes, l'une définissant la nouvelle table, l'autre affectant les valeurs en fonction de l'autre colonne de la table de données d'intérêt. Je n'ai pas réussi à le faire fonctionner comme son code original. Voici comment une version modifiée a fonctionné pour moi :
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
En guise de petit test amusant, j'ai généré 4 sous-ensembles en créant une boucle For() et en y plaçant la ligne d'indice (pour générer un nouvel ensemble de numéros de ligne) et j'ai comparé les distributions des 4 ensembles, et leurs statistiques récapitulatives sont toutes très similaires.

J'ai effectué un test similaire, mais en créant quatre colonnes de validation stratifiées, puis en examinant leurs statistiques. Le N est différent, car la plateforme « Créer une colonne de validation » ne générait pas les mêmes ratios que ceux que j'avais obtenus précédemment, où j'avais choisi 300 au hasard. Quoi qu'il en soit, les résultats sont très similaires.

Dans les deux cas, cela devrait fonctionner et vous amener là où vous voulez aller.
Bonne chance!,
DS
Ré: Création de sous-ensemble en conservant la distribution d'origineStrictement parlant, l'échantillonnage avec remplacement est nécessaire si vous souhaitez obtenir la même distribution que l'original. C'est la base des méthodes de rééchantillonnage et d'amorçage. La commande Subset effectue un échantillonnage aléatoire sans remplacement. Vous avez besoin d'un script, je pense, pour obtenir ce dont vous avez besoin. L'échantillonnage serait basé sur le calcul d'indices aléatoires comme ceci :
subscript = J( sample size, 1, Random Integer( 1, N Row( dt ) )
Ce vecteur pourrait être utilisé dans la création d'une colonne de données dans une nouvelle table de données.
New Table( "Sample", New Column( "Data", Value( dt:originalColumn[subscript] ) ) );
Ré: Création de sous-ensemble en conservant la distribution d'origineJe pense que tout ce que vous devez faire est de spécifier le sous-ensemble à l'aide de la fonction d'échantillonnage aléatoire dans la plate-forme Tables=> Sous-ensemble. L'échantillonnage aléatoire par taux ou par taille vous donnera des tableaux de données avec la même distribution que le tableau d'origine.
Re : Création de sous-ensemble en conservant la distribution d'origineVous pouvez créer une colonne de validation (sous Modélisation prédictive) stratifiée comme vous le souhaitez, puis utiliser ces sous-ensembles. Je pense que vous êtes limité, au moins au début, à 3 sous-ensembles (sous-ensembles de formation, de validation et de test), mais vous pouvez le faire plusieurs fois si vous en avez besoin de plus. Je n'ai jamais utilisé l'option de stratification dans le menu Sous-ensemble, mais il semble que cela fonctionne mais ne créera qu'un seul sous-ensemble à la fois.