如何利用大資料分析技術預測員工離職?

2019-08-23 02:43:34

優秀的HR都愛關注“行走的帆”

本文為美國肯尼索州立大學劉麗媛(Lilian)在HR成長部落2019年6月23日的線下活動分享文字實錄,希望對大家在資料分析在HR領域的應用有所啟發(文末有福利)

大家好,我叫Lilian,目前在美國Kennesaw State大學攻讀博士學位。我的專業方向是資料分析和機器學習。

/ 1 /

離職預測的意義

首先來看一組資料:2017我國平均的員工離職率在22%左右,對於一些一線的城市北上廣可以達到23%。對於高科技行業,員工離職率更高,達到25%以上。所以,員工離職每個公司面臨的問題。

再看國外資料:這是一家致力於員工評估的美國公司。他們的資料顯示,1/4的員工是屬於高風險人群,而這當中20%的都是高績效員工。所以,如果我們準確預測員工的離職,就可以更好地幫助公司留住高績效員工。

第二組資料顯示:44%的員工表示他們如果能夠在競爭公司中得到20%或者是更低的加薪,他們就會考慮跳槽。

第三組資料顯示:超過70%的離職員工表示,如果他們為了尋求更好的職業發展,也會選擇自願離職。

我們來看看員工的離職到底對公司產生怎樣的損失:首先是公司現金的損失。根據美國勞工部資料顯示,如果一個員工離職,再重新招聘和培訓一個員工取代他的位置,大概要消耗到相當於這名員工1/3年薪的現金。此外,還有其他的損失,比如說替換/選拔成本、時間、人力的損失等。

其次是效率成本。比如說一箇中高階員工選擇了離職,他手裡的專案很有可能一段時間內效率放緩和停止。讓新的員工去取代他的位置,也會造成一段時間專案效率的下降。

還有文化流失成本。如果我們公司當中有越來越多的員工離職,就會讓現有員工心理上產生焦慮,對公司的企業文化來說也是一種流失。此外,還包括智慧財產權的損失,以及離職員工本身所帶客戶資源的損失。

所以,這就是為什麼我們要對員工離職進行預測,因為它會幫助公司減少員工離職成本的消耗。

/ 2 /

資料收集

HR可以做什麼呢?我們可以根據現有的HR資料,對公司員工在職情況進行描述性分析。然後找出為什麼員工會離職?哪些員工是離職的高風險群體。

網上曾經有文章介紹四大常見的離職原因:第一,員工覺得工作負擔過重,生活和工作不能很好地平衡;第二,職業規劃。他們希望尋求更通暢的競爭渠道,會跳槽尋找更好的機會;第三,為了得到更高的薪水而離職;第四,也許會有同事工作上關係的處理不當,導致員工選擇離職。

所以,HR資料分析要做的就是希望可以量化離職原因,找出哪個原因最重要,哪個原因沒那麼重要。

當我們收集HR資料時,首先最重要的第一點就是收集的資料一定是要以每一位員工為單位。建立資料庫的時候也要注意到一點,對於每一位員工都要有唯一的量化指標。比如說員工號碼可以非常快地尋找到員工。然後再根據員工號碼去收集員工的基本資訊,比如說性別、離在職情況、工作狀況、教育程度等。

其他待收集的員工資訊包括薪資、社保、福利、績效、升遷、培訓發展、滿意度等等。我們收集的資訊越多、越準確,那麼之後無論是進行描述型分析,還是預測型分析,都會為我們資料清洗的過程可以節省很多時間。

所以,我建議在資料收集階段儘可能多地收集以下六個方面的資料。

/ 3 /

資料清洗

一個數據分析專案的流程是這樣的:首先是明確目標,其次是資料採集和清洗的工作。在大部分資料工作時間中,資料採集和清洗佔到70%的工作量。因為現實採集中,資料是非常大和混亂的。當我們把資料整合在一起需要花費很長的時間,這也是為什麼之前提到,如果我們能夠收集資料的時候就著眼於後面的分析目的,那後面採集和清洗的時間將大量減少。

第三是描述性分析,主要是根據現有資料然後進行描述性分析。例如描述離職員工和在職員工的平均薪資是怎樣的,這些可以通過對比實現。建模這一環節我們稱之為“預測型分析”

最後,我們還需要將所有結果以視覺化的圖表呈現。無論是呈現給上級,還是分享給同事,資料的視覺化都是非常重要的工具和技能。

對於員工的離職預測,我們的目標是什麼呢?

第一是我們想描述一下各類HR資料與員工離職之間的關係,就是我之前提到的以六個板塊為基礎來分析每個板塊和離職之間的關係。同時,6個板塊互相之間也是有關係的,例如員工前一年的工資提升和員工後一年的績效評估也可以拿出來一起進行比較,然後看看前一年工資增長是否可以導致後一年績效提升。

第二是預測員工的離職風險。我們可以量化每一位員工離職的概率有多大。第三是明確員工離職的原因,這點也是大部分HR想知道的。

