Kaiser Fung最近批評道這張可支配收入變化表。

他提出了使用分類斜率圖的想法:

我們如何在JMP中做類似的事情?我們可以在Graph Builder中進行可變顏色的鑲板和線條;我們只需要將數據轉換成正確的形式。像往常一樣,在Graph Builder中製作斜率圖的關鍵步驟是使用表>堆棧將兩個數據列放入標籤列和一列數據中。然後標籤列在X軸上,數據列在Y軸上。
首先,我們需要獲取數據。有時當我快速重拍時,最簡單的事情就是從圖表中讀取數據。有一些程序和網站可以幫助解決這個問題。這一次,我使用了在線應用, Web繪圖數字化儀 ,為每個系列生成一個單獨的CSV文件。當然,這些值只是原始值的估計值。
打開兩個CSV文件並將列名設置為“x”和“y”後,我編寫了以下腳本來組合它們併計算一些派生值。
dt1 = Data Table( "data" );
dt2 = Data Table( "data (1)" );
dt = New Table( "changes",
New Column( "Percentile", Format( "Percent", 8, 0 ), Set Values( (1 :: 100) / 100 ) ),
New Column( "Base", Format( "Percent", 8, 1 ) ),
New Column( "Change2010", Format( "Percent", 8, 1 ) ),
New Column( "Change2013", Format( "Percent", 8, 1 ) ),
New Column( "Net2010", Format( "Percent", 8, 1 ) ),
New Column( "Net2013", Format( "Percent", 8, 1 ) ),
New Column( "Group", Character ),
New Column( "Rank" )
);
For Each Row(
dt,
dt:Base = 1.0;
dt:Change2010 = Interpolate( dt:Percentile, dt2:x << Get Values(), dt2:y << Get Values );
dt:Change2013 = Interpolate( dt:Percentile, dt1:x << Get Values(), dt1:y << Get Values );
dt:Net2010 = dt:Base * (1 + dt:Change2010);
dt:Net2013 = dt:Net2010 * (1 + dt:Change2013);
dt:Group = If(
dt:Percentile <= 0.1, "Bottom 10%",
dt:Percentile <= 0.9, "Middle 80%",
"Top 10%"
);
dt:Rank = If(
dt:Percentile <= 0.1, dt:Percentile / .1,
dt:Percentile <= 0.9, (dt:Percentile - .1) / .8,
(dt:Percentile - .9) / .1
);
);
插值是將偶數百分位值上的“x”值對齊。Group和Rank用於控制Graph Builder中的分組和顏色。基數和淨值是因為我想嘗試一些與凱撒所做的不同的事情。僅僅看到損失和增益百分比是不足以看到淨效應,所以我明確地計算淨效應並繪製圖形。
注意 :這個計算很大如果 :它假設兩個時期的百分位數相同。也就是說,2007-2010期間特定百分位數的人在2010-2013期間處於同一百分位數。我不知道是否是這種情況,儘管在第一個時期內百分位數變化不大,因為每個百分位數下降並且大多數是統一的。
在堆疊三列Base2007,Net2010和Net2013之後,我可以創建折線圖。我將Group設置為Group X角色並將Rank設置為Color角色,添加100%的參考線並更新標籤。

我剛剛意識到即使我需要計算的基值,我實際上並不需要顯示基值(它們都是相同的)。在使用本地數據過濾器排除Base2007並遵循Kaiser的示例來稀釋中間組後,我得到:
