用來計算連續變數的發生率,說的很抽象,簡單說就是單獨拿出來沒什麼太大用,但並不是說這個沒什麼用,相反這個太重要了,這玩意能讓你看清世界的真相 先看個圖,像這樣的線性就是正太分佈 這是一個標準的正態分佈 正太分佈有4個特點 呈鐘形分佈,是對稱的 分佈的集中趨勢(均值、中位數、眾數)都一樣 中間最高的部 ...
用來計算連續變數的發生率,說的很抽象,簡單說就是單獨拿出來沒什麼太大用,但並不是說這個沒什麼用,相反這個太重要了,這玩意能讓你看清世界的真相
先看個圖,像這樣的線性就是正太分佈
這是一個標準的正態分佈
正太分佈有4個特點
呈鐘形分佈,是對稱的
分佈的集中趨勢(均值、中位數、眾數)都一樣
中間最高的部分等於1.3倍的標準差
隨機變數分佈區間無限制
模型函數f(X) = (1/2πσ^0.5)*e^(-(1/2)*(((X-μ)/σ)^2)),e是自然常數,已經說過了這次略過,μ是總體均值,可以用函數算出,σ是總體標準差,也可以用函數算出,X則是隨機變數
一個標準正太分佈函數的μ = 0,σ = 1,這個看起來有點扯的事其實還是存在的
標準正態分佈函數f(Z) = (1/2π)*e^(-1/2*Z^2)
這次牛逼了,一次寫兩個函數,來了
# 正態分佈函數 def normal_fun(chance_x, case_list = [0], mean_num = 0, covar_num = 0): e = 2.7182818 pal = 3.1415926 if len_fun(case_list) == 1 and case_list[0] == 0: normal_num = (1 / (covar_num * ((2 * pal) ** 0.5))) * e ** ((0-0.5)*(((chance_x-mean_num)/covar_num) ** 2)) else: mean_num = sum_mean_fun(case_list) covar_num = covar_fun(case_list) normal_num = (1 / (covar_num * ((2 * pal) ** 0.5))) * e ** ((0-0.5)*(((chance_x-mean_num)/covar_num) ** 2)) return normal_num
函數說明:實際需要3個參數,隨機變數、期望值、協方差,因此函數有兩種用法
if __name__ == '__main__': # 第一種用法 case_list = [8,9,10,11,12] normal_rate = normal_fun(3,case_list = case_list) print normal_rate # 第二種用法 normal_rate = normal_fun(3,mean_num = 0,covar_num = 1) print normal_rate
第二種就是圖中的標準正態分佈函數,要求μ = 0,σ = 1,因此省略這兩個傳參
# 標準正太分佈函數 def normal_s_fun(chance_x): e = 2.7182818 pal = 3.1415926 normal_num = (1 / ((2 * pal) ** 0.5)) * e ** ((0-0.5) * (chance_x ** 2)) print normal_num
本來想多寫點什麼的,可是感覺什麼和這個都不搭,就把這個單獨拎出來放這了