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

熱線電話:13121318867

登錄
首頁(yè)精彩閱讀使用R進(jìn)行統(tǒng)計(jì)分析--概率計(jì)算
使用R進(jìn)行統(tǒng)計(jì)分析--概率計(jì)算
2017-02-24
收藏

使用R進(jìn)行統(tǒng)計(jì)分析--概率計(jì)算

R語(yǔ)言中提供了很多概率函數(shù),可以方便的計(jì)算事件發(fā)生的概率。如二項(xiàng)分布概率函數(shù)和泊松分布概率函數(shù)。本篇文章介紹如果使用R語(yǔ)言中的這些函數(shù)求解事件發(fā)生的概率。

概率函數(shù)和前綴

R語(yǔ)言中每個(gè)概率分布都有對(duì)應(yīng)的函數(shù)名稱,例如二項(xiàng)分布是binmo,泊松分布是pois,正態(tài)分布是norm等等。每個(gè)函數(shù)都分別有四個(gè)不同的前綴,加上前綴可以生成隨機(jī)數(shù),求解概率和臨界值等等。下面是四個(gè)前綴對(duì)應(yīng)功能的說(shuō)明。

r = random = 隨機(jī)

d= density = 密度

p= probability = 概率

q =quantile = 分位

二項(xiàng)分布概率

假設(shè)網(wǎng)站的Landingpage頁(yè)面中共有20個(gè)入口,那么我們預(yù)估每個(gè)入口被點(diǎn)擊的概率為1/20,即P=0.05。(實(shí)際情況會(huì)復(fù)雜一些,每個(gè)入口在頁(yè)面中的位置和展現(xiàn)的形式都 會(huì)不一樣,一般首屏的入口比后面的入口會(huì)獲得更多點(diǎn)擊,圖片和按鈕形式的入口比文字類的入口更容易受到關(guān)注,導(dǎo)航和焦點(diǎn)圖和Action按鈕比其他類型的入口更容易 被點(diǎn)擊。如有要獲得最真實(shí)的點(diǎn)擊概率,需要參考這個(gè)頁(yè)面中每個(gè)入口的歷史點(diǎn)擊概率數(shù)據(jù),這里我們只是假設(shè)一種理想情況來(lái)說(shuō)明計(jì)算過(guò)程。)那么在10000次點(diǎn)擊中, 關(guān)鍵按鈕獲得550次的概率是多少?

先來(lái)簡(jiǎn)單介紹下R語(yǔ)言中的二項(xiàng)分布函數(shù)和其中參數(shù)的含義,二項(xiàng)分布函數(shù)為binom,前綴d表示求密度,前綴p表示求累計(jì)概率。參數(shù)中X表示實(shí)驗(yàn)的成功次數(shù),size表示實(shí)驗(yàn)次數(shù),prob表示概率值。在這個(gè)例子中成功次數(shù)是550,實(shí)驗(yàn)次數(shù)是10000,概率為0.05。

#點(diǎn)擊率0.05的情況下10000次點(diǎn)擊中關(guān)鍵按鈕恰好被點(diǎn)擊550次的概率
> dbinom(x = 550,size = 10000,prob = 0.05)

[1] 0.001362855

經(jīng)過(guò)計(jì)算10000次點(diǎn)擊中關(guān)鍵按鈕恰好被點(diǎn)擊550次的概率為0.0013,這只是550次這個(gè)事件發(fā)生的概率值,并不包含549次點(diǎn)擊和551次點(diǎn)擊。但實(shí)際情況中恰好獲得550并不是我們實(shí)際的目標(biāo)。因此我們換一種計(jì)算方法再來(lái)看下。

#點(diǎn)擊率0.05的情況下10000次點(diǎn)擊中關(guān)鍵按鈕被點(diǎn)擊1-550次的概率
> sum(dbinom(x = 1:550,size = 10000,prob = 0.05))

[1] 0.9889429

