JSL 用於模型圖上的置信帶,有更好的想法嗎?我想要繪製資料圖,與模型的結果重疊,並帶有陰影置信帶。
例如,來自擬合模型的圖,但在擬合線周圍有陰影置信區間:

我知道對於這個特定的例子,我可以在 FitYbyX 中找到我想要的東西:

因此,這顯示了我正在尋求的內容,但這對於某些擬合不起作用 - 例如,如果我想要進行此擬合並將其限制為每個性別的相同斜率。
另外,我看到一些帖子,其他人要求類似的事情,但也涉及擬合曲線或非線性擬合:
已解決:如何將信賴區間加入邏輯迴歸圖中? - JMP 使用者社群
在 JMP「擬合曲線」中繪製置信區間 - JMP 使用者社群
這些線程中的兩個建議並不完全令我滿意:
一是分析器中存在置信帶。很好,但這對我想要疊加擬合的例子沒有幫助。
(我也很欣賞,擬合模型可能很容易有太多因素甚至無法製作回歸圖,這可能是為什麼它功能不全的原因 - 人們期望您將其與您需要探索的更複雜的模型一起使用但在在某些情況下,簡單的繪圖或具有重疊曲線的繪圖很有用)。


另一種方法是使用已儲存的預測值在圖形產生器中的曲線之間進行著色的好方法。
已解決:如何在圖形產生器圖上建立陰影信賴區間? - JMP 使用者社群
在某些情況下也很好,但我希望預測是一條超出實際數據的平滑曲線。
這似乎需要從平台捕獲置信帶的公式,然後在圖形腳本中使用這些公式。
我想我看到了實現這一目標的道路,但這似乎已經足夠痛苦了,我想知道在我走得太遠之前我是否錯過了一個更聰明的方法。或者這已經在某個地方得到了證明?
在我的範例中,公式如下所示(僅適用於置信下限):

我需要對此進行一些替換,並為每個性別製作一條 Y 曲線:

這只是繪製那些下限線,到目前為止一切順利...

我可以重複預測本身和上置信線,然後進行著色...我可以使用每對曲線上的一系列點來製作一個多邊形...呃,我知道我可以做到這一點,但它看起來太過分了複雜...我是否缺少一些更簡單的方法,即使只是想在 Y 函數之間進行著色的這一部分?或者這真的是正確的道路嗎?
簡而言之:
實際上是否有某種方法可以更直接地從這些建模平台中獲取此類圖? (如果沒有,我想這可能是一個值得的願望清單項目。)。
如果沒有,關於如何創建所需繪圖的想法比我描述的圖形腳本更好嗎?
如果沒有,我是否缺少比多邊形更簡單的東西來在圖形腳本中的 Y 曲線之間進行著色?
謝謝!
進階統計建模自動化和腳本編寫基礎資料分析與建模回覆:JSL 用於模型圖上的置信帶,有更好的想法嗎?嗨@hardner ,
我認為你應該能夠透過 Fit Y by X 平台做你想做的事,至少我是這麼理解你想要什麼的。不確定非線性平台以及您是否可以做同樣的事情。
無論如何,如果您轉到雙變量擬合旁邊的紅色三角形並選擇特殊擬合...而不是擬合線,那麼您可以對資料進行轉換或約束線性擬合以具有特定的斜率或截距。以您的範例為例,我使用 0.113 的斜率來完成此操作。


而且,置信帶將延伸到資料點之外,您只需調整軸上的範圍。

根據您在帖子中所描述的內容,我認為這就是您所追求的。或者也許我不完全理解你想要什麼。
希望這可以幫助,
DS
回覆:JSL 用於模型圖上的置信帶,有更好的想法嗎?嗨@SDF1 ,
謝謝!問題是這些置信帶非常緊,因為你告訴它斜率是多少 - 它對該部分非常有信心並且只擬合了截距。您可以在擬合模型中擬合斜率,然後在此處指定它以查看擬合線很好地疊加 - 並查看與擬合模型相比很好地顯示的擬合方程式。它會很好地繪製置信帶。所以,是的,這正是我一直在尋找的圖像,並且 FitYbyX 適合某些情況 - 但這些不是我想要的置信帶。
回覆:JSL 用於模型圖上的置信帶,有更好的想法嗎?嗨@hardner ,
我想我還是不明白你在追求什麼。
您在原來的帖子中提到:“...例如,如果我想要進行這種擬合並將其限制為每個性別的相同斜率。”這就是為什麼在我給的例子中我正是這樣做的,固定了每種性別的斜率。
在您最近的帖子中,您說:“但這不是我想要的置信區間。”您正在尋找哪些信賴區間? 「Fit Y by X」平台中有兩條置信曲線:「Confid Curves Fit」——用於平均值的預期值,以及「Confid Curves Indiv」——它們是反映誤差和參數變化的單一預測值的置信限。 (摘自 JMP 線上說明頁面)。您追求的是 Indiv 曲線嗎?
DS
回覆:JSL 用於模型圖上的置信帶,有更好的想法嗎?嗨@SDF1 ,
感謝您繼續思考我的問題。抱歉,我沒有更清楚地說明我的範例,據我所知,「Fit Y by X」不適用於置信帶。
問題是,對於限制每個性別的斜率相同的情況,我仍然希望擬合該斜率。在 Fit Y by X 中,您可以約束斜率,但必須指定值,而不僅僅是每個組的值相同(我認為)。
如果我在擬合模型中進行擬合,我實際上可以擬合斜率和截距,同時強制它使每個性別的斜率(或截距)相同。

