如何在異常值過濾後獲得每個參數的 Ppk 和每個晶圓每個參數的 Cpk?我已將以下JSL 放在一起,首先過濾資料中的異常值,然後取得Ppk,但我注意到我的腳本不正確,因為當我透過排除所有行來過濾異常值時,我排除了其他進程的非異常值數據點參數。
對於定義異常值, 我的首選標準是Q1/Q3 +/- 1.5xIQR 以外的任何值都是異常值,這就是我在下面使用的(我認為)。
Names Default To Here (1);
Clear Log ();
dt = Open( "$SAMPLE_DATA/Semiconductor Capability.jmp" );
col_names = dt << Get Column Group("Processes"); // Column Group should pre-exist.
obj = Explore Outliers(Y(Eval( col_names ) )); // Run expolore outliers
obj << Quantile Range Outliers( Tail Quantile( 0.25 ), Q (1.5) ); // select Q3/Q1 +/- 1.5 x IQR
obj << Exclude Rows(ALL); // exclude OL rows
// Run capability analysis
platform = dt << Process Capability(
Process Variables( Eval( col_names ) ),
Spec Limits Dialog( "No (skip columns with no spec limits)" ),
Moving Range Method( Average of Moving Ranges ),
Overall Sigma Summary Report( 1 ),
//Spec Limits Dialog( "No (skip columns with no spec limits)" ),
Select Out of Spec Values( 1 ),
Goal Plot(0 ),
Capability Index Plot( 1 ),
Process Performance Plot( 0 ),
Order By( "Within Sigma Ppk Ascending" )
);
Wait( 0 );
Report( platform )[Outline Box( "Process Capability" )][Outline Box( "Overall Sigma Capability Summary Report" )][Table Box( 1 )] <<
Make Into Data Table;
dt_curr = Current Data Table();
dt_curr << Set Name( "Capability Report" );我可以為每個參數的異常值單元格著色,但不知道如何在能力分析中排除它們。我需要一些幫助。
其次,對於批次中的每個晶圓,我想計算異常值濾波後每個製程參數的Cpk,以獲得每個製程參數的晶圓Cpk趨勢圖。如何透過 JSL 執行此操作(使用我在腳本中獲得的範例資料集)?
自動化和腳本編寫視窗回覆:異常值過濾後如何取得每個參數的 Ppk 和每個晶圓每個參數的 Cpk?對於我的問題的第一部分(Ppk),將交換
obj << Exclude Rows(ALL);
經過
obj << Change to Missing(ALL);
做這份工作嗎?
回覆:異常值過濾後如何取得每個參數的 Ppk 和每個晶圓每個參數的 Cpk?因為您有寬格式表,所以您必須將它們變更為缺失(使用缺失值程式碼或修改資料)或堆疊資料以便能夠排除行。
您是否嘗試過<<更改為缺失是否符合您的要求?

回覆:異常值過濾後如何取得每個參數的 Ppk 和每個晶圓每個參數的 Cpk?@jthi我想我們交叉了。改為缺失後,某些參數的 Ppk 為負 - 這是預期的嗎?

回覆:異常值過濾後如何取得每個參數的 Ppk 和每個晶圓每個參數的 Cpk?建立包含離群值的單列,您可以手動(並使用 JMP)計算 Ppk。將異常值變更為缺失值,重複計算。它們正確嗎?
如果我只採用第一個參數並檢查它的樣子

我想說有人應該對此做出反應。您也可以輕鬆看出為什麼存在負能力值(平均值超出規格)。
回覆:異常值過濾後如何取得每個參數的 Ppk 和每個晶圓每個參數的 Cpk?@jthi謝謝。我的理解是 Ppk 不能為負,而 Cpk 可以為負,因此我懷疑我的「更改為缺失」步驟。我會檢查我的理解。在繼續問題的第二部分之前,還有一件事 - 我是否正確應用了異常值過濾標準(即Q1/Q3 +/- 1.5xIQR之外的過濾器)?
回覆:異常值過濾後如何取得每個參數的 Ppk 和每個晶圓每個參數的 Cpk?如果您能找到正確的位置,JMP 文件可以提供此類問題的最佳答案。有時這可能相當困難。
在這種情況下,最有可能在此處預測和專業建模 > 探索離群值 > 探索離群值概述 > 分位數範圍離群值或此處預測和專業建模> 探索離群值>探索離群值報告> 分位數範圍離群值報告

