Generazione di una tabella di riepilogo con valori p dal test t iterativoSto cercando uno script che generi automaticamente una tabella riepilogativa/pivotata di medie e valori p per test t a coppie rispetto a un gruppo di riferimento. Sto usando JMP 17.
Nella tabella dati seguente sono presenti colonne per SubjectId, BMI misurato, VO2max misurato, anno e Riferimento per indicare se la riga ha o meno un SubjectID che è un riferimento.

Ho generato manualmente tabelle di riepilogo (come quelle riportate di seguito) con le medie e quindi popolato manualmente i valori p per i test t unilaterali.

Sono interessato in particolare ai risultati del valore p unilaterale di un test t tra ciascun SoggettoID rispetto al riferimento per ogni anno per determinare se il SoggettoID non di riferimento ha o meno un BMI o un VO2max più elevato rispetto al SoggettoID di riferimento. Finora ho eseguito manualmente un test t raggruppato e riportato il valore p e la media in una tabella di riepilogo che ho creato. Esiste un modo per scorrere un elenco di ObjectID univoci e generare una tabella di riepilogo con queste statistiche eseguite nel modo descritto utilizzando JSL? Inoltre, sarebbe utile un modo generalizzato per aggiungere statistiche di riepilogo (ad esempio N per ciascun ID soggetto per ciascuna analisi).
Automazione e scriptingAnalisi e modellazione dei dati di baseRi: Generazione di una tabella di riepilogo con valori p dal test t iterativoNon riesco a capire cosa stai facendo ai valori nella tabella principale, alla nuova visualizzazione nella tabella del rapporto. Dettaglia i passaggi che stai eseguendo per trasformare i dati.
Ri: Generazione di una tabella di riepilogo con valori p dal test t iterativoCiao @LinkageBee996 ,
Sono d'accordo con @txnelson , è difficile capire come passi dalla tabella dati principale a quella che stai generando manualmente. Potrebbe funzionare meglio per il tuo scopo riorganizzare la tabella dei dati e organizzarla in modo diverso. Ciò potrebbe richiedere la suddivisione o l'unione dei dati in modo diverso da come sono attualmente strutturati.
Il motivo per cui lo dico è che a volte le analisi possono essere eseguite utilizzando una variabile di gruppo BY e quindi i risultati dell'analisi possono essere facilmente ottenuti in una tabella dati più grande facendo clic con il pulsante destro del mouse su una tabella del report e selezionando Crea tabella dati combinata. Puoi vedere se questo è forse ciò che potrebbe funzionare per te utilizzando i dati di esempio Big Class.jmp ed eseguendo un'ANOVA Fit Y per X con :sex come asse x e :height come Y (per vedere meglio come make la tabella dati combinata funziona, utilizzare :age come variabile BY). Esegui il test t, quindi fai clic con il pulsante destro del mouse sulla tabella statistica di interesse e seleziona Crea tabella dati combinata.
Se lo fai per il test t e anche per le medie per Oneway Anova, puoi quindi unire tali tabelle di dati in modo da avere il valore medio di ciascun gruppo insieme al valore p per il test t. Dovrebbe assomigliare a qualcosa del genere, che potrebbe essere sulla falsariga di ciò che stai cercando.