這裡要多介紹一下資料的採集和清洗,這些工作是為了資料的描述和建模做準備的。可以每一位員工為單位進行資料的採集。資料清洗主要分為:資料的審查、描述邏輯、邏輯核查和人工核查。有些企業資料比較亂,我們需要人工刪除不合格和重複的變數。

資料清洗包括清洗錯誤值、異常值、缺失值和重新賦值。比如員工年齡,收集時就有錯誤產生,有些員工年齡12歲,有些99歲,那我們可以在這些錯誤錄入的資料全部找出來,然後以員工平均年齡作為替代。

讓人頭疼的一件事是缺失值。很多員工的資料是缺失的,比如員工的培訓資料。最常見的方法是以平均值和中位值去代替缺失值、錯誤值和異常值。

此外還有資料轉換,也就是將資料生成可供計算機分析的語言,比如說員工的教育程度,可能是高中、大專、本科、研究生這樣的文字形式。這種文字在計算機建模時是不容易識別的。此時我們就要進行資料轉化,比如將高中轉化為“1”,大專轉化為“2”,本科轉化為“3”。

最後是資料驗證,需要分析我們的資料是否可以建立正確的模型,以上是資料清洗和採集的基本流程。

/ 4 /

描述性分析

描述型分析可以通過資料視覺化的方法來描述出資料之間的一些關聯。

首先,我們可以通過描述型分析得到資料的頻數分析。比如說每一年公司到底有多少百分比員工離職、離職員工和在職員工的績效是否一樣、他們工資是否一樣,等等。建議通過視覺化資料工具來幫助描述分析。

我們通過一個案例來看看為什麼資料的視覺化非常重要。這是四組不同資料,每一組資料都有X和Y,各組資料的平均數和方差都是相等的。大家可能會覺得這四組資料反映的內容是相同的。

但是,如果我們以資料視覺化去看這四組資料,就可以看到四組資料的差異,所表達的資訊也完全不同的。所以,如果大家做描述型分析,或者是想向上級呈現資料,做資料的視覺化呈現更能反映出資料的特點。

/ 5 /

資料拆分和平衡類別

預測型分析就是建模的分析,我們希望建立機器學習的模型去預測未來可能發生的事情。

我們採集的資料分為兩部分:第一部分是目標變數。在員工預測離職當中,目標變數就是員工離職或在職狀態。通過資料轉換的方式,將員工的離職轉為“1”,在職轉為“0”。其他自變數就是之前提到的6個方面,或者是大家遵循企業自身的特點擴充套件自變數,比如績效、工齡、工作滿意度、晉升、培訓等資料。

建模的目標就是希望找到一個定量的係數,在每一個自變數和目標變數之間建立聯絡。到底績效越高員工越容易離職,還是績效越低員工越容易離職;到底是工齡越長員工更容易離職,還是工齡越短員工更易離職。

當我們的模型建立以後,每個自變數前面都有一個係數,這個係數就可以反映它和員工的離職是正相關還是負相關的關係。

在完成了資料收集、清洗和視覺化分析之後,就到了資料拆分。

為什麼要拆分資料?因為建模是通過採集的資料進行的。當模型建好之後,我們並不能100%確定模型是準確的。這時候我們就會把之前所收集到的資料進行拆分。比如,我們將資料的70%作為訓練模型的資料,再去把係數代到剩下的30%資料當中,得到的結果和原有離職結果進行比較,這樣可以求出一個偏差。偏差就是模型的準確率,這樣可以初步判斷模型是好還是不好。

下一個步驟是平衡類別,這是對於特殊的資料才會應用到的技術。這裡是指員工離職和在職數量不一致的時候,我們會做一個平衡類別。比如公司有一千名員工資料,其中有900名在職員工,100名離職員工。如果我們瞎猜,猜所有的員工都是在職的,那我就猜對了900個,模型的準確率是90%。然而這是沒有任何意義的,因為它沒有準確地去分析出哪些員工離職。

所以,平衡類別是通過一些機器學習的手段,根據現有離職員工的資料,去虛擬地產生一些離職員工資料。雖然這些資料是虛擬的,但它可以反映出離職員工的特點。可以將我們的資料變成離職員工和在職員工1:1或者3:1的比例。通過這樣的比例再去做預測模型,就會比之前準確度要高出很多。

/ 6 /

建模

建模是最簡單的一步,也是耗時最少的一步。

對於現在的機器學習而言,很多的預測性模型,例如決策指數、邏輯迴歸、深度學習等都可以預測未來所可能發生的事情。今天我們主要介紹邏輯迴歸,也就是我們的目標變數只有0和1只有兩個變數。

比如,今天下雨和不下雨、銀行貸款者違約還是不違約,都可以用0和1的表現形式,而邏輯迴歸也是用於0和1問題中一個常見的模型。

這就是邏輯迴歸的輸出方程,P代表員工離職的概率,X1、X2、X3代表輸入的自變數,我們需要找到X的係數,這樣可以求出員工離職的概率。

混淆矩陣是用來檢驗模型質量的,分為真實值和預測值兩部分。真實值就是訓練資料集的目標值,關於一個員工事實是在職還是離職的;預測值是我們輸入係數以後,結果預測這位員工是離職還是在職。

如果一名員工真離職了,預測也是離職,我們就將它最左上方的小方格叫TP;如果員工離職了但我們卻預測在職,就是FN;如果員工在職,我們預測也是在職,就是TN。用TP和TN之和去除以所有的變數,就可以得出模型的準確率。

/ 7 /

案例分析

一家公司一共有14999名員工,員工的離職以“1”代表,“0”代表員工未離職。自變數包括員工對公司的滿意程度、績效評估結果、所參加過的專案數目、平均每個月的工作時長、工作是否發生過差錯、5年內晉升情況、所屬部門以及薪資水平等。資料已經通過清洗轉化成了可識別的數字語言。

用這張描述性分析的圖來反映員工的評估和離在職的情況:藍色區域代表的是員工在職,紅色區域代表的是員工離職。可以看到紅色區域有兩個峰值,說明員工評估過低或過高時都會導致員工離職。

我們選取了三個最重要的變數,包括員工滿意度、績效評估結果和在公司的在職年數,做一個邏輯迴歸的模型。根據模型可以看到員工對工作的滿意度與離職是呈負相關,係數是負3.77。也就是說員工滿意度越高,越不容易離職。

第二個變數是員工的績效評估,係數是0.20,可以看到它和離職是正相關的關係。也就是說員工的評估結果越高,越容易離職。

第三個變數是員工在公司的司齡,也是呈正相關的關係。員工在公司的時間越長越容易離職。

當然以上資料所反映出來的情況不一定對每家公司適用,所以我們要通過每個公司的特定資料去找出特定原因。

假如我們給出了ABC三位員工的案例,他們可以作為未來我們想要分析的新資料。因為已經有這樣的模型了,所以對於新的員工資料,我們可以很快用上面的三個係數去計算出員工的離職概率。以上三個員工通過模型求出的A的離職概率是7%,B是77%,C是33%。

所以,我們可以預測到員工B是高風險離職人群。假如還有更多資料,我們可以測算出企業當中到底哪部分員工是高風險離職人群,公司可以對這部分員工採取一些員工關懷、升職加薪等政策,這樣更好地留住他們。

/ 8 /

總結

大家在做人力資源資料分析時,一定要做到以資料講故事。很多時候如果把數字呈現在別人面前,有可能並不太直觀。用資料的視覺化去講資料內部的聯絡時,效果會比直接呈現數字好很多。

其次是要尋找Actionable Insights。比如,假如我們分析得出男員工比女員工更容易離職,這個發現對公司而言,不太容易採取什麼措施來改變。不能說公司在招聘的時候多招聘女員工,少招聘男員工。更重要的是我們要找到一些公司可以對此採取措施的發現。

比如,我們發現前一年的工資增長不能很好體現下一年績效的增長,那麼我們可能就要調整一下,看是否我們前一年的工資增長存在問題。

還有就是要收集有效資料,一定要儘可能地多收集乾淨資料。我曾經遇到過這樣的情況,有公司它可能有一萬多名員工,但是由於資料收集的缺失,當我們整理多方資料時,發現最後表裡只有兩千多名員工。相當於八千多名員工的資料是丟失的。

所以在資料收集的過程中,如果我們可以整齊地收集每一位員工的資料,那麼對於之後資料分析是有幫助的。

最後分享一下做資料分析的軟體,Weka是基於Java語言的軟體,Orange是根據Python語言的軟體,這兩個軟體非常好而且免費。使用它們不需要任何程式設計,只需通過簡單的拖拽就可以實現分析。

其他的工具包括Excel也是非常廣泛應用於資料分析,還有需要程式設計基礎的Python,大家有興趣都可以去了解。

謝謝大家!  


—— End ——



關於本次線下活動的其他文章:

(點選連結即可閱讀)

1. 記一次有趣、有料、好玩的線下活動

2. HR如何通過資料分析來提升人效?

3. 揭祕谷歌的HR資料分析文化


課程通知:如果大家有興趣瞭解更多關於人力資料分析的內容,歡迎查詢、預約本公眾號開設的HR Analytics線下課程,詳情請見:7月HR Analytics(人力資料分析)課程亮點。


福利彩蛋:分享本篇文章到朋友圈可獲得分享嘉賓Lilian《如何利用大資料分析技術預測員工離職》完整版PPT:)

需要不分組的真誠,保留2小時後再截圖發到公眾號對話方塊即可獲得~




歡迎在下方評論交流

如果覺得這篇文章對你有幫助

歡迎分享幫助更多人



關於我,公眾號【行走的帆】及【HR成長部落】創辦人,美國康奈爾大學人力資源碩士,前世界500強公司人力資源總監,傾心著作:《世界500強人力資源總監管理手記》,暢銷譯作《奈飛文化手冊》。現創業中,為廣大HR的職業成長及企業組織發展貢獻一份力量。

微信搜尋公眾號

行走的帆

長按二維碼關注,從此擁有HR成長錦囊


歡的話,點下「在看」喲

已同步到看一看
在看



熱點新聞