回覆:異常值過濾後如何取得每個參數的 Ppk 和每個晶圓每個參數的 Cpk?@jthi謝謝,現在進入我問題的第二部分。
對於批次中的每個晶圓,我想計算每個製程參數的 Cpk異常值過濾後,取得每個製程參數的晶圓 Cpk 趨勢圖。
因此,這不是資料表中所有晶圓的參數能力,而是給定批次中的一個晶圓的參數能力。
如何透過 JSL 在我這裡擁有的相同資料集上執行此操作?
回覆:異常值過濾後如何取得每個參數的 Ppk 和每個晶圓每個參數的 Cpk?分組變數不應該讓您根據需要使用 :lot_id、:wafer 和/或 :wafer 來獲得該表嗎?然後您可以從該表建立一個圖表
回覆:異常值過濾後如何取得每個參數的 Ppk 和每個晶圓每個參數的 Cpk?@jthi謝謝。如果我使用
Names Default To Here (1);
Clear Log ();
dt = Open( "$SAMPLE_DATA/Semiconductor Capability.jmp" );
col_names = dt << Get Column Group("Processes"); // Column Group should pre-exist.
obj = Explore Outliers(Y(Eval( col_names )),By( :Wafer ID in lot ID)); // Run expolore outliers
obj << Quantile Range Outliers( Tail Quantile( 0.25 ), Q (1.5) ); // select Q3/Q1 +/- 1.5 x IQR<BR />我進入“探索異常值平台”窗口,在其中我可以單獨處理晶圓。然後我該如何使用
obj << Change to Missing(ALL);
進入下一步,即根據「批次 ID 中的晶圓 ID」進行能力分析?
回覆:異常值過濾後如何取得每個參數的 Ppk 和每個晶圓每個參數的 Cpk?我認為這應該很好。您確定資料中有異常值嗎?
- 採用較小的資料集(批次 ID 中只有幾個晶圓 ID)
- 為一列建立一些異常值
- 運行你的腳本
- 驗證它是否有效
- 用更大的數據重複
請注意,我已經更改了尾分位數
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Semiconductor Capability.jmp");
eo = dt << Explore Outliers(Y(Column Group("Processes")), By(:Wafer ID in lot ID), Invisible);
eo << Quantile Range Outliers(Tail Quantile(0.4), Q(1.5));
dt << Begin Data Update;
// eo << Color Cells(All);
Log Capture(eo << Change to Missing(ALL));
dt << End Data Update;
eo[1] << Close Window;回覆:異常值過濾後如何取得每個參數的 Ppk 和每個晶圓每個參數的 Cpk?@jthi謝謝,我現在使用了一個較小的數據集進行分析(下面的 JSL)。我認為沒有必要在批次 ID 的基礎上過濾晶圓 ID上的異常值,因為異常值單元無論如何都會丟失。我需要的是對異常值過濾後的資料集進行能力分析。
Names Default To Here( 1 );
Clear Log();
dt_full = Open( "$SAMPLE_DATA/Semiconductor Capability.jmp" );
dt = Data Table( "Semiconductor Capability" ) << Subset(
All rows,
columns( :lot_id, :wafer, :Wafer ID in lot ID, :SITE, :NPN1, :PNP2, :PNP3, :FNM1, :RES3, RSP2 )
);
Wait( 1 );
Close( dt_full, no save );
col_names = dt << Get Column Group( "Processes" ); // Column Group should pre-exist.
obj = Explore Outliers( Y( Eval( col_names ) ) );//,By( :Wafer ID in lot ID)); // Run expolore outliers
obj << Quantile Range Outliers( Tail Quantile( 0.25 ), Q( 1.5 ) ); // select Q3/Q1 +/- 1.5 x IQR
obj << Color Cells( ALL ); //check
Wait( 1 );
obj << Change to Missing( ALL );
Wait( 1 );
obj << Close Window;
// Run capability analysis
platform = dt << Process Capability(
Process Variables( Eval( col_names ) ),
Spec Limits Dialog( "No (skip columns with no spec limits)" ),
Moving Range Method( Average of Moving Ranges ),
//Within Sigma Summary Report( 0),
Overall Sigma Summary Report( 1 ),
Select Out of Spec Values( 1 ),
Goal Plot( 0 ),
Capability Index Plot( 0 ),
Capability Box Plots( 0 ),
Process Performance Plot( 0 ),
Order By( "Overall Sigma Ppk Ascending" )
);
Wait( 0 );
Report( platform )[Outline Box( "Process Capability" )][Outline Box( "Overall Sigma Capability Summary Report" )][Table Box( 1 )] <<
Make Into Data Table;
dt_curr = Current Data Table();
dt_curr << Set Name( "Capability Report" );
platform << close window;
dt << Clear Select;
// Run capability analysis by wafer in a lot
platform2 = dt << Process Capability(
Process Variables( Eval( col_names ) ),
Spec Limits Dialog( "No (skip columns with no spec limits)" ),
Moving Range Method( Average of Moving Ranges ),
//Within Sigma Summary Report( 0),
Overall Sigma Summary Report(1),
Select Out of Spec Values( 1 ),
Goal Plot( 0 ),
Capability Index Plot( 0 ),
Capability Box Plots( 0 ),
Process Performance Plot( 0 ),
Order By( "Overall Sigma Ppk Ascending" ),
By( :Wafer ID in lot ID )
);
dt << Clear Select;
我想在批次 ID 的基礎上比較完整資料集的每個參數的 Ppk 與晶圓 ID上相同參數的能力。為此,我透過第二次能力分析努力製作組合資料表(可以互動式地完成),整理了下面的腳本。
Report( platform2)[Outline Box( "Process Capability" )][Outline Box( "Overall Sigma Capability Summary Report" )][Table Box( 1 )] <<
Make Combined Data Table;
platform2 << close window;
最後,我想要的是從組合資料表中產生的批次 ID(x 軸)中的能力(y 軸)與晶圓 ID 的關係圖以及頁面(在圖形產生器上)中的參數名稱。另外,我需要將第一次能力分析計算出的 Ppk 顯示為每個參數的水平線。我可以在這裡尋求幫助嗎?
回覆:異常值過濾後如何取得每個參數的 Ppk 和每個晶圓每個參數的 Cpk?當您嘗試建立組合資料表時會出現什麼問題?你檢查過platform2包含什麼嗎?
Names Default To Here(1);
dt_full = Open("$SAMPLE_DATA/Semiconductor Capability.jmp");
dt = Data Table("Semiconductor Capability") << Subset(All rows, Columns(:lot_id, :wafer, :Wafer ID in lot ID, :SITE, :NPN1, :PNP2, :PNP3, :FNM1, :RES3, RSP2));
Close(dt_full, no save);
col_names = dt << Get Column Group("Processes");
obj = dt << Explore Outliers(Y(Eval(col_names)));
obj << Quantile Range Outliers(Tail Quantile(0.25), Q(1.5));
obj << Change to Missing(ALL);
obj << Close Window;
// Run capability analysis
pc = dt << Process Capability(
Process Variables(Eval(col_names)),
Spec Limits Dialog("No (skip columns with no spec limits)"),
Moving Range Method(Average of Moving Ranges),
Overall Sigma Summary Report(1),
Select Out of Spec Values(1),
Goal Plot(0),
Capability Index Plot(0),
Capability Box Plots(0),
Process Performance Plot(0),
Order By("Overall Sigma Ppk Ascending"),
Invisible
);
dt_nogroup = Report(pc)[Outline Box("Process Capability")][Outline Box("Overall Sigma Capability Summary Report")][Table Box(1)] << Make Into Data Table;
dt_nogroup << Set Name("Capability Report");
pc << close window;
// Run capability analysis by wafer in a lot
pc = dt << Process Capability(
Process Variables(Eval(col_names)),
Spec Limits Dialog("No (skip columns with no spec limits)"),
Moving Range Method(Average of Moving Ranges),
Overall Sigma Summary Report(1),
Goal Plot(0),
Capability Index Plot(0),
Capability Box Plots(0),
Process Performance Plot(0),
Order By("Overall Sigma Ppk Ascending"),
By(:Wafer ID in lot ID),
Invisible
);
dt << Clear Select;
dt_wafer = (Report(pc[1]) << top parent)[Outline Box("Process Capability")][Outline Box("Overall Sigma Capability Summary Report")][Table Box(1)] << Make Combined Data Table;
pc << close window;
Write();
您必須先嘗試自行建立圖表,我建議您將「參考」Ppk 值加入到您的「資料」中,並將它們用作任何其他圖表之上的額外線圖。
回覆:異常值過濾後如何取得每個參數的 Ppk 和每個晶圓每個參數的 Cpk?@jthi謝謝。我使用的是 JMP 16.2。當嘗試使用您的腳本獲取組合資料表時,我得到以下資訊(我的情況與我的相同)

