Campionamento casuale con sostituzioneÈ possibile farlo? Non appare la funzione Tabelle -> Sottoinsieme lo consente.
Riconosco che è possibile ottenere stime Bootstrap in varie parti della piattaforma JMP Pro, ma mi chiedo in modo specifico sulla generazione di tabelle di dati.
Grazie!
Ri: Campionamento casuale con sostituzioneCiao Wendy,
Sì, vedi lo script di seguito. Prende una tabella a 4 righe e estrae 10 campioni con la sostituzione. La funzione AsList () è necessaria per eseguire questa operazione, altrimenti, purtroppo, viene visualizzato un errore.
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 ) ) ) ) ) );
Ri: Campionamento casuale con sostituzioneCiao Wendy, puoi farlo dalla tabella dei dati. Fare clic con il pulsante destro del mouse sull'intestazione di una colonna, selezionare Nuova colonna formula, Casuale, quindi Campione con sostituzione.
Ri: Campionamento casuale con sostituzioneCiao Wendy, dovrei chiarire.
La tecnica della nuova colonna della formula menzionata da Mia funzionerà finché l'utente desidera un campione le cui dimensioni siano inferiori o uguali al numero di righe nella tabella. Se hai bisogno di un campione più grande, non conosco un modo per farlo (in modo efficiente, cioè concatenare una tabella con se stessa fino a quando la sua dimensione non è abbastanza grande, è inefficiente ma funzionerà) tramite punta e clicca. Forse altri entreranno in contatto con un modo per farlo.
Lo script funzionerà per qualsiasi dimensione di campione, ma necessita della funzione As List () attorno alla matrice di righe ogni volta che il numero di righe richiesto supera il numero di righe nella tabella originale.
Ri: Campionamento casuale con sostituzioneGrazie ad entrambi! Sì, penso che il cliente potrebbe aver bisogno di sovracampionare, quindi sarebbe utile sapere come altri lo hanno realizzato.
L'altra domanda correlata riguarda la stratificazione. È possibile ricampionare con la sostituzione garantendo una distribuzione di un altro attributo?
Ri: Campionamento casuale con sostituzioneCiao @wendytseng ,
C'è un Campione con componente aggiuntivo sostitutivo che può eseguire il sovracampionamento, ma non la stratificazione rispetto ad un'altra variabile.
@julian
Ri: Campionamento casuale con sostituzioneCiao Wendy,
Non sono sicuro che il tuo cliente sia disposto a scrivere, ma l'idea può essere prontamente estesa per stratificare una variabile categoriale. Lo script breve riportato di seguito fa ciò per il set di dati Car Physical Data e la colonna "Type". Sono richieste 1000 righe, dove la tabella originale ha 116. Si noti che vengono restituite 1002 righe, a causa dell'arrotondamento al numero intero più vicino della dimensione del campione di ciascuna categoria.
Questo non è il modo più veloce per farlo, ma è relativamente semplice da capire. Forse il tuo cliente sarà in grado di scrivere ciò che vuole se gli parli?
Saluti,
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 ) ) );
Ri: Campionamento casuale con sostituzionePer il sovracampionamento, c'è anche questo componente aggiuntivo: Componente aggiuntivo Partizionamento dati stratificato (con opzioni di bilanciamento)
Non sono stati testati in JMP 15 ...
Ri: Campionamento casuale con sostituzioneQuesto è quello che abbiamo richiesto per il prof di UC Denver, giusto? Ho cercato il codice e non riuscivo a pensare a un modo per farlo funzionare senza entrare in Train / Test / Validate.