然後我可以(在“保存列”下)保存平均置信限的值或公式。
下面我使用右側的圖形生成器繪製了這些限制(這是我不喜歡的問題的解決方案,因為它僅限於表中的特定點,但它確實顯示了我想要的這種情況的置信區間,至少在一個範圍有限)。左邊是 FitYby X,我只是告訴它限制從 Fit Model 得到的斜率值。這些置信帶(我想要平均的- 更暗和更緊的帶- 但我也添加了Indiv)是線性的- 它們不會在更高或更低的權重下扇出,因為在指定的斜率中有100% 的置信度。在資料中間,它們非常接近,因為「透過 X 擬合 Y」都是關於垂直變化 - 截距擬合。

Indiv 曲線不是我想要的,也就是對落在該帶內的各點的信心。我確實想要關於平均值的置信帶,但我希望它們與斜率和截距的擬合有關。
看起來 FitYbyX 是一個可以很好地疊加原始資料、擬合度和置信度帶的平台,但由於某些原因您無法在那裡完成所有擬合。我認為其他平台,如“擬合模型”、“非線性”和“擬合曲線”可以做一些在 FitYbyX 中無法做的擬合(這只是一個例子),並且在某些情況下,您可以製作這類圖,因為只有一個 X,相反,他們只有保存擬合置信限的選項,但沒有疊加圖選項。
回覆:JSL 用於模型圖上的置信帶,有更好的想法嗎?嗨@hardner ,
我現在更能理解您的困境,並感謝您花一些時間重新表達您面臨的問題。
簡而言之,我相信您是對的,Fit Y by X 是唯一可以實現擬合的良好疊加的平台,您可以在其中擴大繪圖以查看置信帶如何變化。而且,保存到資料表中的預測公式僅適用於該資料表中的行數,這往往是有意義的。
然而,可能有一個非常接近您想要的解決方法。它並不完美,但由於您需要使用的不同平台的限制(例如不適合 Y by X 的其他模型擬合平台),它可能是您可以獲得的最接近的結果。
我提出的想法是在數據表中創建一些帶有虛擬行的“虛擬”列,其中的值是預期的平均值 - 這樣就不會弄亂您的置信帶。
這是使用 Graph Builder 和相應的 JSL 程式碼的結果 - 就像您所展示的那樣。

Graph Builder(
Graph Spacing( 4 ),
Variables(
X( :hidden weight ),
Y( :Lower 95% Mean height ),
Y( :Upper 95% Mean height, Position( 1 ) ),
Y( :Pred Formula height, Position( 1 ) ),
Y( :hidden height, Position( 1 ) ),
Overlay( :sex )
),
Elements(
Area( X, Y( 1 ), Y( 2 ), Legend( 2 ), Area Style( "Range" ) ),
Line( X, Y( 3 ), Legend( 1 ) ),
Points( X, Y( 4 ), Legend( 1 ) )
),
SendToReport( Dispatch( {}, "X title", TextEditBox, {Set Text( "weight" )} ) )
);
以下是我為實現這一目標所採取的步驟(當然,這一切都可以用 JSL 進行編碼,但對於您可能處理的每種情況都需要一些時間)。
1. 依照先前的操作執行擬合模型後,儲存感興趣的公式列(Pred Mean 和 +/-95% Mean CI)。
2. 建立兩個虛擬列 - 我選擇:隱藏高度和:隱藏重量作為名稱。
2a.在資料表中新增四行 - 這樣您就可以獲得男性和女性性別的兩個點(低值和高值)。
3. 將每一列都變成公式
3a.對於 :hidden height,它看起來像這樣:

3b.對於 :hidden 權重,它看起來像這樣:

注意:我只是選擇 0 和 200 作為值,因為它們很簡單(截距是其中之一),而另一個我選擇只是作為更高的極端值,但這些將根據您的需求進行設定。
4. 更改預測平均值和 +/-95% 置信區間的公式,以便不使用 :weight 進行計算,而是使用 :hidden 權重計算。下面是預測平均值的範例。

5. 傳回並重新執行 JSL 程式碼,但將 :height 和 :weight 欄位變更為對應的虛擬列,以便它在資料表中包含這額外的四行。
6. 我做的最後一件事是將最後四行從預設標記樣式更改為“/”標記樣式,以便這些平均值端點與資料本身相比不太明顯。您可以選擇其他...並使用不同的角色。我剛剛嘗試了 MS Word 中的雙右引號 (»),效果很好。

請注意,我還將 x 軸重新命名為“權重”,以便不顯示“隱藏權重”。
但是,根據您的描述,我認為這應該可以解決您所追求的問題。這不是最簡單或最優雅的工作,但它確實可以完成工作。例如,我發現它比嘗試在圖形產生器中使用多邊形更容易。
值得考慮和思考的事情。
希望這可以幫助,
DS
回覆:JSL 用於模型圖上的置信帶,有更好的想法嗎?謝謝!
你讓它在圖表產生器中看起來非常漂亮!我真的不想「摻假」該表(我的用例將成為其他人的工具),但該表的私人副本是可能的。無論如何,要考慮一些事情,即使我認為我至少必須嘗試圖形腳本方式,看看我是否可以使多邊形足夠平滑以看起來一樣漂亮。
我特別感謝其他人的關注,同意這似乎確實是這種情況,我沒有遺漏一些明顯的內建選項。