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-ensemble en conservant la distribution d'origineMerci pour votre réponse.
J'ai réalisé que je n'ai pas besoin du complément, mais je peux 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-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-ensemble en conservant la distribution d'origineSalut @bbenny7 ,
J'ai trouvé ce sujet intéressant pour une raison similaire : vouloir sous-ensembler correctement un tableau de données, mais le stratifier sur une colonne. Je l'ai fait dans le passé, car @dlehman1 a suggéré d'utiliser une colonne de validation pour stratifier sur les colonnes d'intérêt, mais j'étais également curieux de savoir comment procéder différemment au cas où plusieurs tables de données seraient nécessaires. J'ai essayé la méthode suggérée par @Mark_Bailey , mais j'ai découvert que je devais diviser le code JSL de New Table() en deux lignes, l'une définissant la nouvelle table et la suivante attribuant les valeurs en fonction de l'autre colonne de table de données d'intérêt. . Je n'ai pas pu le faire fonctionner de la manière dont son code d'origine était présenté. Voici comment un code modifié 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
Comme 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 pour les 4 ensembles, et leurs statistiques récapitulatives sont toutes très similaire.

J'ai fait un test similaire mais j'ai créé 4 colonnes de validation stratifiées puis j'ai regardé leurs statistiques. Le N est différent car la plateforme Make Validation Column ne générerait pas les mêmes ratios que ceux que j'ai fait ci-dessus, où j'ai choisi 300 au hasard. Quoi qu’il en soit, les résultats sont tous très similaires.

Quoi qu’il en soit, cela devrait fonctionner et vous amener là où vous voulez aller.
Bonne chance!,
DS
Re : Création de sous-ensemble en conservant la distribution d'origineÀ proprement parler, un échantillonnage avec remplacement est requis si l'on souhaite 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. Je pense que vous avez besoin d'un script pour obtenir ce dont vous avez besoin. L'échantillonnage serait basé sur le calcul d'indices aléatoires comme celui-ci :
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 un nouveau tableau de données.
New Table( "Sample", New Column( "Data", Value( dt:originalColumn[subscript] ) ) );
Re : Création de sous-ensemble en conservant la distribution d'origineJe pense que tout ce que vous avez à faire est de spécifier un sous-ensemble en utilisant la capacité d'échantillonnage aléatoire dans Tables=> Subset Platform. Un é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.