在 JMP 中加入誤差線<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />大家好,我有一個簡單的問題,但無法解決。 我有一個資料集,我想根據另一個資料集以 Fit Y by X 樣式散點圖繪製該資料集。 對於每個數據點,我知道標準差,並且我想將這些標準差作為誤差線添加到圖中,有什麼辦法可以做到這一點嗎?
似乎 JMP 僅在本身計算了標準差的情況下才會正常執行此操作,我不希望這樣做,因為我已經知道每個數據點的標準差。
謝謝你的幫助
回覆:在 JMP 中加入誤差線這對我非常有幫助,我正在嘗試編寫 JSL 腳本,以便我可以在控製圖上繪製標準差誤差條,因為控製圖上的每個數據點都是 x 個單獨點的平均值。有沒有辦法將用於圖形產生器的 JSL 腳本用於 Run Chart、XBar、IR、UWMA 或 PreSummarize Control Chart 腳本?
在 JMP 中加入誤差線可以使用圖形產生器顯示誤差線,而無需堆疊資料。即,您有 3 個獨立的欄位:中心點、上限和下限。使用上面的數據,將 X 變數(年齡)拖曳到 X 軸。然後突出顯示上部和下部並將它們拖曳到 Y 軸。右鍵點選圖表中心,點選點 > 變更為 > 長條圖。然後在圖表中右鍵單擊,按一下條形圖 > 長條圖樣式 > 間隔。現在將「平均值(高度)」列拖曳到 Y 軸右側。接下來新增連接線並刪除上部和下部的連接線。
下面是一個執行此操作的 JSL 腳本以及一些格式:
// 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 )} )
)
);
在 JMP 中加入誤差線這是可能的,但我還沒有找到直接的方法來做到這一點。首先,您需要計算平均值-SE 和平均值+SE。如果您先堆疊列,您將獲得最佳結果。嘗試下面的腳本。它說明了在 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 )
);
回覆:在 JMP 中加入誤差線有一個更簡單的選擇 - 即使在使用附加覆蓋變數時沒有抖動問題。首先為下限值和上限值建立一列(如上所述)。然後堆疊資料(中心點、上限值、下限值)。開啟圖形產生器並將堆疊資料新增至 y 軸。然後選擇總計統計量“平均值”和誤差線“範圍”。就是這樣。即使沒有抖動問題!祝你好運 :)回覆:在 JMP 中加入誤差線例如


回覆:在 JMP 中加入誤差線有一個「間隔」功能可讓您新增誤差線(即,一列包含每行/樣本的標準差):

回覆:在 JMP 中加入誤差線Ian Cox 有一個插件可能正是您正在尋找的。
JMP插件,用於繪製X和Y值的不確定性
回覆:在 JMP 中加入誤差線這確實很有用,但是如何刪除上下的連接線(除了透過腳本)?
謝謝,
菲爾
回覆:在 JMP 中加入誤差線右鍵點選圖表,選擇「線」>「Y」>「上限」 (或任何你對上限欄位的稱呼)。重複上述步驟,設定下限。
回覆:在 JMP 中加入誤差線太棒了!我沒想到這麼簡單。
謝謝。
回覆:在 JMP 中加入誤差線謝謝你的回答。這三種方法都能很好地在y軸上添加誤差線。請問如何才能在同一個散佈圖中同時加入x軸和y軸的誤差線呢?