如何使用基準模型進行模型驅動的多變量持續過程驗證大家好,
繼續這篇文章(下面提供了鏈接)-
https://community.jmp.com/t5/Discussions/Help-in-JSL-scripting-of-Model-Driven-Multivariate-Control-Chart/mp/655359#M84445
我想擴展該腳本,使其在與之前建議的類似行上有一個通用腳本,但這一次,模型驅動的多元控製圖應使用一些基準模型(PCA 或 PLS)來修復控制限制。 原因是,出於持續過程驗證的目的,一旦我們確定了限制(根據沒有任何異常值的歷史數據集計算),就必鬚根據該限制監控未來的批次。 目前,發生的情況是,每次運行此腳本時,由於數據集不同,它都會生成新的控制限制(出於明顯的原因)。
因此,第一部分是修復控制限制(所有歷史/黃金數據集都應低於控制限制),為此,是否可以開發一個具有交叉驗證的模型來最終確定組件的數量,以便數據點低於控制限(當然,在刪除異常值之後)? 我面臨的棘手部分是,即使刪除了所謂的異常值,每次 MDMVCC 都會給出超出控制限制的一個或其他數據點(隨著數據集發生變化)。這個問題必須得到解決。
第二部分是在後續製造的批次上運行此腳本(具有固定的控制限制),以識別變量中的任何偏差作為 CPV 活動的一部分。
總體想法是擁有一個通用的 MDMVCC 腳本(來自基準模型),它可以高精度地預測/識別異常值/變化。
如果社區中的任何人能夠指導我或對這一請求提供更多說明,我將不勝感激。
提前致謝 !!
克羅恩,
納瓦茲
高級統計建模回复:如何使用基準模型進行模型驅動的多元持續過程驗證你好@Riaz90Nawaz
對於你的第二個問題(有固定的控制限制),這是一個想法。
- 將歷史/黃金數據添加到當前數據集/未來批次
- 為 MDMVCC 設置“歷史數據結束於行”選項
這是一個示例腳本供您參考。
Names Default To Here( 1 );
historical_dt = Open( "$SAMPLE_DATA/Quality Control/Aluminum Pins Historical.jmp" );
current_dt = Open( "$SAMPLE_DATA/Quality Control/Aluminum Pins Current.jmp" );
//Get the number of rows for the historical data
historical_data_end_row = N Row( historical_dt );
//Combine the data tables
dt = historical_dt << Concatenate( current_dt );
//Close
Close( historical_dt, nosave );
Close( current_dt, nosave );
dt << Clear Row States;
cols_of_interest = dt << get column names( Continuous, "String" );
Eval(
Substitute(
Expr(
obj = dt <<
Model Driven Multivariate Control Chart(
Process( cols_of_interest ),
Historical Data End at Row( historical_data_end_row )
)
),
Expr( cols_of_interest ), Eval( cols_of_interest ),
Expr( historical_data_end_row ), Eval( historical_data_end_row )
)
);
obj << T Square Plot( Save Values );
new_cols = Associative Array( dt << get column names( Continuous, "String" ) );
new_cols << Remove( Associative Array( cols_of_interest ) ); // T2 column
// get UCL (should be made more robust)
ucl_value = ((Report( obj )[Outline Box( "T² Limit Summaries" )] << Child)[3] << Get)[1];
alarm_rows = Loc( dt[0, new_cols << get keys] > ucl_value );
dt << Select Rows( alarm_rows );
Wait( 0 );
obj << T² Plot( Contribution Plot for Selected Samples( alarm_rows ) );
dt << Clear Select;
希望它能解決您的問題。
回复:如何使用基準模型進行模型驅動的多元持續過程驗證你好@yuichi_katsumur ,
非常感謝您的指導。 高度讚賞。
對於相同的代碼,我嘗試添加多元散點圖矩陣,以便通過添加以下代碼來理解變量之間的相關性,但看來我做錯了,因為它不起作用 -
多元(
Y(感興趣的列),
方差估計(“按行”),
散點圖矩陣( 密度橢圓( 1 ) )
);
如果您也能在這方面有所啟發,我將不勝感激。
謝謝,KR,
回复:如何使用基準模型進行模型驅動的多元持續過程驗證你好@Riaz90Nawaz ,
一種想法是下面的代碼。 我認為這會起作用。
Multivariate(
Y( eval(cols_of_interest) ),
Variance Estimation( "Row-wise" ),
Scatterplot Matrix( Density Ellipses( 1 ) )
);
回复:如何使用基準模型進行模型驅動的多元持續過程驗證你好@yuichi_katsumur ,
非常感謝您的及時支持。 有效。
我也在我的主要帖子中發布了一個一般查詢,我們不能將這個固定限制(從歷史數據集生成)直觀地添加到當前數據集(通過腳本)嗎? 我明白了,儘管腳本僅為那些違反歷史控制限制的行提供貢獻。當前數據集也有這條參考線是理想的。 目前,對於當前數據集,控制限制顯示為紅色虛線,我不希望出現這種情況(出於明顯的原因),而不是這樣,歷史中的固定控制限制應該繼續當前/未來數據集也是如此。 這提供了更正確的視覺表示。
韓國
回复:如何使用基準模型進行模型驅動的多元持續過程驗證你好@Riaz90Nawaz ,
您可能知道,歷史數據的控制上限 (UCL) 基於 Beta 分佈。 另一方面,當前數據的 UCL 基於 F 分佈。 https://www.jmp.com/support/help/en/17.1/#page/jmp/statistical-details-for-limits.shtml#ww345612
我不確定對每個數據使用相同的限制是否有意義,一個想法是使用“排除行”選項。 這是一個示例腳本供您參考。
Names Default To Here( 1 );
historical_dt = Open( "$SAMPLE_DATA/Quality Control/Aluminum Pins Historical.jmp" );
current_dt = Open( "$SAMPLE_DATA/Quality Control/Aluminum Pins Current.jmp" );
//Get the number of rows for the historical data
historical_data_end_row = N Row( historical_dt );
//Combine the data tables
dt = historical_dt << Concatenate( current_dt );
//Close
Close( historical_dt, nosave );
Close( current_dt, nosave );
dt << Clear Row States;
cols_of_interest = dt << get column names( Continuous, "String" );
dt << Multivariate(
Y( Eval( cols_of_interest ) ),
Variance Estimation( "Row-wise" ),
Scatterplot Matrix( Density Ellipses( 1 ) )
);
//Exclude current data
data_end_row = N Row( dt );
selected_row = dt << select rows( Index( historical_data_end_row, data_end_row ) );
selected_row << Exclude;
obj = dt << Model Driven Multivariate Control Chart( Process( Eval( cols_of_interest ) ) );
//Show excluded row
obj << Show Excluded Rows( 1 );
obj << T Square Plot( Save Values );
new_cols = Associative Array( dt << get column names( Continuous, "String" ) );
new_cols << Remove( Associative Array( cols_of_interest ) ); // T2 column
// get UCL (should be made more robust)
ucl_value = ((Report( obj )[Outline Box( "T² Limit Summaries" )] << Child)[3] << Get)[1];
alarm_rows = Loc( dt[0, new_cols << get keys] > ucl_value );
dt << Select Rows( alarm_rows );
Wait( 0 );
obj << T² Plot( Contribution Plot for Selected Samples( alarm_rows ) );
dt << Clear Select;
//Add reference line
report = obj << report;
report[Picture Box( 1 )][axis box( 2 )] << Add Ref Line(
{0, eval(historical_data_end_row)},
"Solid",
"Light Red",
"Historical",
1,
0.25
);回复:如何使用基準模型進行模型驅動的多元持續過程驗證你好@yuichi_katsumur ,
再次感謝您的及時支持!
是的,我知道歷史數據集和當前數據集的基本分佈差異。 實際上,作為“持續過程驗證(CPV)”的一部分,我們不能對後續監控使用不同的限制。 必須有一個固定的控制限制(源自歷史數據集),隨後的批次將根據該限制進行監控,主要是為了研究過程中的任何漂移/變化。 希望您明白我要解決的問題。
我感謝您對此的支持,但是,我們不能在不排除行的情況下做到這一點嗎? 我剛剛嘗試了提供的腳本,雖然就 T2 控製圖可視化而言,它滿足了我想要實現的目的,但是當我查看 T2 貢獻圖時,腳本給出了所有點的圖表(特別是對於當前數據集) )無論特定點是否違反 UCL。 雖然在腳本中,特別提到了“alarm_rows”的貢獻圖,但它似乎不起作用,可能是因為我們已經排除了當前數據集行,對此不確定。
希望您理解我想要實現的目標。
預先感謝您的支持,
親切的問候,
回复:如何使用基準模型進行模型驅動的多元持續過程驗證你好@Riaz90Nawaz , 感謝你的回复。 我明白你想要什麼。 抱歉,我的腳本中有一個錯誤。 請將以下行添加到腳本中(第 26 行)。
//Exclude current data
data_end_row = N Row( dt );
selected_row = dt << select rows( Index( historical_data_end_row, data_end_row ) );
selected_row << Exclude;
dt << Clear Select; //Please add this line!!
當我排除行時,我選擇了一些行,因此您需要取消選擇它們。 我認為這會起作用。
回复:如何使用基準模型進行模型驅動的多元持續過程驗證你好@yuichi_katsumur ,
非常感謝您更新的腳本。現在正在工作。
感謝您的及時支持!
祝你有美好的一天 !!
此致,