回覆:異常值過濾後如何取得每個參數的 Ppk 和每個晶圓每個參數的 Cpk?我無法再訪問 JMP16,因此您必須自己弄清楚這一點,否則其他人必須插話。從那裡您必須找到正確的表格框(首先選擇正確的資訊),並且您應該能夠向其發送<<製作組合資料表。
回覆:異常值過濾後如何取得每個參數的 Ppk 和每個晶圓每個參數的 Cpk?這種方式行得通嗎?
(pc << XPath( "//OutlineBox[text()='Process Capability']//TableBox" ))[1]
<< Make Combined Data Table;
回覆:異常值過濾後如何取得每個參數的 Ppk 和每個晶圓每個參數的 Cpk?@jthi謝謝。
@Mark_Bailey這有效
dt_wafer = Report( pc[1] )[Outline Box( "Overall Sigma Capability Summary Report" )][Table Box( 1 )] <<MAKE combined="" data="https://community.jmp.com/" table=""></MAKE>
Next I would like to produce a chart similar to the one below (or even better with Parameters in the Page option of Graph Builder) with the overall Ppk calculated (in table Capability Report) from the first part of the script as horizontal dashed line on y-axis for each parameter. I do not know how to get y-axis values from one table and use it on a chart produced from a different table so need some help on the JSL here.
<SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Neo_0-1722527733886.png" style="width: 721px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="Neo_0-1722527733886.png" style="width: 721px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="Neo_0-1722527733886.png" style="width: 721px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="Neo_0-1722527733886.png" style="width: 721px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="Neo_0-1722527733886.png" style="width: 721px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="Neo_0-1722527733886.png" style="width: 721px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="Neo_0-1722527733886.png" style="width: 721px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="Neo_0-1722527733886.png" style="width: 721px;"><span class="lia-inline-image-display-wrapper" image-alt="Neo_0-1722527733886.png" style="width: 721px;"><img src="https://us.v-cdn.net/6038925/uploads/images/66723i4C71FBE8A07B4359/Neo_0-1722527733886.png" width="721" height="351" role="button" title="Neo_0-1722527733886.png" alt="Neo_0-1722527733886.png" /></span></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN>
回覆:異常值過濾後如何取得每個參數的 Ppk 和每個晶圓每個參數的 Cpk?連接參考資料中的值。首先將“Ppk”列重新命名為“Ppk Ref”,然後使用 Update 並與 Process 匹配