Naturalmente, puoi sempre salvare gli script generati nelle tabelle dati per metterli tutti insieme in un unico script funzionante oppure utilizzare il registratore Workflow Builder e lui potrà scrivere lo script per te, vedi qui .
Spero che questo ti aiuti,
DS
Ri: Generazione di una tabella di riepilogo con valori p dal test t iterativoCiao @txnelson e @SDF1 , spero di poter chiarire la richiesta e magari focalizzare un po' l'ambito. Lavoro con @LinkageBee996 quindi mi ha chiesto di aiutare a chiarire.
Il flusso di lavoro attuale è il seguente:
1) Inizia con la tabella dati condivisa da @LinkageBee996 . Per semplificare le cose ignorerò la colonna dell'anno e mi concentrerò solo sul BMI.
2) Eseguire un semplice t-test a due campioni confrontando ciascuno degli ID soggetto etichettati come "No" come riferimento con l'ID soggetto (A1454) etichettato come "Sì" come riferimento per un totale di 5 confronti (c'è un motivo per cui lo stiamo facendo invece di fare qualcosa come un test di Dunnett). Al momento lo facciamo uno per uno utilizzando il filtro dati locale nella piattaforma unidirezionale sotto "Adatta Y per X"
3) Attualmente i risultati del t-test (valori p e simili) vengono quindi trascritti manualmente in un file vuoto (tabella CSV o JMP). Poiché stiamo eseguendo un test alla volta, utilizzare "Crea tabella dati" non è pratico poiché ti ritroverai con tante tabelle dati quanti sono i confronti, quindi dovrai combinarle in un'unica tabella dati.
Vorremmo automatizzare questa parte dell'analisi che è a prova di futuro per qualsiasi nuovo ID soggetto che potremmo testare, quindi lo script dovrebbe (nell'ordine che ha più senso) fare quanto segue. Questo è ciò che ha senso nella mia testa facendo analisi simili in Python e altri software:
1. Creare un elenco degli ID "Non di riferimento".
2.Per ciascun ID non di riferimento, eseguire un'analisi unidirezionale e un t-test a due campioni confrontandolo con l'ID soggetto etichettato come "Sì" per Riferimento (e supponiamo che ce ne sarà sempre esattamente uno tra questi)
3. Salvare i risultati del t-test in una tabella dati. Una nota qui: i formati predefiniti di "crea tabella dati combinata" e "crea tabella dati combinata" non salvano alcuni dei metadati del confronto, ad esempio indicheranno l'intestazione della colonna (X è l'ID soggetto, Y è BMI) ma non ti dirà come sono i due valori per X, viene mostrato nella parte superiore dell'interfaccia utente dei risultati del test t nell'analisi ("A1454-B8565"). Vorremmo acquisire queste informazioni: stai confrontando due cose, quali sono le due cose che stai confrontando?
4. Combina tutti i risultati del t-test di ogni confronto nel set di dati in un'unica tabella di dati. Da lì in poi sarà solo un problema di manipolazione dei dati che probabilmente riusciremo a capire per inserirli nel formato più utile
Speriamo che questo fornisca maggiore chiarezza, facci sapere se c'è ancora ambiguità al riguardo
Ri: Generazione di una tabella di riepilogo con valori p dal test t iterativoCiao @Moser_stefan e @LinkageBee996 ,
Capisco meglio cosa stai cercando di fare. Ecco alcuni pensieri:
1. In base alla tua descrizione, penso ancora che ristrutturare la tabella dati potrebbe essere utile in modo da poter sfruttare la variabile BY nell'analisi ANOVA e quindi nella creazione della tabella dati combinata. Potrebbe essere necessario riflettere su come riformattare la tabella dati, ma penso che potrebbe valerne la pena. Anche se ti ritrovi con molte tabelle di dati, puoi sempre eseguire un'unione. e combinarli alla fine in un'unica tabella di dati.
2. Penso che sia un'ottima idea automatizzare un processo di questo tipo, soprattutto se le analisi devono essere ripetute con set di dati futuri. A questo proposito, ti consiglio vivamente di prenderti il tempo per imparare la codifica JSL da solo. Ognuno ha le proprie esigenze specifiche quando si tratta di questo genere di cose e se puoi imparare JSL a beneficio della tua organizzazione, allora ti spingerà avanti molto più velocemente di quanto tu possa immaginare. Le soluzioni di scripting ai problemi JMP semplificano la vita e velocizzano notevolmente i tempi per ottenere i risultati. Ci sono un sacco di buone informazioni là fuori, specialmente nel forum di discussioni online, ma anche qui . È possibile scaricare molta buona documentazione JMP qui , incluso l'ultimo PDF della Guida allo scripting. Inoltre, c'è anche l'indice degli script in Aiuto > Indice degli script. Come accennato in precedenza, se non hai esperienza con la codifica e lo scripting, prendi in considerazione l'utilizzo del generatore di flussi di lavoro, che genererà per te lo script necessario. Detto questo, il mio consiglio è di impararlo da solo in modo da avere maggiore controllo/flessibilità quando si tratta di codificare il proprio lavoro.
3. Senza avere la tabella dati effettiva con cui lavorare (anche se è resa anonima per proteggere qualsiasi informazione sensibile), è molto difficile generare uno script per qualcun altro che funzioni genericamente, cioè in "tutte" le circostanze (ovviamente niente funziona davvero in tutte le circostanze possibili, ma il punto rimane: renderlo generalizzabile). Scrivere codice per altri dipende in larga misura dalla tabella dati con cui stai lavorando e dalla struttura dei dati all'interno della tabella perché cambia il modo in cui potresti affrontare l'analisi e il raggruppamento dei risultati, ecc.
So che questa non è proprio la risposta che stai cercando, ma penso che con un po' di tempo investito nella ristrutturazione dei tuoi dati e/o nell'apprendimento di JSL, scoprirai che il guadagno supera di gran lunga gli sforzi profusi.
Buona fortuna!,
DS
Ri: Generazione di una tabella di riepilogo con valori p dal test t iterativoGrazie per la risposta @SDF1 . Il percorso JSL ha senso, ho una certa esperienza in merito ma certamente non sono un esperto, quindi è una buona opportunità per far crescere le nostre competenze qui. Indipendentemente da ciò, avere la tua prospettiva sui potenziali percorsi per risolvere questo problema è utile per vedere quali sono le opzioni.
Una cosa che faccio fatica a vedere se potrebbe essere utilizzata la funzione "per", principalmente perché abbiamo un raggruppamento di dati (il set di dati di riferimento) che vogliamo riutilizzare in ogni confronto e un raggruppamento (non di riferimento ) che dovrebbe essere diviso "per". L'unico modo in cui vedo che funziona è se replichiamo il set di dati di riferimento per ciascun confronto e quindi gli forniamo una variabile univoca (ad esempio, una colonna di "confronto"). Forse funzionerebbe... dovremo solo pensare se la replica dei dati nella tabella dei dati grezzi crea altri problemi o rischi.
Beh, ci hai sicuramente dato degli spunti di riflessione e apprezzo il tempo che hai dedicato per rispondere. Saremo sicuri di dare seguito a qualunque soluzione troveremo.
Ri: Generazione di una tabella di riepilogo con valori p dal test t iterativoCiao @Moser_stefan e @LinkageBee996 ,
Felice di dare una mano. E penso di capire un po' meglio il modo in cui sono strutturati i tuoi dati perché la variabile BY sarebbe un po' difficile. Probabilmente sarebbe necessaria una notevole ristrutturazione dei tuoi dati per far sì che funzioni come pensavo / intendevo.
Invece, ciò che potresti fare meglio è prendere sottoinsiemi di dati in base alla colonna ID oggetto e forse anche utilizzare anche la colonna Riferimento. Quindi, eseguendo l'analisi t-test su ciascuno degli ID di riferimento e oggetto delle tabelle di dati del sottoinsieme. Quindi, utilizza Crea tabella dati e quindi unisci le tabelle dati risultanti in base a una colonna, ad esempio Colonna 1 nel risultato Crea tabella dati. Questo potrebbe essere il modo più rapido per passare dal formato dati attuale a una soluzione senza dover dedicare troppo tempo alla ristrutturazione dei dati.
A questo proposito, ho creato una tabella dati fittizia (allegata) con una colonna Sorgente (come il tuo ID soggetto) e i vari script. Puoi esaminare gli script facendo clic con il pulsante destro del mouse e selezionando Modifica, ma puoi anche eseguirli: eseguirli raggruppati per Sorgente A o B, quindi eseguire l'ultimo script che unisce le due tabelle di dati in una tabella di dati finale. Dalla tua descrizione sembra che tu voglia fare qualcosa del genere. Per lo meno, si spera che gli script ti aiutino e ti forniscano un punto di partenza per soddisfare le tue esigenze specifiche.
Spero che questo ti aiuti!,
DS
Ri: Generazione di una tabella di riepilogo con valori p dal test t iterativoCiao @Moser_stefan ,
Sono contento di sapere che sei stato in grado di automatizzare la raccolta e l'analisi dei dati. è sempre di grande aiuto completare questo tipo di attività poiché a lungo termine fa risparmiare molto tempo.
Ottimo lavoro!,
DS