99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁精彩閱讀如何用SPSS和Clementine處理缺失值、離群值、極值
如何用SPSS和Clementine處理缺失值、離群值、極值
2015-06-22
收藏

如何用SPSS和Clementine處理缺失值、離群值、極值


一、什么是預(yù)處理、預(yù)分析?

高質(zhì)量數(shù)據(jù)是數(shù)據(jù)分析的前提和分析結(jié)論可靠性的保障。盡管在獲取數(shù)據(jù)源時(shí)數(shù)據(jù)分析師格外謹(jǐn)慎,耗費(fèi)大量的時(shí)間,但數(shù)據(jù)質(zhì)量仍然需持續(xù)關(guān)注。不管是一手還是二手?jǐn)?shù)據(jù)源,總是會存在一些質(zhì)量問題。同時(shí),為了滿足數(shù)據(jù)分析、挖掘的實(shí)際需要,對噪聲數(shù)據(jù)如何處理,是丟棄還是補(bǔ)充,或者重新計(jì)算新的數(shù)據(jù)變量,這些不是隨意決定的,這就是數(shù)據(jù)預(yù)處理的一個(gè)過程,是在數(shù)據(jù)分析、挖掘開始前對數(shù)據(jù)源的審核和判斷,是數(shù)據(jù)分析必不可少的一項(xiàng)。本文暫只簡單討論一下缺失值、異常值的處理。

二、如何發(fā)現(xiàn)數(shù)據(jù)質(zhì)量問題,例如,如何發(fā)現(xiàn)缺失值?

1、SPSS是如何做到的?
(1)系統(tǒng)缺失值、空白值
每一個(gè)變量均有可能出現(xiàn)系統(tǒng)缺失或者空白,當(dāng)數(shù)據(jù)量巨大時(shí)我們根本無法用眼睛看出是否有缺失,最明智的做法是把這項(xiàng)任務(wù)交給數(shù)據(jù)分析工具,比如Excel,可通過數(shù)據(jù)有效性、篩選、查找、計(jì)數(shù)等功能去實(shí)現(xiàn),如果是SPSS數(shù)據(jù)源,可以通過描述統(tǒng)計(jì)之“頻率”項(xiàng)來實(shí)現(xiàn)。

上圖,五個(gè)變量中,家庭人均收入有效樣本94,有6個(gè)無效樣本,在spss數(shù)據(jù)區(qū)域顯示為空白值。其他變量均沒有缺失,對于這6個(gè)缺失值是留是踢需要謹(jǐn)慎。

(2)變量取值分布
這一項(xiàng)不容忽視,一般由于輸入錯(cuò)誤、數(shù)據(jù)本身或者其他原因造成。這里分分類變量和數(shù)值變量進(jìn)行檢查。
分類變量取值分布檢查:

描述統(tǒng)計(jì)之“頻率”項(xiàng),可以對變量以及變量取值進(jìn)行頻次統(tǒng)計(jì)匯總,因此,此處仍然采用“頻率”項(xiàng)。

上圖,我們已經(jīng)確認(rèn)是否獻(xiàn)血樣本全部有效,但是不代表這個(gè)變量沒有其他噪聲。通過此變量取值分布的考察,我們可以發(fā)現(xiàn)是否獻(xiàn)血有4個(gè)水平,分別為“0”“1”“No”“Yes”,但實(shí)際上,該變量的取值至于兩個(gè)水平,“No”“Yes”,其余兩個(gè)取值是錯(cuò)誤操作導(dǎo)致的,這是系統(tǒng)缺失值,可以通過重新賦值進(jìn)行處理。

數(shù)值變量取值分布檢查:

數(shù)值變量取值分布不宜采用“頻次”的統(tǒng)計(jì),一般可通過直方圖、含有正態(tài)檢驗(yàn)的直方圖來實(shí)現(xiàn)。

上圖,數(shù)值變量的直方圖,可以清楚的看到其分布情況??梢猿醪脚袛啻嬖诋惓V怠?/span>

(3)離群值、極值

在SPSS中可以通過“箱圖”直觀的看到異常值,探索分析項(xiàng)或者箱圖功能可實(shí)現(xiàn)。

上圖,為spss探索分析結(jié)果,還可以設(shè)置分組變量??梢灾庇^的發(fā)現(xiàn),家庭人均收入存在極值,編號為66,可以快速查找定位。

 

2、Clementine是怎么做到的?
Data Audit,數(shù)據(jù)審核節(jié)點(diǎn)示例:以下數(shù)據(jù)流看圖不解釋。