然後建立圖形並在 Y 軸上新增兩列:Ppk 和 Ppk ref。禁用來自點的 Ppk 參考和來自線的 Ppk

回覆:異常值過濾後如何取得每個參數的 Ppk 和每個晶圓每個參數的 Cpk?@jthi謝謝。這有效。最後,如何在與水平線相鄰的 y 軸上顯示每個行程的 Ppk Ref 值?
另外,如何透過 JSL 將所有圖表的 y 軸標題變更為通用名稱(例如「功能」)?
回覆:異常值過濾後如何取得每個參數的 Ppk 和每個晶圓每個參數的 Cpk?使用較新的 JMP 版本非常簡單,您只需啟用該行的標籤即可(不確定這是否已在 JMP16 中):


如果 JMP16 中不存在這種情況,那麼我將使用參考線並跳過另一個表中參考 Ppk 的更新(將它們儲存到關聯數組中並在設定參考值時使用它)。
回覆:異常值過濾後如何取得每個參數的 Ppk 和每個晶圓每個參數的 Cpk?@jthi是的,謝謝。在我的 JMP 16 中找到啟用標籤設定。
我的第二個問題如何透過 JSL 將所有圖表的 y 軸標題(透過「頁面」)更改為常見的內容(例如「功能」)?
回覆:異常值過濾後如何取得每個參數的 Ppk 和每個晶圓每個參數的 Cpk?我會使用 XPath 並嘗試找到正確的引用。這可能不適用於所有情況,並且可能需要一些調整
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
gb = dt << Graph Builder(
Size(528, 2954),
Show Control Panel(0),
Variables(X(:height), Y(:weight), Page(:age)),
Elements(Points(X, Y, Legend(15)), Smoother(X, Y, Legend(16)))
);
tebs = Report(gb) << XPath("//TextEditBox");
tebs[4::N Items(tebs)::2] << Set Text("Capability");回覆:異常值過濾後如何取得每個參數的 Ppk 和每個晶圓每個參數的 Cpk?@jthi 。謝謝。相反,我選擇了 Wrap,它適合我需要的圖表。在這種情況下,只有一個 y 軸需要擔心,我可以在 JSL 上處理它。