Aggiunta di barre di errore in JMP<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ciao ragazzi, ho un semplice problema che non sono stato in grado di risolvere. Dispongo di un set di dati che vorrei tracciare in un grafico a dispersione Fit Y di X su un altro set di dati. Per ogni punto di dati conosco la deviazione standard e vorrei aggiungere queste deviazioni standard come barre di errore alla trama, è comunque necessario farlo?
Sembra che JMP lo faccia normalmente solo se ha calcolato la deviazione standard stessa, non lo voglio perché conosco già la deviazione standard per ogni punto dati.
Grazie per qualsiasi aiuto
Aggiunta di barre di errore in JMPÈ possibile ma non ho trovato un modo semplice per farlo. Per prima cosa devi calcolare media-SE e media+SE. Quindi otterrai il miglior risultato se prima impili le colonne. Prova lo script qui sotto. Illustra alcuni modi per farlo in JMP 9.
// Make an example table
dt = Open( "$ENGLISH_SAMPLE_DATA/Big Class.jmp" );
dtsum = dt << Summary( Group( :age ), Mean( :height ), Std Err( :height ) );
// Add columns with Mean ± SE
dtsum << New Column( "lower",
numeric,
values(
(:Name( "Mean(height)" ) << get as matrix) - (:Name( "Std Err(height)" ) << get as matrix)
)
);
dtsum << New Column( "upper",
numeric,
values(
(:Name( "Mean(height)" ) << get as matrix) + (:Name( "Std Err(height)" ) << getasmatrix)
)
);
// Stack columns
dtstacked = dtsum << Stack(
columns( :Name( "Mean(height)" ), :lower, :upper ),
Source Label Column( "Label" ),
Stacked Data Column( "Data" ),
Name( "Non-stacked columns" )(Keep( :age ))
);
// Three ways to make a graph with mean and error bars based known SE
// 1. Overlay plot with range plot. Ugly graph and markers are visible for ± SE
dtsum << Overlay Plot( X( :age ), Y( :Name( "Mean(height)" ), :lower, :upper ), Range Plot( 1 ) );
// 2. Graph builder. Nicer graph but table must be stacked first.
dtstacked << Graph Builder(
Show Control Panel( 0 ),
Variables( X( :age ), Y( :Data ) ),
Elements(
Points(
X,
Y,
Legend( 0 ),
Jitter( 0 ),
Summary Statistic( "Mean" ),
Error Bars( "Range" ),
)
)
);
// 3. Chart platform. Similar to graph in 2.
dtstacked << Chart(
X( :age ),
Y( Mean( :Data ) ),
Add Error Bars to Mean( Range ),
Overlay Axis << {{Min( 52.5 ), Max( 72.5 ), Inc( 5 ), Minor Ticks( 1 )}},
Y[1] << Point Chart( 1 )
);
Aggiunta di barre di errore in JMPÈ possibile utilizzare il Costruttore di grafici per mostrare le barre di errore senza impilare i dati. Cioè hai 3 colonne separate: punto centrale, limite superiore e limite inferiore. Utilizzando i dati sopra, trascini la variabile X (età) sull'asse X. Quindi evidenzia superiore e inferiore e trascinali sull'asse Y. Fare clic con il tasto destro al centro del grafico, fare clic su Punti > Cambia in > Barra. Quindi fare clic con il tasto destro nel grafico, fare clic su Barra > Stile barra > Intervallo. Ora trascina la colonna Media(altezza) appena a destra dell'asse Y. Successivamente aggiungi le linee di collegamento e rimuovi le linee di collegamento per superiore e inferiore.
Ecco uno script JSL che lo fa, insieme ad alcune formattazioni:
// Make an example table
dt = Open( "$ENGLISH_SAMPLE_DATA/Big Class.jmp" );
dtsum = dt << Summary( Group( :age ), Mean( :height ), Std Err( :height ) );
// Add columns with Mean ± SE
dtsum << New Column( "lower", numeric,
values(
(:Name( "Mean(height)" ) << get as matrix) –
(:Name( "Std Err(height)" ) << get as matrix)
)
);
dtsum << New Column( "upper",
numeric,
values(
(:Name( "Mean(height)" ) << get as matrix) +
(:Name( "Std Err(height)" ) << get as matrix)
)
);
Graph Builder(
Show Control Panel( 0 ),
Variables(
X( :age ),
Y( :lower ),
Y( :upper, Position( 1 ) ),
Y( :Name( "Mean(height)" ), Position( 1 ) )
),
Elements(
Bar(
X,
Y( 1 ),
Y( 2 ),
Y( 3 ),
Legend( 2 ),
Bar Style( "Interval" ),
Summary Statistic( "Mean" )
),
Line( X, Y( 3 ), Legend( 4 ), Row order( 0 ), Summary Statistic( "Mean" ) )
),
SendToReport(
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
2,
Properties( 0, {Line Color( 0 )} ),
Properties( 1, {Line Color( 0 ), Marker( "FilledCircle" )} )
)}
),
Dispatch( {}, "Graph Builder", FrameBox, {Marker Size( 3 )} )
)
);
Ri: Aggiunta di barre di errore in JMPQuesto è stato molto utile per me, sto cercando di scrivere uno script JSL in modo da poter tracciare le barre di errore della deviazione standard su un grafico di controllo poiché ciascun punto dati sul grafico di controllo è la media di x punti individuali. Esiste un modo per utilizzare lo script JSL utilizzato per il Costruttore di grafici nello script Run Chart, XBar, IR, UWMA o PreSummarize Control Chart?
Re: Aggiunta di barre di errore in JMPEsiste un'opzione più semplice, anche senza il problema del jitter quando si usa una variabile di sovrapposizione aggiuntiva. Per prima cosa, crea una colonna per il valore inferiore e superiore (come descritto sopra). Quindi impila i dati (punto centrale, valore superiore, valore inferiore). Apri graph-builder e aggiungi i dati impilati all'asse y. Quindi scegli la statistica di riepilogo "media" e le barre di errore "intervallo". Ecco fatto. Anche senza il problema del jitter! Buona fortuna
Re: Aggiunta di barre di errore in JMPEsiste una funzionalità "Intervallo" che consente di aggiungere le barre di errore (ovvero, con una colonna contenente le deviazioni standard per ogni riga/campione):

Re: Aggiunta di barre di errore in JMPPer esempio


Re: Aggiunta di barre di errore in JMPC'è un componente aggiuntivo di Ian Cox che potrebbe fare al caso tuo.
Componente aggiuntivo JMP che traccia l'incertezza nei valori X e Y
Re: Aggiunta di barre di errore in JMPQuesta informazione è davvero utile, ma come si rimuovono le linee di collegamento tra la parte superiore e quella inferiore (se non tramite script)?
Grazie,
Phil
Re: Aggiunta di barre di errore in JMPFai clic con il pulsante destro del mouse sul grafico e seleziona Linea > Y > superiore (o come hai chiamato la colonna del limite superiore). Ripeti per il limite inferiore.
Re: Aggiunta di barre di errore in JMPFantastico. Non pensavo fosse così semplice.
Grazie.
Oggetto: Aggiunta di barre di errore in JMPGrazie per la risposta. Tutti e tre i metodi funzionano bene per includere le barre di errore sull'asse y. Sapresti dirmi come posso includere le barre di errore sia sull'asse x che sull'asse y nello stesso grafico a dispersione?