首先,建立以上數(shù)據(jù)流。最后一個(gè)為“數(shù)據(jù)審核”節(jié)點(diǎn),右鍵選擇并打開編輯:

上圖,為clementine變量診斷結(jié)果,非常直觀,圖文并茂,而且一張圖幾乎說明了數(shù)據(jù)源各種質(zhì)量問題。是否無償獻(xiàn)血,取值水平有4個(gè),家庭人均收入最大值有異常,且明確顯示有6個(gè)無效值。其他變量正常。

上圖,是clementine變量診斷結(jié)果中的另外一張圖表,我們可以發(fā)現(xiàn)家庭人均收入有一枚極值,六枚無效值。通過上述診斷,數(shù)據(jù)質(zhì)量問題一目了然。

三、如何處理缺失值、離群值、極值?

1、SPSS實(shí)現(xiàn)方法

上圖,為spss變量轉(zhuǎn)換菜單下的重新編碼為相同變量選項(xiàng)卡。可以輕松實(shí)現(xiàn)變量重新賦值。主要實(shí)現(xiàn)方法:重新編碼為相同/不同變量、計(jì)算變量、缺失值分析模塊,此處略,后續(xù)文章會涉及。

2、Clementine實(shí)現(xiàn)方法

(1)是否無償獻(xiàn)血 重新分類

我們已經(jīng)清楚的知道,是否無償獻(xiàn)血變量在取值分布上存在問題。在clementine,需要用Reclassify節(jié)點(diǎn)進(jìn)行重新分類,在變量診斷的第一種表格上選中是否無償獻(xiàn)血變量,點(diǎn)擊左上角“生成”按鈕,生成一個(gè)Reclassify節(jié)點(diǎn)。打開該節(jié)點(diǎn),如上圖所示,即可完成重新分類。

(2)無效值、空白值的處理

家庭人均收入變量存在6個(gè)無效值,我們建議保留這6個(gè)樣本,希望通過決策樹算法進(jìn)行針對性的預(yù)測,從而為這6個(gè)無效值進(jìn)行賦值。如上圖所示進(jìn)行操作。然后,選中該變量,點(diǎn)擊左上角“生成”按鈕,自動生成一個(gè)缺失值插補(bǔ)超級節(jié)點(diǎn)。

(3)離群值、極值的處理

家庭收入變量還存在一枚極值,對于該極值,我們采取剔除丟棄處理,在clementine變量診斷表格中,如上圖操作,點(diǎn)擊生成按鈕,自動生成一個(gè)離群值和極值超級節(jié)點(diǎn)。

(4)以下為clementine的處理結(jié)果

 我們將自動生成的兩個(gè)超級節(jié)點(diǎn),連接在數(shù)據(jù)流末端,再次進(jìn)行數(shù)據(jù)審核,結(jié)果如上圖所示,此時(shí),我們可以看到,上述幾個(gè)問題已經(jīng)達(dá)到合理地解決。最終我們剔除了一個(gè)極值,對其他質(zhì)量問題采取保守態(tài)度進(jìn)行相應(yīng)的處理。

上圖,為整個(gè)過程的數(shù)據(jù)流圖示。

四、總結(jié)

1、通過SPSS描述統(tǒng)計(jì)的相關(guān)過程,可以實(shí)現(xiàn)數(shù)據(jù)質(zhì)量的探索分析并進(jìn)行相應(yīng)的預(yù)處理。

2、通過Clementine的Type節(jié)點(diǎn)、Filler節(jié)點(diǎn)、Reclassify節(jié)點(diǎn)、Data Audit等節(jié)點(diǎn)可以實(shí)現(xiàn)數(shù)據(jù)質(zhì)量的探索,而且比SPSS更直觀,更快捷。

3、相比而言,clementine在數(shù)據(jù)分析預(yù)處理方面更加優(yōu)秀,結(jié)果可視化程度較高,直觀易懂,而且處理流程簡短精悍,雖然通過spss或者excel也可以完成這些工作,但我想,如果能合理選擇有效駕馭,clementine是一個(gè)不錯(cuò)的選擇,這不是炫耀或者奢侈,更效率更效果的工作才是最終目的。

數(shù)據(jù)分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機(jī)數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進(jìn)行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個(gè)參數(shù)驗(yàn)證碼對象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個(gè)配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗(yàn)服務(wù)器是否宕機(jī) new_captcha: data.new_captcha, // 用于宕機(jī)時(shí)表示是新驗(yàn)證碼的宕機(jī) product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計(jì)時(shí)完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }