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

熱線電話:13121318867

登錄
首頁精彩閱讀手把手教你使用R語言的主成分分析對城管事件數(shù)據(jù)分析
手把手教你使用R語言的主成分分析對城管事件數(shù)據(jù)分析
2016-10-16
收藏

手把手教你使用R語言的主成分分析對城管事件數(shù)據(jù)分析

概念性的東西就不說那么多了,這次使用主成分分析主要目的并不是降維,而是分析城管數(shù)據(jù)中的事件類別之間是否存在關(guān)系,當(dāng)然,城管事件類型有好幾百,這里就只選取從去年九月到目前發(fā)生量前十的事件類別;如下圖,排名前十的事件類別依次為,車輛亂停放,亂堆物料堆,非法張貼小廣告,店鋪出店經(jīng)營,自備容器外放,違規(guī)標(biāo)語宣傳品,機(jī)動(dòng)車亂停放,暴露垃圾,地面不潔,道路不潔。

確定好這十個(gè)類別后就是數(shù)據(jù)的提取了,這時(shí)候我們要注意一下數(shù)據(jù)結(jié)構(gòu),和數(shù)據(jù)樣本量,為什么呢?因?yàn)樵谥鞒煞址治龅臅r(shí)候事件類別只能是屬性,也就是說事件類別是一列;這時(shí)候看看一下城管數(shù)據(jù)里面存在的數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)記錄數(shù)必須是屬性的6~10倍,這時(shí)候觀察城管數(shù)據(jù)結(jié)構(gòu),明顯不是我們想要的,

于是寫個(gè)SQL轉(zhuǎn)換一下數(shù)據(jù)結(jié)構(gòu),起的別名沒有按照規(guī)則來,這是個(gè)失誤;

這時(shí)候就要使用R語言去做分析了,首先是讓我們能從數(shù)據(jù)庫里拿數(shù)據(jù),所以創(chuàng)建一個(gè)數(shù)據(jù)庫鏈接,安裝包RODBC

R語言代碼

install.packages("RODBC")

library(RODBC)

jixiao_connect <- odbcConnect("jixiao",uid="jixiao",pwd = "*****",believeNRows=FALSE)

這時(shí)候我們就創(chuàng)建了一個(gè)數(shù)據(jù)庫連接jixiao_connect,這時(shí)候我們就要提取數(shù)據(jù)

R語言代碼

jixiao_data <- sqlQuery(jixiao_connect,"

select

sum(case when t.kind_code_thd='車輛亂停放' then 1 else 0 end) kind_one

,sum(case when t.kind_code_thd='亂堆物堆料' then 1 else 0 end) kind_two

,sum(case when t.kind_code_thd='非法張貼小廣告' then 1 else 0 end) kind_three

,sum(case when t.kind_code_thd='店鋪出店經(jīng)營' then 1 else 0 end) kind_code_4

,sum(case when t.kind_code_thd='自備容器外放' then 1 else 0 end) kind_code_5

,sum(case when t.kind_code_thd='違規(guī)標(biāo)語宣傳品' then 1 else 0 end) kind_code_6

,sum(case when t.kind_code_thd='機(jī)動(dòng)車亂停放' then 1 else 0 end) kind_code_7

,sum(case when t.kind_code_thd='地面不潔' then 1 else 0 end) kind_code_8

,sum(case when t.kind_code_thd='暴露垃圾' then 1 else 0 end) kind_code_9

,sum(case when t.kind_code_thd='無照經(jīng)營游商' then 1 else 0 end) kind_code_10

from test_erkang t

where t.district_name in ('美蘭區(qū)','龍華區(qū)','秀英區(qū)','瓊山區(qū)')

GROUP BY T.DISTRICT_NAME,TO_CHAR(T.REVIEW_FIRST_DATE,'YYYYMM')")

jixiao_data

驗(yàn)證數(shù)據(jù)是否被提取,說明數(shù)據(jù)已經(jīng)提取成功

我們在安裝主成分需要用的包

R代碼

install.packages("psych")

library(psych)

首先我們要做的是需要確定主成分需要幾個(gè),這時(shí)候我們就需要cattell碎石檢驗(yàn)來確定主成分個(gè)數(shù),也就是保留特征值大于1的主成分,因?yàn)?a href='/map/tezheng/' style='color:#000;font-size:inherit;'>特征值大于1的主成分能解釋較多的方差;

R代碼

fa.parallel(jixiao_date,fa='pc',n.iter = 100,show.legend=FALSE)

上圖中我們應(yīng)該選取3個(gè)主成分

R代碼

pc <- principal(jixiao_date,nfactors=3,rotate = 'varimax')

pc

后面那個(gè)是我們選擇的主成分旋轉(zhuǎn)的方法,為了主成分之間能更容易的解釋,結(jié)果如下

PC1列下的系數(shù)是和各個(gè)事件類別的相關(guān)系數(shù),h2列表示成分能夠解釋方差的多少,u2列表示沒法解釋解釋方差的比例,事件KIND_ONE也就是車輛亂停放,主要相關(guān)聯(lián)的是主成分PC1,相關(guān)系數(shù)為0.97,PC2和PC3的相關(guān)系數(shù)分別為0.05,0.07,主成分能夠解釋車輛亂停放95%的方差,無法被解釋的比例為0.055;proportion var 表示解釋整個(gè)數(shù)據(jù)集的解釋程度,PC2解釋變量30%方差,PC1解釋變量26%方差,PC3解釋變量21%方差,主成分能夠解釋整個(gè)變量77%的方差;

對主成分進(jìn)行可視化

R代碼

fa.diagram(pc)

又上圖我們可以知道主成分組成,大致歸類為

PC1:無照經(jīng)營游商,暴露垃圾,車輛亂停放

PC2:亂堆物堆料,非法張貼小廣告,自備容器外放,機(jī)動(dòng)車亂停放,地面不潔

PC3:店鋪出店經(jīng)營,違規(guī)標(biāo)語宣傳品;

根據(jù)業(yè)務(wù)和個(gè)人的推測

我推測PC1所表示的繁華的步行街道成分,PC2表示的是城中村成分,PC3表示的是主干道成分。

建議和小結(jié)

1、可以認(rèn)為亂堆物堆料,非法張貼小廣告,自備容器外放,機(jī)動(dòng)車亂停放和地面不潔是一類相關(guān)聯(lián)事件類別,無照經(jīng)營游商,暴露垃圾和車輛亂停放是一類相關(guān)聯(lián)事件類別,店鋪出店經(jīng)營,違規(guī)標(biāo)語宣傳品可以認(rèn)為是一類相關(guān)聯(lián)的一類事件類型

2、可以認(rèn)定主要事件來源是來自城中村,主干道,和步行街道;

3、步行街道給的相應(yīng)的措施可以增加相應(yīng)的非機(jī)動(dòng)的停車位,劃分小販經(jīng)營點(diǎn),增加環(huán)衛(wèi)人員的清掃頻率

4、城中村:提高相應(yīng)的停車規(guī)劃,集中整治城中村環(huán)境衛(wèi)生

5:、主干道:相應(yīng)的增加巡查員的巡查頻率即可

數(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); }