“要多少是多???”“要什么自行車!”
文 |?英賢社
圖 |?英賢社
對他人隱私窺探的好奇心是第一生產(chǎn)力。最近一部名為《私生活》的韓劇十分火熱,劇中各方勢力通過科技的運(yùn)用獲取大眾的隱私從而實(shí)現(xiàn)各自的政治訴求。本劇的具體內(nèi)容就不在此劇透了,有興趣的可以自行移步觀影。上周末刷完這部劇之后,忘了是什么契機(jī)聊起了美國不同行業(yè)的從業(yè)者到底能賺多少錢。于是好奇心大增,開啟了一個窺探隱私的數(shù)據(jù)項(xiàng)目。
在美國工作的外國人都要辦理工作簽證,而勞工部會公開披露這些崗位的相關(guān)信息,包括公司名稱,職位名稱,薪水區(qū)間等一系列信息。除此之外,常駐美國的外國工作人員到一定時間雇主通常都會為雇員辦理永久居留,就是俗稱的綠卡。這一過程非常復(fù)雜繁瑣,其中的一環(huán)是需要向勞工部提交雇員的詳細(xì)信息,包括雇員的畢業(yè)學(xué)校,畢業(yè)年份,所學(xué)專業(yè)以及國籍等。雖然雇員的名字等隱私信息沒有披露,但如果用心,其實(shí)基本上可以用所提供的信息準(zhǔn)確地鎖定到某個申請究竟是誰。這樣,也就知道了這個人在提交綠卡申請時的收入是多少了。
整體的項(xiàng)目流程大致構(gòu)想如下:首先從勞工部官網(wǎng)獲取數(shù)據(jù),然后進(jìn)行基本的數(shù)據(jù)清理,然后將數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫,之后就可以用數(shù)據(jù)結(jié)構(gòu)化查詢語言——也就是SQL——來進(jìn)行數(shù)據(jù)調(diào)取和分析了。
有了大致的思路,第一步就是著手獲取數(shù)據(jù)。曾幾何時勞工部會提供一個專門的網(wǎng)頁提供以上信息的檢索,但是搜索速度很慢并且搜索結(jié)果也不盡人意。而現(xiàn)在勞工部將外國工作人員相關(guān)的數(shù)據(jù)統(tǒng)一展示在數(shù)據(jù)官網(wǎng)上,但問題在于數(shù)據(jù)是以Excel表格的格式按照勞工部財(cái)年每年一份文件列示。而對于工作簽證信息來說,每一個Excel表格都有近70萬的數(shù)據(jù)量和100多個維度,這讓直接在Excel表格中處理數(shù)據(jù)變得艱難——僅僅是打開表格就要好久。于是我決定用R來讀取Excel數(shù)據(jù)然后在RStudio中進(jìn)行數(shù)據(jù)處理和整合。
勞工部的文件歷史可以追溯到2008年。我原本的思路是,直接用一個循環(huán)將所有的13個文件讀取,然后直接一次性上傳到數(shù)據(jù)庫。但是我發(fā)現(xiàn)我想的簡單了,政府?dāng)?shù)據(jù)的質(zhì)量簡直不堪入目。首先,每一年的文件維度不同。以PERM數(shù)據(jù)(綠卡)為例,08-09年采用相同格式,之后10-14年維度數(shù)量相同,然后15-19年文件維度數(shù)量相同,2020年的格式又有了變化。這就導(dǎo)致數(shù)據(jù)的處理需要分段完成,分別導(dǎo)入數(shù)據(jù)庫。本來以為按照文件維度數(shù)量不同,讀取4次應(yīng)該可以完成整合,誰知代碼不停報(bào)錯。仔細(xì)一看發(fā)現(xiàn)雖然在同組年份中數(shù)據(jù)的維度相同,但是維度的排序和名稱居然雜亂無章。另外維度數(shù)據(jù)類別也存在差異,比如郵政編碼有的是5位的數(shù)字格式,有的由于期間有“-”分隔符間隔,于是整列變成了文本格式。這又給數(shù)據(jù)的清理帶來了不必要的麻煩。我用了周末一整個下午試圖將同組年份的數(shù)據(jù)整合在一起。后來突然想到,其實(shí)數(shù)據(jù)整合這一步并不需要在數(shù)據(jù)讀取這一步完成。更好的方式是將每一年的數(shù)據(jù)分別上傳到數(shù)據(jù)庫,然后在數(shù)據(jù)庫中創(chuàng)建一個“view”將所有數(shù)據(jù)表連接在一起,這樣效率更高并且大大降低了數(shù)據(jù)清理的難度。
做正確的事,比正確地做事要重要的多。
有了這個新思路,數(shù)據(jù)的處理變得快起來。這告訴我們做正確的事,比正確地做事要重要的多。所以,價值觀永遠(yuǎn)優(yōu)先于方法論。在從Excel導(dǎo)入R的過程中,日期的數(shù)據(jù)類型從“YYYY-MM-DD”格式變成了五位數(shù)的數(shù)字格式,于是在R中需要用正則表達(dá)將所有帶有“date”的維度都強(qiáng)制轉(zhuǎn)化為日期格式。從Excel轉(zhuǎn)換為R的日期格式,起始點(diǎn)需要設(shè)置為“1899-12-30”;或者用更簡單的方式,直接調(diào)用“convertToDate”就好。另外需要處理的是工資收入的格式問題。有的年份有工資收入?yún)^(qū)間的兩個變量——最小值和最大值。但有的年份的工資收入一欄是用間隔符隔斷的兩個數(shù)字“from-to”,這樣本來是數(shù)字格式的變量就變成了文本格式。所以繼續(xù)在R中用以“-”分隔符為模式將收入一欄分開為兩列,這樣就將文本格式對齊。
進(jìn)行了以上一系列的數(shù)據(jù)處理之后,最后一步就是將這些數(shù)據(jù)從R上傳到數(shù)據(jù)庫中,之后數(shù)據(jù)庫就搭建完畢。每一個年份在“visa schema”中都有一個表格與之對應(yīng)。之后為了可以在數(shù)據(jù)庫中查詢?nèi)繑?shù)據(jù),我分別為PERM與H-1B創(chuàng)建了兩個“view”,選出最有價值的變量,用“union”將全部數(shù)據(jù)整合在一起。之后,所有的數(shù)據(jù)讀取和分析都可以直接查詢最終的“view”而不需要記得每一個年份數(shù)據(jù)的維度描述與名稱了。
數(shù)據(jù)庫我用的是PostgreSQL,原因很簡單——免費(fèi)并且輕便。但是我沒有用pgAdmin,而是選擇了Oracle的SQL Developer。SQL Developer依然是免費(fèi)的,并且可以對接PostgreSQL。SQL Developer很多的快捷鍵都已經(jīng)很熟悉了,所以用起來更加方便。搞定了數(shù)據(jù)庫之后,就可以開始窺探隱私了。
首先我們來看一下不同年份畢業(yè)的群體,在他們辦理PERM的時候的平均工資都是多少。我選取了波士頓,山景城和紐約來進(jìn)行對比。從結(jié)果可以大致看出通脹的趨勢,畢業(yè)年份越是臨近現(xiàn)在,平均工資越高。而山景城的碼農(nóng)們賺的比紐約的金融白領(lǐng)們多,而紐約的金融白領(lǐng)們比波士頓的金融民工們賺的多。真的是人比人氣死人。
另外,通過對H-1B與PERM的數(shù)據(jù)對比可以看出,PERM的平均工資比H-1B要高。這其實(shí)符合直覺,H-1B很多都是入門級的職位,收入比較低,因此拉低了平均值,而PERM都是工作了一段時間的雇員,他們在職場混的年頭更久,平均來說收入更高。
而對于公司來說,在高盛做一個VP收入有40萬美元,而在麥肯錫做一個見習(xí)合伙人的收入只有23萬美元左右。真的是男怕入錯行,女怕嫁錯郎。另外對于基金公司的基金經(jīng)理們,比如Fidelity,Blackrock和Vanguard,大致上的工資收入都在22萬左右。這些工資收入都只是基本工資,績效獎金和股份期權(quán)收入并不算在內(nèi)。
另外再看各個職業(yè)構(gòu)成的時候,發(fā)現(xiàn)紐約居然有一個Butcher,你說這不扯呢么。知道你會好奇,告訴你,這個屠夫的年收入為三萬八千塊美元。
紐約有一個Butcher?這不扯呢么!
妻看到這個數(shù)據(jù)庫后很感興趣,提議和我賭誰猜工資猜的準(zhǔn)。于是我們隨機(jī)調(diào)取了麥肯錫咨詢公司的9個職位,我們各自給出對于崗位收入的猜測?!癿”和“f”這兩列分別是我與妻給出的猜測,而“wage”這一欄是真實(shí)的薪資。妻和我都大大低估了設(shè)計(jì)師的收入,在此對設(shè)計(jì)師的不敬表示歉意。
最后一塊的分析是看你的收入在整體人群中所處的位置,在此用的是H-1B數(shù)據(jù),年份是2020年,城市選為紐約。數(shù)據(jù)表明,在2020年找到第一份工作或是換了工作的外國人一共有25781人,如果你的收入是15萬美元,那么你的收入戰(zhàn)勝了69%的對手。而如果同樣的收入在波士頓,你就能戰(zhàn)勝82%的對手。紐約的收入水平還是比波士頓要高的多啊。
獨(dú)樂樂不如眾樂樂。
這個星期所有的業(yè)余時間都給了這個小小的項(xiàng)目。后續(xù)還會繼續(xù)跟蹤勞工部發(fā)布的數(shù)據(jù)來完善數(shù)據(jù)庫,如果大家感興趣,下一步我會做一個R Shiny將數(shù)據(jù)庫發(fā)布到網(wǎng)上供大家自由檢索,畢竟獨(dú)樂樂不如眾樂樂。你還想了解哪些收入相關(guān)的數(shù)據(jù)呢?請?jiān)谖恼履┪擦粞耘叮瑲g迎大家互扒隱私。
——END——
英賢社:世界如此荒涼,只能培養(yǎng)一顆寂寞的心。