什么影响了你的工资?方差分析告诉你
看到這個標題,你可能會想影響工資的因素太多了。學歷、工作經驗、能力、人脈、機會、行業、地域,等等,都會影響工資,怎么確定每個因素影響了多少工資呢?別急,我們一個一個來分析。
方差分析就是研究類別型自變量和連續型因變量之間關系的一種統計分析方法。方差分析是不是特別適合解決我們剛才提到的問題?
工資是近似的連續型因變量(說近似,是因為雖然工資可以為任意實數,但現實中我們基本以整數為單位,扣完保險和公積金后是小數),學歷、行業、地域等是類別型自變量。
我們先假設所有工資差異都是由一個因素引起的。你可能認為這樣做和我們一開始討論的多因素影響工資的情況矛盾,但根據大數定律和中心極限定理,在樣本足夠大的情況下,除我們分類標準以外因素的影響都可以變得微乎其微,因變量的值會依概率收斂于數學期望,即我們常用的算數平均值。所以下面我們可以大膽地分析職業這一單獨因素對工資的影響了。
職業對工資的影響——單因素方差分析
俗話說:女怕嫁錯郎,男怕入錯行。我們先看看職業對工資的影響有多大?
將工作目錄設置為目標文件所在目錄:”C:/DataAnalysis”(根據需要自行設定)
讀取文件(salary_profession.csv)
salary_profession.csv中有什么數據呢?我們用summary()函數展示一下。
上述步驟的R語言代碼和結果如下:
我們可以看到salary_profession.csv文件中含有序號X列、salary列和profession列,其中每個profession類型都有20條記錄,共有60條記錄。
注:根據大數定律,當樣本量>=2000時才算足夠大的樣本量,此處受數據獲取所限,每個職業對應的工資只有20個樣本。
boxplot(因變量~自變量,x軸標簽,y軸標簽,標題)
注:$表示對數據框中向量的引用。
結果如下圖所示,可以看到不同職業的平均工資是有差異的。
我們從箱線圖中判斷三個不同職業的工資是有差異的,但是真的有本質性差異嗎?或者說在統計學上的差異性顯著嗎?我們用單因素方差分析的方法來分析差異的顯著性。
oneway.test(因變量~自變量)
注:F值=組間方差/組內方差。
p-value=5.086*e^(-8)<0.001,說明即使在0.001的顯著性水平上,三個職業間的平均工資也是有差異的。
在R語言中,除了oneway.test()函數可以進行單因素方差分析外,aov()函數也可以進行單因素方差分析。
二者的區別在于:oneway.test()函數可以使用Welch修正解決方差的非其次性,即不需要假設樣本的方差齊性;但oneway.test()函數不能提供足夠多的信息來輔助決策,也不能提供post-hoc檢驗。而aov()函數恰恰彌補了oneway.test()函數的缺陷。
下面我們用aov()函數分析職業對工資的影響。
aov(因變量~自變量)
p-value=1.26*e^(-7),說明三個不同職業的平均工資是有顯著性差異的。
三個職業的平均工資分別是多少呢?我們用model.tables()給出擬合模型salary.aov的匯總信息。
從上面結果中可以看出,三個不同職業的平均工資不同。
三個不同職業的工資兩兩之間的差異在什么地方呢?我們用TukeyHSD()函數對擬合模型進行檢驗。
從結果中可以看出Data Scientist和BI Engineer的工資的方差差異(21795.25)是最大的,也就是說這兩個職業間的工資差異較大。
注:本文中所使用的例子來自邱祐瑋所著的《數據科學:R語言實現》。
若需要獲取csv原文件,請關注“數學算法的世界”,并回復salary_profession獲取。
數學算法的世界
數據分析|Python
R|SQL|Excel|科普
總結
以上是生活随笔為你收集整理的什么影响了你的工资?方差分析告诉你的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 前端面试题--react与vue的区别
- 下一篇: 2017湖北技能高考计算机分数线,[20