在成功次數(shù)X中從之前的550變成了1:550,然后進(jìn)行sum求和。獲得從1點(diǎn)點(diǎn)擊到550次點(diǎn)擊的累計(jì)概率。從結(jié)果中可以看到概率高達(dá)0.98。這能說(shuō)明10000次點(diǎn)擊中關(guān)鍵按鈕獲得550次點(diǎn)擊的概率非常高嗎?我們能信心滿滿的說(shuō)獲得550次點(diǎn)擊是個(gè)高概率事件嗎?恐怕還不行。因?yàn)檫@是一個(gè)累計(jì)概率值,是從1次到550次的匯總。但我們的目標(biāo)是獲得550次或更多的點(diǎn)擊,那么550次以下的點(diǎn)擊量概率其實(shí)是我們不需要的。因此實(shí)際的概率值沒(méi)有這么高。

> pbinom(q = 550,size = 10000,prob = 0.05)

[1] 0.9889429

計(jì)算積累概率值還有一個(gè)更簡(jiǎn)單的方法就是在二項(xiàng)分布概率函數(shù)的前面加前綴p,就可以自動(dòng)獲得550次點(diǎn)擊的累計(jì)概率值了。結(jié)果與前面的方法一致。

#點(diǎn)擊率0.05的情況下10000次點(diǎn)擊中關(guān)鍵按鈕獲得500次到550次區(qū)間的點(diǎn)擊的概率
> sum(dbinom(x = 500:550,size = 10000,prob = 0.05))

[1] 0.4953496

前面兩種方法獲得的概率值一個(gè)太低,一個(gè)太高。還有一種方法是只計(jì)算某個(gè)區(qū)間的概率值,這里我們將獲得點(diǎn)擊的次數(shù)限定在500次——550次之間,來(lái)求這一區(qū)間的概率值。從結(jié)果來(lái)看10000次點(diǎn)擊中關(guān)鍵按鈕獲得500次——550次點(diǎn)擊的概率為0.49。

#點(diǎn)擊率0.05的情況下10000次點(diǎn)擊中關(guān)鍵按鈕分別獲得500次到550次點(diǎn)擊的概率
> dbinom(x = 500:550,size = 10000,prob = 0.05)

[1] 0.018301669 0.018265138 0.018190454 0.018078155 0.017929014 0.017744025 0.017524393 0.017271524 0.016987006 0.016672594 0.016330195

[12] 0.015961845 0.015569690 0.015155968 0.014722985 0.014273095 0.013808680 0.013332131 0.012845824 0.012352105 0.011853270 0.011351550

[23] 0.010849097 0.010347966 0.009850108 0.009357356 0.008871418 0.008393869 0.007926149 0.007469553 0.007025237 0.006594211 0.006177343

[34] 0.005775361 0.005388857 0.005018291 0.004663995 0.004326183 0.004004957 0.003700313 0.003412150 0.003140280 0.002884435 0.002644275

[45] 0.002419399 0.002209352 0.002013632 0.001831702 0.001662993 0.001506913 0.001362855

以上是點(diǎn)擊量500次——到550次分解的概率值,0.49的概率值由以上的各個(gè)概率匯總而來(lái)。

#點(diǎn)擊率0.05的情況下10000次點(diǎn)擊中關(guān)鍵按鈕獲得550次以上點(diǎn)擊的概率
> sum(dbinom(x = 551:10000,size = 10000,prob = 0.05))

[1] 0.01105708

再來(lái)看最開(kāi)始的問(wèn)題,10000次點(diǎn)擊中關(guān)鍵按鈕獲得550次點(diǎn)擊的概率。550次以下的點(diǎn)擊不是我們希望的結(jié)果,因此我們?cè)賮?lái)看下點(diǎn)擊量超過(guò)550次的概率有多少。從結(jié)果 來(lái)看獲得點(diǎn)擊量在551次——10000次的概率僅為0.011,因此獲得超過(guò)550次以上的點(diǎn)擊的概率比較低。

#點(diǎn)擊率0.05的情況下10000次點(diǎn)擊中關(guān)鍵按鈕獲得550次以上點(diǎn)擊的概率
> 1-pbinom(q = 550,size = 10000,prob = 0.05)

[1] 0.01105708

由于從0到10000次點(diǎn)擊的所有概率為1,因此用1減550次以下的概率值也能獲得相同的結(jié)果。

泊松分布概率

假設(shè)在一次市場(chǎng)活動(dòng)中,上一個(gè)小時(shí)中有40個(gè)用戶注冊(cè),那么下一個(gè)小時(shí)有50個(gè)用戶注冊(cè)的概率是多少?

