開機時顯示的時間排名是如何設計的呢?下面以此為例一起學下r語言與正態分佈。
首先,你可能會覺得它是這樣子實現的:
1、收集所有使用者的開機時間的資料,排好序放在乙個資料庫中;
2、然後根據你的開機時間,找出你的排名,除以總使用者數,就是你擊敗電腦佔比。
data
mean(data[, 1])
sd(data[, 1])
hist(
data[, 1], prob=true,
main="開機時間頻率直方圖",
ylab="頻率", xlab="開機時間(秒)"
從這個圖中,我們可以看到,開機時間貌似符合正態分佈,有戲!對吧,但是我只能用貌似,因為我還沒有檢測資料的正態性,好,我們使用r來檢測一下開機時間是否符合正態分佈。
檢測正態分佈的方法:
繪製qq圖,qq圖判斷法:檢視我們的資料,是否絕大部分落在中間直線的附近。
qqnorm(
data[, 1],
main="qq圖",
可以看到,qq圖中,所有的點都落在了中間的直線上,直觀上我們就可以判斷這個資料的分布符合正態分佈了。
驗證了資料是正態分佈的之後,事情就變得非常簡單了,下面我們來看看如何進行建模。
一、建立正態分佈的模型,只需要求出正態分佈的均值和標準差即可,也就是:
data_mean
data_sd
> data_mean
[1] 50.7848
> data_sd
[1] 11.10776
二、然後儲存這個資料在軟體中,有乙個使用者開機時間為38秒,那麼他的排名是多少呢?
> 1 - pnorm(38, mean=data_mean, sd=data_sd)
[1] 0.8751295
也就是說,我們使用pnorm函式,根據正態分佈的性質,就可以求出這個使用者的排名是87.5%了。 R語言檢測資料正態分佈
輸入注釋 nx c rnorm 10 隨機產生10個正態分佈的資料 nx檢視nx 1 0.83241783 0.29609562 0.06736888 0.02366562 0.23652392 0.97570959 7 0.85301145 1.51769488 0.84866517 0.2069...
R正態分佈 ggplot
randnorm rnorm 3000 rnorm 3000 產生3000個正太分布數 randdensity dnorm randnorm dnorm randnorm 求其密度函式值 ggplot data.frame x randnorm,y randdensity aes x x,y y g...
(R語言)概率分布
8.1 r是乙個統計表集合 略讀 8.2 檢測資料集的分布 函式summary和fivenum這兩個函式可以給出摘要,後者只給出數值 函式stem可以將數值統計結果以類似直方圖的方式顯示出來 函式hist 可以繪製直方圖 函式density和line可以獲得更漂亮的密度圖 功能包fun中的ecdf函...