力拓集團位於鹽湖城郊外的銅、金、鉬、銀礦(原名肯尼科特猶他銅礦)已營運超過120年。該礦開採出的金屬經過鑽孔、爆破、選礦、浮選、冶煉和電解精煉等工序,純度從低於1%提升至高於99%。這一濃縮過程會導致約10%的金屬被丟棄。金屬產量每增加1%,每年就能增加高達2,000萬美元的收入,因此,每一次產量提升都必須經過定義、衡量、分析和控制。 JMP統計軟體在影響生產的關鍵決策中發揮了至關重要的作用。
本次示範和JMP軟體示範展示了我們如何透過建立線性迴歸模型來識別關鍵因素並量化其對回收率和品質的影響,從而做出一些重大決策。這些決策包括:購置價值100萬美元的新增設備,花費100萬美元維護舊設備,以及改用價格較高的試劑(每年成本300萬美元)。
嘿,大家好。我叫喬伊‧莫滕森,就職於力拓集團,一家全球礦業公司。我目前在力拓位於猶他州的肯尼科特銅礦工作。接下來,我將分享幾個JMP軟體中「擬合模型」功能的使用案例…以及我如何利用該功能來幫助公司做出一些關鍵決策,從而最大限度地提高礦石回收率和整體收益。
讓我先簡單介紹一下我的示範流程。首先,我會用簡單易懂的方式向非礦業人士解釋 Kennecott 的運作原理。然後,我會講解我需要使用統計軟體驗證的三項索賠。我會解釋我為什麼使用擬合模型,以及標準化或平衡數據以確保公平比較的重要性。我還會談到資料科學家和資料管理員的雙重角色。接下來,我會進行演示,並可能根據時間安排,在 JMP 中切換演示內容。
首先是肯尼科特礦。這是肯尼科特礦的鳥瞰圖。這個礦坑已經開採了120多年,坑邊堆積的礦石都是那些沒能進入選礦廠或選礦廠的廢料。但你可以看到,在過去的120年裡,我們在洛磯山脈的肯尼科特礦場幾乎堆起了一座小山。
礦石或廢料的判定取決於其中銅、輝鉬礦(在本次演示中我將多次簡稱其為鉬)、金或銀的含量,也就是初始含量。如果符合標準,則需要進行鑽孔爆破,然後用鏟子和卡車將物料運送到破碎機,然後通過緊鄰篩網的傳送帶送至選礦廠,我們的案例研究將在那裡進行。
選礦廠之所以叫這個名字,是因為它不僅要將礦石研磨成細粉,提高產量,還要進一步濃縮礦石,以便送往冶煉廠。例如,銅的含量可以從大約0.5%提高到25%,輝鉬礦的含量也可以從大約0.04%提高到85%。濃縮倍數是原來的2000倍。
在這個過程中你會損失很多。這裡有改進的機會,也是所有供應商介入並與我和我的同事們討論他們的產品將如何幫助我們,以及我們需要如何使用統計軟體來驗證這些聲明的地方。
在流程的下游,我們還有一個冶煉廠,但我不想過度分散大家的注意力。讓我們來看看這些說法。首先是產能的說法。他們聲稱,如果我們更換新的爐排和/或襯板,產能就能提高5%。這對我們來說至關重要。這相當於每年1億美元的收益,所以我們必須確保這個說法屬實。他們是如何計算的呢?他們自己使用了一些軟體,一些基於採礦技術的軟體來驗證這個說法,我們將在自己的工廠進行測試。
光是我們四條生產線中的一條,每六個月就要更換一次爐篦,這相當於一百萬美元。一年兩次,四條生產線,如果我們更換爐篦和襯墊供應商或分銷商,那就意味著要花費八百萬美元。這是我們需要承擔的風險。
接下來是浮選。礦石磨碎後,我們會將其送至浮選機分離礦物。有人聲稱,如果使用化學品 X 或添加劑 Y,可以將回收率提高 1%,實驗室測試甚至顯示可以提高 5%。但我們至少需要 1% 的提升才能確定其真實性,還要考慮額外添加化學物質的成本是否值得。因為添加一種化學品每年可能要花費 1000 萬美元,而 1% 的提升相當於 2000 萬美元。有時兩者之間的差距非常小。
最後,我要展示的最後一個案例是這樣的:以前鉬廠的配置總是比現在的配置好。當你需要濃縮那麼多鉬時,有六種不同的方法。這就像蘇斯博士的圖畫一樣,如果你親眼看到,如果我把圖帶到工廠,你會發現有很多不同的電路可以使用,可以互換,可以先用這個,再用那個。找出最佳配置至關重要。這關係到每年數百萬美元的收益。
我為什麼要使用擬合模型?嗯,你真的需要把所有事情都標準化。很多人會說佛洛伊德·梅威瑟是史上最偉大的拳擊手。他從未輸過。有很多拳擊手的戰績也跟他差不多。但更重要的是,他不可能和麥克·泰森打。他們的體重級別完全不同,這既不公平,也沒什麼看點。你肯定不想讓領先優勢這麼大。
讓事情變得有趣的是戲仿,以及這個特定級別的比賽。你也按性別劃分體育運動。當然,你可能聽說過那種每年在嘉年華上讓黑猩猩和人類打拳擊的比賽。這不公平,對吧?他們根本不在一個層次。你必須根據正確的級別來劃分比賽。
以下是您將看到的案例研究中的範例。在吞吐量模型中對硬度進行歸一化。我們已經對 50 種不同的礦石類型進行了分類和測試。因為,首先,如果您正在試用一套襯板,而您遇到的礦石非常柔軟,那麼您看起來會覺得這套襯板性能非常好。但事實並非如此。這僅僅是因為您遇到的礦石較軟。
在回收模型中,如果試驗期間送入浮選廠的礦石品位遠高於實際值,就會使這種特定化學品的性能看起來遠優於實際值。礦石品位、粒度以及其他因素(我會逐一解釋我們進行標準化處理的因素)都會影響最終結果。我們需要明確化學品 X 或零件 Y 本身的影響。
同樣,鉬冶煉廠的配置也需要類似的最佳化。不只是配置本身,還有其他因素會影響鉬的回收率,從而篩選出最佳配置。
在開始演示之前,我最後要說明一點:資料清洗有兩種方法。你可以使用 JMP 中的本機資料過濾器,實際上,你會看到我常用到它。我喜歡本地資料過濾器,因為有時候你會忘記事先過濾資料。你也可以事先過濾數據,這也能幫你節省時間,尤其是在你需要反覆進行數據清洗的情況下。所以,最好事先過濾數據。
此外,我還要向你介紹一種叫做冶金表的東西,因為我的背景實際上是冶金工程,它也能幫助你在建立模型之前使你的回答更有意義。
最後還有一個小故事。我們花了四年時間,和資料科學家一起嘗試建立一個機器學習模型,但工程和資料科學的結合最終失敗了,主要原因是很多時候你不得不接受這樣一個事實:你沒有所需的資料。你沒有足夠的高品質數據來建立這樣的模型,尤其是當我們嘗試使用串流分析器上的 20 分鐘快照時。
最好還是從這個「擬合模型」功能開始,它雖然不如其他功能那麼花哨,但至少是可解釋的,而且不會受制於錯誤數據,因為它是即時的,我可以清理它,而且它的數據是可信的。
首先,要最大化吞吐量。目標是每小時銑削噸數最高,但實際上是為了超越冶金工作台。這是我們冶金工作台的快照。這裡列出了各種不同的工件類型及其基於實驗室測試的預期吞吐量。這就像拳擊比賽中的重量級。我的回應將基於相對於冶金工作台的性能,而不是整體性能,因為MZ1H的性能波動很大,有時非常慢,有時又非常難。你可以看到,如果加工的是非常軟的門,吞吐量幾乎可以翻倍。
當然,我們也要考慮我們付出的努力程度。有時候,我們並不是磨機的瓶頸。這些磨機要等待上游礦場的物料,所以它們會故意放慢速度以最大限度地提高回收率。這裡是 SAG 1、SAG 2、SAG 3 和 SAG 4。我說的 SAG 指的是半自磨。我不想帶你們去上礦物加工課程,但為了方便理解術語,當我展示資料集時,SAG 指的就是這個意思。
現在,我要開啟我的資料集。在這裡,找到我的……很快。如果可以的話,找到資料集。把它移到這裡。第一個資料集是吞吐量。這是月度數據。之所以是月度數據,是因為另一個重要的篩選條件是,機器會將貨物運送到倉庫,而倉庫的容量非常大。並非所有貨物都會在同一天或當天通過倉庫。
確保不進行不恰當的比較的最公平方法是創建一個足夠大的資料集,以便能夠捕捉到輸入變數的各種變化。我將進入“分析”選單,然後選擇“擬合模型”。我將查看 SAG 1 的合格率。我已經知道襯管壽命(包括其起始和終止時間)需要進行歸一化處理。還有一個我之前沒有提到的因素。
我們付出了多少努力,或者說,我們在電機限制下運行得有多努力。格柵,無論是大型格柵還是超大型格柵,我們目前正在使用的最大型格柵,都至關重要。此外,還有一個輔助破碎迴路,它的開啟或關閉狀態,以及開啟時間的百分比,都可能產生影響。我認為,所有這些因素都至關重要。
我點擊“運行”。所有模型特徵都使用預設值。然後我從這裡開始,問自己:「嗯,這對我來說合理嗎?」確實合理。我有點驚訝,我的碎石機居然沒有產生任何影響,但事實就是如此。我把它移除了,因為根據這個效果總結,它產生影響的機率只有 1%。所以我把它移除了。現在有些東西通過了測試,但結果很接近。我得到了一個相當不錯的擬合總結,R 平方值達到 0.53。線性壽命是唯一一個可能沒有真實機率的因素,但也很接近了。
我打算說:「我想進一步分析這些數據。」我要用最小平方法均值圖來分析。這能很好地表明,如果我使用小顆粒,合格率能達到 88%,而如果使用大顆粒,合格率能超過 100%。如果我改用大顆粒,合格率和吞吐量都會提高 12%。但我需要驗證一下,看看它是否真的總是如此。我們來驗證一下。
好了,回到這裡。我要回去說:「這是線路 1。」為了示範方便,我已經預先做好其他線路了。這是線路 2 的樣子。它也沒有採用碎石機,而是採用了其他因素。但是,坡度大小對 SAG 2 的影響並不大。這是為什麼呢?幸運的是,我手邊有這個數據集,它告訴我,這裡只有 3 個月的數據,而其他 45 個月的數據都是使用小坡度的。現在測試還處於早期階段,現在下結論還為時過早。
我第一次介紹的另一個功能是左側的本機資料過濾器。想像一下,如果你是工程師,假設有一個工程師團隊正在決定是否要更改格柵尺寸。你們都會查看 JMP 的輸出結果,然後說:「我們來增加一個不同的過濾器,讓每個人都能判斷哪個結果更公平。」因為很多時候,事後人們會抱怨這些計算沒有考慮到這樣或那樣的情況。例如,有人可能會說:「我認為你不應該把那三個月的數據也算進去,因為當時我們正努力尋找備用電機,這樣比較不公平。」 這就是一種過濾方法。
另一種篩選相同資料集的方法是,根據馬達故障情況進行分類,然後篩選掉這些情況。我在這裡反其道而行之,剔除了所有馬達故障月份的資料。這是第 3 行的輸出結果,現在我們可以看到襯板壽命的影響更小了。我會把它移除。我保留它只是為了說明它沒有影響。但破碎機運行時間確實會產生影響,一旦我移除襯板壽命這個因素,它的影響可能會更大。
差別有多大?嗯,不知何故,在這條生產線上,碎石機的效率提升了16%,也就是說,如果碎石機100%開啟,相比0%開啟,產量就能提高16%。當然,還有大小格柵的更換,這是我們最想做的決定之一,更換後產量可以提高14%。這非常可觀。我們幾乎可以肯定SAG 2也會有同樣的效果,所以我們應該繼續前進。
接下來是SAG 4,我們還沒有用這組資料進行大型小型格柵測試。我們之前只在SAG 1和SAG 3上進行過試驗,還沒有移動過它。我們剛把它放到SAG 2上,還沒準備好把它移到4號生產線,因為我們發現4號生產線的情況完全不同。功率對SAG 4的影響微乎其微。它配備了一個更大的環繞式電機,而且似乎對碎石機的敏感度最高,甚至比SAG 3還要高。因此,保持碎石機運轉可以提高產量。
這促使我們進一步研究為什麼4號生產線與1號至3號生產線差異如此大?影響其產量的因素與1號至3號生產線截然不同。因此,我們需要對這台磨機的基本原理進行更深入的研究,我們之前也做過類似的工作,例如降低磨機轉速,並進行了大量測試。但正是由於我們看到的這些差異,促使我們進行更深入的調查。
最後再做一個研磨演示,然後我就要開始講解恢復過程了。這次是不同供應商之間的對比。對於同一組襯墊(尺寸不變,只是襯墊不同),最好的方法是進行配對測試。所有測試如果採用配對測試,結果都會顯著提升。例如,如果兩個迴路完全相同,那麼你可以分別測試在SAG 1和SAG 3上安裝ME襯墊前後的效果,以及在SAG 3上安裝Vega襯墊前後的效果。
關鍵因素在於您在SAG 1和SAG 3上的努力程度,或者說您在多大程度上達到了設備極限。我們知道卵石破碎機的運作時間很重要,因為它對SAG 3的影響很大,而對SAG 1的影響則不大。至於SAG 3的襯板類型,我們只能說它可能確實起到了一定的作用。 SAG 3的性能比SAG 1低了3%,而SAG 3的性能卻比SAG 1高了近6%。這相當於9%的產量提升,足以說明「我們或許應該試試ME公司生產的另一套襯板」。
我之前也提到過功效檢定。在最小平方法平均值圖中,你也可以進行效能檢驗,看看結果是否真實可靠。只需運行功效檢驗,它就會告訴你:“0.8 或更高肯定不是假陽性。如果低於這個值,你可能只是看到了假陽性。在結果出來之前,你肯定需要進行進一步的檢驗,以免過早下結論。”
現在我們來看看銅的回收。現在我們討論的是零件 X 和化學品 Y。回收率指的是我們送入選礦廠的銅量減去選礦過程中剔除的尾礦量。我們來看示範。等等,不好意思,那是成品。我去這邊找找。這是數據集。不好意思。哦,找到了。
這是數據集。這是班次數據,因為我們擁有每個班次的可靠數據。每隔20分鐘,我們會對您的進料、尾礦和精礦流進行取樣,以記錄其變異性,從而計算您的回收率、研磨粒度、進料量、礦渣品位、無硫銅或不可回收銅的含量、銅捕收劑和鉬捕收劑的使用量以及氰化物用量:所有這些重要因素。
我要示範模型。我要講的是…這是兩種化學物質:5160 和 Mo120。它們很重要。實際上,這是兩個小部件。這叫做泡沫消除器,但它也是泡沫消除器和磁鐵的組合。我們把它們當作一個整體來安裝。這些是現有的或經過試驗的設備。
我需要一個針對粉末粒度和研磨度進行標準化的參數。如果一次測試中使用的物料粒度與另一次測試中的物料粒度差異過大,那就不公平了。這必須納入測試考慮範圍。我最感興趣的是實際的銅回收率。非硫銅是另一個需要考慮的因素。如果它已被氧化,則無法流動。如果非硫銅的含量存在差異,則需要將其納入考慮。
氰化物用量可能會影響回收率。當時我們並不確定,但最終卻發現了一些令人驚訝的結果。每行每小時的產量也很重要。這是一個關鍵的決策點。其餘內容都是圍繞著這個主題展開的,是我為了進一步測試而進行的分類。但就我現在要做的案例研究而言,我只想補充一點。我確信這些因素將會產生決定性的影響。
開始運行。我們還沒有柵格模型。雖然現在的模型已經相當不錯了,但我打算進行局部資料過濾,讓它變得更好。這是實際的銅回收率。我發現這裡有很多異常值,我可以立即清理這些數據,只需說:「我對回收率低於 80% 的數據不感興趣,因為工廠可能出了問題。」 也許我們漏氣了。這是一種泡沫浮選工藝,我們透過產生氣泡來吸附我們想要回收的礦物。這需要非常精細的平衡。很多時候,你會遇到一些超出你控制範圍的情況,超出你能控制的因素。
泡沫用戶。我原本期望更高。好吧,這是怎麼回事?我要看看這裡,然後說:「泡沫用戶分佈如何?」到底是怎麼回事? 1100% 的安裝率是不可能的。我知道安裝率只能在 0% 到 25% 之間。這會促使我重新查看數據,然後說:“我可能犯了 Excel 裡那種常見的錯誤,比如你向下滾動 10 天,結果發現裡麵包含了 10 天的亂碼。”
完成上述步驟後,泡沫消除器確實能發揮作用。還有一些其他因素。因為我是製程工程師,所以我也更懂得如何清理資料。我這裡正在查看 Mo120。根據我的參數估計,我看到了三種不同的狀態。在 Mo120 中,有 Int 狀態。 Int 不是我感興趣的狀態。我感興趣的是化學物質是處於開啟狀態還是關閉狀態,而不是開啟或關閉狀態的過渡階段。
我還沒完全完成。我正在計算每行每小時的產量(噸)。我知道這些數據聽起來很複雜。我想要的是 500 到 2500 噸。這是每行能控制的最低產量,也是每行能控制的最高產量。這相當於每小時 2000 噸的波動範圍。
你仍然可以以最大的波動幅度運行這些行。但如果你這樣做會發生什麼事呢?我將進行參數估計,這將告訴我我需要知道的一切。這也是「擬合模型」功能如此強大的原因之一,因為它具有可解釋性。我可以清楚地揭示問題所在或所有這些因素的影響,並以非常易於理解的方式進行量化。
Mo120,無論開啟或關閉,或是損失0.5%,或增加0.5%,也就是1%的提升。這種化學品能帶來1.3%的提升。無論是否使用泡沫收集器,都能帶來0.7%的提升。銅頭灰度值是一個標準化因子。 0.5和0.6之間的差異相當於1%的回收率差異,而我們的銅含量範圍通常在0.4%到1%之間。顯然,我們根據銅頭灰度值進行標準化是正確的。
研磨粒度方面,可以控制在 0% 到 20% 之間,再加上 50 目,或者換句話說,就是 400 微米或更大粒徑的物料含量。 0% 到 20% 的範圍意味著研磨粒度造成的損失為零,或高達 20 倍的 0.4,也就是 3.2% 的損失。我希望我沒錯。 28% 的損失,不好意思。
無硫銅。我發現我還可以更好地平衡一下。我添加了一些數據。如果我說:「0.3 不是實際值。我知道 0.03 是最大值。這個範圍才合理。」我的模型可能會更好。這個模型的妙處在於它能給出範圍。它能顯示你的數據所在位置。我的資料集中仍然有 2300 行匹配,而我最初的資料集是 2600 行。它還能告訴我過濾掉了多少數據點,這點非常重要。
繼續往下看,它也告訴我,不可回收的銅含量確實很重要。我需要平衡這部分。我還需要檢查氰化物,然後說:「哇,我每噸可以用0-20克氰化物。」再說一遍,20乘以0.2,如果我把氰化物用量加滿,回收率就會損失4%。也許我應該把它限制在每噸5克,看看是否還能達到我需要的質量,因為氰化物對質量的要求更高。其餘的化學品都是以回收率為導向的,為了節省回收率,它們會限制我能獲得的優質化學品的用量。
停留時間的影響看似微不足道,但你也要考慮到乘以的單位。這才是最重要的。 500 和 2500 之間的差別,是 2000 噸。 2000 乘以 0.001,就表示回收率損失是 2% 還是 0%。
那麼,級聯百分比就是你運作能夠最大限度提高回收率的製程控制邏輯的時間比例。 100 倍就是 0.5%。運行這種控制邏輯已被證明可以提高 0.5% 的回收率。這並不多。它是所有這些因素中最小的。然而,它也是所有這些因素中最不受限制的,對吧?
其他這些東西都需要花錢。有些化學品每年要花掉400萬美元,所以了解它們是否能幫你節省1%的成本(也就是每年2000萬美元)非常重要,如果能節省的話,就值得使用。但如果不能節省成本,你就不應該使用它們,而應該進行更多測試。
我這裡還有一個測試要驗證,那就是鉬工廠。我會直接打開我的鉬工廠資料集,並解釋鉬工廠有很多不同的處理方法。但我最想向大家展示的是,使用三個月滾動平均值才是最佳方案。這看起來可能不太公平或奇怪。但鉬工廠的反應時間或延遲時間非常長,所以這個問題才會如此爭議。
在鉬廠裡,人們常說,談論宗教或政治比討論生產線配置更安全。這是一個沉重的話題,因為很難看出不同配置的影響孰輕孰重,所以各種猜測層出不窮。因此,我會採用擬合模型。我使用的資料集包含了超過十年的資料。我可以使用回收的金屬表,也可以使用鉬尾資料。
讓我直接回到正題……當然,這就是我的工作。我會問:「這是鉬尾礦嗎?」它的最佳用途是…在所有配置中,哪種最好?原料級,這其實是鉬廠的原料級,也就是我之前提到的工廠的成品級。有多少噸鉬經過,最終成品等級是多少?我們就從這裡開始,因為我知道我接下來要講的就是這個。
接下來我講解一下濾鏡。我再舉個例子,如果你是工程師,想像一下有十位工程師和你一起審核資料過濾方法,確保其公平性。首先,我選擇的是鉬尾響應。當然,我也可以使用表格恢復,它本身就是一種恢復模型,但我選擇鉬尾響應是因為它更簡潔。如果我有時間,我會詳細解釋這兩種模型的區別,以及為什麼一種比另一種更簡潔。但我即將得到的 R 平方值約為 0.7。我會解釋原因。
我對鉬含量大於 1.2 的尾礦不感興趣,因為我們本來會回收,把這些尾礦收集起來重新送回生產系統。那樣做會擾亂工廠的正常生產。任何高於 1.2 的鉬含量都肯定會擾亂工廠的生產,你不會認真考慮,或者你會繞過鉬廠。有時候鉬的價格不是像今天這樣每磅 20 美元,而是 5 美元,你甚至不能認真對待。如果你得到的飼料級鉬含量低於 1.2,你也不能認真對待工廠的生產,所以你需要過濾掉那些含量過低的飼料級鉬或尾礦級鉬。
現在,我的 R 值已經達到 0.64 了。接下來我還需要篩選什麼呢?我之前提到過,作為重要的歸一化因子,為了確保比較的公平性,最重要的因素之一就是:鉬廠的目標品位是多少?就我們而言,鉬的純度必須達到 45% 或更高才能出售。因為我已經篩選掉了這很大一部分數據,所以現在我的 R 平方值模型大約是 0.7,而所有這些因素都很重要。
更重要的是,我將查看最小二乘均值圖,並詳細展示該模型中後三種配置遠優於前三種配置。當然,每種配置也都得到了充分的驗證。它們都使用了大約 10 個月的數據,因為這是一個…實際上,看起來總共 170 個月的數據集中,有 136 個月的數據被用於建立該模型。
這裡有許多數據,足以說明這些配置確實會對每天鉬的損耗量產生顯著影響。我之所以選擇尾礦等級作為更合適的指標,是因為它從行銷的角度來看更容易理解。這樣一來,我就可以直接用更直觀的計算結果來說明損失,例如:「我知道尾礦等級0.6或0.5與0.9之間的差異,或者0.1級的差異,每天大約會造成4萬美元的損失,這相當於工廠每天的運營成本。」而這兩種配置之間的差異,每天則約為16萬美元。
這會產生巨大的影響,尤其是在有人可能擁有足夠票數的情況下,如果沒人意識到應該恢復到先前的配置,那就更不應該這麼做了。除非你身為流程工程師能夠運用資料科學證明,否則你不應該恢復到先前的配置。它遠遜於表格中的最後三種配置。
希望大家喜歡這篇文章。希望你們從中有所收穫,並能在日常使用JMP的過程中運用這些技巧。祝大家JMP使用愉快,一路順風。我想就此打住吧。我估計時間已經到了。謝謝大家。