這里需要使用泊松分布概率函數(shù),泊松分布函數(shù)是pois,第一個(gè)參數(shù)x是下一個(gè)時(shí)間段事件發(fā)生的次數(shù),lambda是上一個(gè)時(shí)間段事件發(fā)生的次數(shù)。在這個(gè)例子中x=50, lambda=40。

#上一小時(shí)產(chǎn)生40個(gè)注冊(cè)用戶,下一小時(shí)產(chǎn)生恰好50個(gè)注冊(cè)用戶的概率
> dpois(x = 50,lambda = 40)

[1] 0.01770702

經(jīng)過(guò)計(jì)算,下一個(gè)小時(shí)恰好有50個(gè)注冊(cè)用戶的概率為0.017。與二項(xiàng)分布中的問(wèn)題一樣,0.017是恰好50個(gè)用戶的概率。不是49個(gè)用戶也不是51個(gè)用戶的概率。

#上一小時(shí)產(chǎn)生40個(gè)注冊(cè)用戶,下一小時(shí)產(chǎn)生1-50個(gè)注冊(cè)用戶的概率
> sum(dpois(x = 1:50,lambda = 40))

[1] 0.947372

把下一小時(shí)注冊(cè)用戶的數(shù)量改為1:50,并進(jìn)行求和,獲得了下一個(gè)小時(shí)獲得1-50個(gè)注冊(cè)用戶的累計(jì)概率值。這個(gè)值有0.94。但我們的目標(biāo)是50個(gè)注冊(cè)用戶,雖然概率很高 但低于50的事件發(fā)生并不是我們的目標(biāo)。

> ppois(q = 50,lambda = 40)

[1] 0.947372

這是另一種計(jì)算方法,把泊松分布函數(shù)的前綴換為p,計(jì)算50個(gè)注冊(cè)用戶的累計(jì)概率值,結(jié)果與前面的方法一致。

#上一小時(shí)產(chǎn)生40個(gè)注冊(cè)用戶,下一小時(shí)產(chǎn)生40-50個(gè)注冊(cè)用戶區(qū)間的概率
> sum(dpois(x = 40:50,lambda = 40))

[1] 0.4684008

前一小時(shí)40個(gè)注冊(cè)用戶,后一個(gè)小時(shí)目標(biāo)50個(gè)注冊(cè)用戶,我們來(lái)看下下一個(gè)小時(shí)注冊(cè)用戶是40-50這個(gè)區(qū)間的概率是多少。經(jīng)過(guò)計(jì)算這個(gè)區(qū)間發(fā)生的概率為0.46。

#上一小時(shí)產(chǎn)生40個(gè)注冊(cè)用戶,下一小時(shí)分別產(chǎn)生40-50個(gè)注冊(cè)用戶的概率
> dpois(x = 40:50,lambda = 40)

[1] 0.06294704 0.06141175 0.05848738 0.05440686 0.04946078 0.04396514 0.03823056 0.03253664 0.02711387 0.02213377 0.01770702

這里顯示了40-50個(gè)注冊(cè)用戶分別的發(fā)生概率,0.46的概率值由以上各個(gè)概率值匯總計(jì)算獲得。

#上一小時(shí)產(chǎn)生40個(gè)注冊(cè)用戶,下一小時(shí)產(chǎn)生50個(gè)注冊(cè)用戶以上的概率
> 1-ppois(q = 50,lambda = 40)

[1] 0.05262805

最后再來(lái)看下下一個(gè)小時(shí)注冊(cè)用戶數(shù)量超過(guò)50的概率。用1減去50個(gè)用戶的累計(jì)概率值就是超過(guò)50個(gè)注冊(cè)用戶發(fā)生的概率,計(jì)算結(jié)果是0.052,因此下一個(gè)小時(shí)獲得超過(guò)50個(gè)注冊(cè)用戶的概率不高。數(shù)據(jù)分析師培訓(xùn)


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

若不方便掃碼,搜微信號(hào):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)證碼對(duì)象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個(gè)配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺(tái)檢測(cè)極驗(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ù)說(shuō)明請(qǐng)參見(jiàn):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 = '請(qǐng)輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請(qǐng)輸入正確的'+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); }