分析程序需要嚴格按照行和列結構排列的數據,並且通常將行視為獨立的觀測值。因果圖則將行置於一個層級結構中,並用父子關係來描述。該平台最初用於記錄品質管理中的腦力激盪結果,但它也是一個強大的工具,可以用來視覺化其他結構。
JSL 腳本中的通用資料結構是關聯數組和列表。它們的元素可以是值,也可以是列表或關聯數組,從而為快速有效地管理複雜資料結構提供了一個框架。 JSON 介面在系統通訊中應用廣泛,是另一個層次化資料結構的例子。如果對資料項進行不同的處理,並在處理後測量不同的參數,則可以以相同的方式記錄實際的組合。
本次示範將介紹(並提供)一個 JSL 函數,該函數能夠遍歷清單或數組,並將所有內容放入資料表中。因果圖以圖形化的方式展示了內容。應用範例說明了該概念的通用性和強大功能。
歡迎,請跟著我一同深入探索深邃的層級結構。我們先從一個資料表開始。這是我們想要看到的佈局:一個完整的網格,沒有空白,也沒有缺失值。但是,當我們查看這個資料表時,會發現佈局和晶圓 ID 這兩個欄位有重複值。這表示資料表存在層級結構。
我們先從簡單的入手,使用 JMP 腳本語言 JSL 來理解什麼是層級結構和組織結構。這是一個清單。列表用花括號括起來,元素按位置進行存取。這裡的第二個位置是我的姓氏,Heinen。
這是相同的內容,但以關聯數組的形式呈現。關聯數組用方括號括起來,其元素帶有名稱。此元素名為 fn,代表名字,資料已綁定。名字的內容已綁定。
建構資料結構有兩種不同的方法。這些結構可以相互堆疊,從而產生像這樣的組合轉換。你會看到很多花括號和方括號,最後還會看到兩個方括號和閉合的花括號。在這種結構中,很難確定每個元素的位置。
但了解這一點很重要,因為例如在所謂的 REST 介面中,當電腦與網際網路服務通訊時,資料是以 JSON 結構交換的,而 JSON 結構正是清單和關聯陣列的組合。弄清楚每個元素的位置至關重要。
手動操作有點笨拙。有個程式可以幫你完成這項工作。這個程式是我寫的,我把它分享出來。你不需要了解很多程式設計知識。這裡只有兩個重要的語句:for 迴圈和遞歸。
「for」表示這是一個循環。括號內的所有內容都會重複執行多次。遞歸很有意思。它告訴JMP,記住程式目前的位置,然後重新執行整個程式。運行完畢後,再回到這裡繼續執行。遞歸本質上可以重複任意次數。
這個程式做什麼呢?它首先會取得整個資料結構。然後它會詢問:你的資料是列表還是關聯數組?如果是,我們就將其指定為父級。當我們思考層級結構時,可以想到世代關係:祖父母、父母、子女、孫子女等等。這是第一代父級。
我們取第一個元素,也就是它的第一個子元素,然後增加堆疊層級,記住我們現在處於第二代,然後重新開始整個查詢過程,直到我們到達終點。終點始終是一個數據元素。
然後我們記住,保存這個資料元素的所有信息,降低堆疊級別,這樣我們就回溯一代。我們現在位於孫代,現在我們再回溯一代,詢問該代中是否有同級元素?如果有,我們就選擇下一個同級元素,整個過程重新開始,直到沒有同級元素為止,最後到達堆疊頂部,也就是祖代。然後我們產生輸出。
在這種情況下,或舉個例子,在重疊比較中,標準化的零件被送到實驗室,用不同的分析儀進行測試,並輸出不同的測量值組。
然後對這些數據進行分析,並顯示在這張表格中。我們可以看到表格中有父級和子級兩列,我稍微加了點顏色,以便更清楚地說明情況。這是向下遍歷到第一個資料元素的第一條路徑,然後是它的所有同級元素,向上再一層,我們發現已經到達了終點,沒有更多子元素了,然後再次向上再一層,就到了下一個結構元素。
由於我們也保存了數據,所以我們清楚地知道每一步都在討論什麼。無論是關於實驗室、關於零件,或是關於實驗室分析中的一組測量值。在底部,您可以看到一個值,在本例中稱為 cv,即變異係數。
像這樣的資料表我們該怎麼處理?我們要產生這個圖表。它在「分析」選單的「分析」>「品質和過程」>「圖表」裡。我以前做過,所以可以自動填充。這其實很簡單。
預設是魚骨圖。最後,我們在這裡看到整個集合。這很難閱讀。右鍵單擊這裡,我們可以將類型變更為層次結構。現在我們可以看到最多七層的層次結構,這裡是整個集合的開始,依此類推。我們還有關聯數組和列表。
我們要如何瀏覽這些分組呢?當然,我們首先要查看整個資料集。然後,我們向下瀏覽一個包含各個部件的關聯數組,然後向下瀏覽第一圈。可以看到,這條線一直向右延伸,所以還有很多圈。我們選取其中一個分析儀,在本例中是 E2。這組測量值是一個列表,列表中的第三個元素是值為 6 的資料點。
這正是程式設計師存取該數據點的方式。這比在這種結構中摸索要容易得多。我們有一個程式可以進行分析。我們有應用程式、JSON 介面、REST 介面和 JSON 結構,這些都非常有用。
一切都完美嗎?嗯,腳本假定資料結構已經是 JSL 結構。如果能有一個使用者介面,使用者可以說:「這是我的資料表。這是我的列層次結構。請產生一個像這樣的圖表。」那就更好了。然後程式就會產生對應的圖表。
當您使用此圖表時,您可能會發現它與 JMP 的整合度並不像現代平台那麼高。它似乎源自於 JMP 2 或 3 版本。如果 JMP 開發人員看到了這則訊息,請對該平台進行改進。
您可以從我的Discovery演講網頁上取得演講稿。如果您有興趣,或有任何疑問,或想在3月7日星期四的Discovery峰會上見到我,請到2號攤位(宴會廳)找我。我會在那裡。