日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python列表求平均值_python与统计概率思维

發布時間:2024/4/19 python 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python列表求平均值_python与统计概率思维 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文章將分享統計學中的 概率分布、抽樣分布。

一、概率分布

  • 隨機變量

1.什么是隨機變量?
將隨機事件出現的一個結果映射到一個數值的含義,通過數值量化隨機事件,這就是隨機變量的作用。(隨機變量是量化隨機事件的一個函數)2.隨機變量的分類?
離散隨機變量:結果可列舉出個數,例如明天是否下雨
連續隨機變量:變量里面有無限的結果,例如明天的下雨量

  • 概率分布

1.什么是概率分布?
隨機變量所有可能的結果,及對應結果發生的概率,比如下圖是拋硬幣的概率分布:

2.隨機變量與概率分布的關系圖

2.1 離散概率分布

2.1.1伯努利分布

伯努利試驗是在相互獨立的條件下隨機的實驗,結果只有兩種:成功/不成功,例如拋硬幣實驗。如果這個隨機變量是伯努利實驗,那么它就服從伯努利分布。

1)定義隨機變量X

2)概率質量函數(PMF):計算結果概率

3)python實現

先安裝scipy包,安裝步驟:

1)在conda中先進入python環境:activate py3
2)在conda中運行以下命令:conda install scipy
如果還沒有安裝numpy包和matplotlib包,也按上述命令安裝這些包

然后使用Bernoulli distribution

#導入包 #數組包 import numpy as np #繪圖包 import matplotlib.pyplot as plt #統計計算包的統計模塊 from scipy import stats ''' 第1步,定義隨機變量:1次拋硬幣 成功指正面朝上記錄為1,失敗指反面朝上記錄為0 ''' X = np.arange(0, 2,1) X#第2步,#求對應分布的概率:概率質量函數 (PMF) #它返回一個列表,列表中每個元素表示隨機變量中對應值的概率 p = 0.5 # 硬幣朝上的概率 pList = stats.bernoulli.pmf(X, p) pList#第3步,繪圖 ''' plot默認繪制折線,這里我們只繪制點,所以傳入下面的參數: marker:點的形狀,值o表示點為圓圈標記(circle marker) linestyle:線條的形狀,值None表示不顯示連接各個點的折線 ''' plt.plot(X, pList, marker='o',linestyle='None') ''' vlines用于繪制豎直線(vertical lines), 參數說明:vline(x坐標值, y坐標最小值, y坐標值最大值) 我們傳入的X是一個數組,是給數組中的每個x坐標值繪制豎直線, 豎直線y坐標最小值是0,y坐標值最大值是對應pList中的值 官網文檔:https://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.vlines ''' plt.vlines(X, 0, pList) #x軸文本 plt.xlabel('隨機變量:拋硬幣1次') #y軸文本 plt.ylabel('概率') #標題 plt.title('伯努利分布:p=%.2f' % p) #顯示圖形 plt.show()

2.1.2二項分布
如果我們碰到一個事情,這個事情發生的次數是固定的,而我們感興趣的是成功的次數,那么我們就可以用到二項分布。例如,拋硬幣5次,其中2次正面朝上的概率是多少。

如何檢驗是二項分布:

  • 做某件事的次數是固定的,次數用n表示,n次某件事是相互獨立的
  • 每一次事件都有兩個可能的結果(成功或失敗)
  • 每一次成功的概率都是相等的,成功的概率用p來表示
  • 想知道成功了k次的概率是多少
  • 1)定義隨機變量

    2)概率質量函數

    • n:做某件事情的次數
    • p:做某件事情成功的概率
    • k:成功次數

    3)逆向思維:拋硬幣5次,至少有3次正面朝上的概率是多少?可以反過來想:就相當于最多2次正面朝上p(k<=2)=p(0)+p(1)+p(2)

    4)python實現二項分布(Binomial Distribution)

    #第1步,定義隨機變量:5次拋硬幣,正面朝上的次數 n = 5 # 做某件事情的次數 p = 0.5 # 做某件事情成功的概率 X = np.arange(0, n+1,1) X#第2步,#求對應分布的概率:概率質量函數 (PMF) #它返回一個列表,列表中每個元素表示隨機變量中對應值的概率 pList = stats.binom.pmf(X, n, p) pList #第3步,繪圖 ''' plot默認繪制折線,這里我們只繪制點,所以傳入下面的參數: marker:點的形狀,值o表示點為圓圈標記(circle marker) linestyle:線條的形狀,值None表示不顯示連接各個點的折線 ''' plt.plot(X, pList, marker='o',linestyle='None') ''' vlines用于繪制豎直線(vertical lines), 參數說明:vline(x坐標值, y坐標最小值, y坐標值最大值) 我們傳入的X是一個數組,是給數組中的每個x坐標值繪制豎直線, 豎直線y坐標最小值是0,y坐標值最大值是對應pList中的值 ''' plt.vlines(X, 0, pList) #x軸文本 plt.xlabel('隨機變量:拋硬幣正面朝上次數') #y軸文本 plt.ylabel('概率') #標題 plt.title('二項分布:n=%i,p=%.2f' % (n,p)) #顯示圖形 plt.show()

    8

    2.1.3幾何分布
    嘗試一件事多次,想要知道取得第一次成功的概率,例如拋硬幣5次,才第一次正面朝上的概率是多少。

    如何檢驗幾何分布:

  • 做某件事的次數是固定的,次數用n表示,n次某件事是相互獨立的
  • 每一件事的都有兩個可能的結果(成功或者失敗)
  • 每一次成功的概率都是相等的,成功的概率用p來表示
  • 想知道第k次做某件事,才取得第一次成功的概率是多少(不同點,與二項分布)
  • 1)定義隨機變量

    2)概率質量函數——計算第k次才成功的概率

    p:做某件事情成功的概率

    k:第k次做某件事情,才取到第1次成功

    3)幾何分布的期望和方差

    4)用python實現幾何分布(Geometric Distribution)

    ''' 第1步,定義隨機變量: 首次表白成功的次數,可能是1次,2次,3次等 ''' #第k次做某件事情,才取到第1次成功 #這里我們想知道5次表白成功的概率 k = 5 # 做某件事情成功的概率,這里假設每次表白成功概率都是60% p = 0.6 X = np.arange(1, k+1,1) X #第2步,#求對應分布的概率:概率質量函數 (PMF) #它返回一個列表,列表中每個元素表示隨機變量中對應值的概率 #分別表示表白第1次才成功的概率,表白第2次才成功的概率,表白第3次才成功的概率,表白第4次才成功的概率,表白第5次才成功的概率 pList = stats.geom.pmf(X,p) pList #第3步,繪圖 ''' plot默認繪制折線,這里我們只繪制點,所以傳入下面的參數: marker:點的形狀,值o表示點為圓圈標記(circle marker) linestyle:線條的形狀,值None表示不顯示連接各個點的折線 ''' plt.plot(X, pList, marker='o',linestyle='None') ''' vlines用于繪制豎直線(vertical lines), 參數說明:vline(x坐標值, y坐標最小值, y坐標值最大值) 我們傳入的X是一個數組,是給數組中的每個x坐標值繪制豎直線, 豎直線y坐標最小值是0,y坐標值最大值是對應pList中的值 ''' plt.vlines(X, 0, pList) #x軸文本 plt.xlabel('隨機變量:表白第k次才首次成功') #y軸文本 plt.ylabel('概率') #標題 plt.title('幾何分布:p=%.2f' % p) #顯示圖形 plt.show()

    2.1.4泊松分布
    如果你想知道某個時間范圍內發生某件事k次的概率是多大,可以用泊松分布。比如一周內有多少人能贏得彩票,每分鐘有多少人會打電話到呼叫中心。
    如何驗證是泊松分布?

  • 事件是獨立事件
  • 在任意相同的時間范圍內,事件發生的概率相同
  • 你想知道某個時間范圍內,發生某件事k次的概率是多大
  • 1)概率質量函數——計算某個時間范圍內,發生某件事k次的概率
    λ:給定時間范圍內某件事情發生的平均次數
    k:事情發生的次數

    泊松分布的期望和方差均為λ

    2)用python實現概率分布圖的繪制(Poisson Distribution)

    ''' 第1步,定義隨機變量: 已知某路口發生事故的比率是每天2次, 那么在此處一天內發生k次事故的概率是多少? ''' mu = 2 # 平均值:每天發生2次事故 k=4 #次數,現在想知道每天發生4次事故的概率 #包含了發生0次、1次、2次,3次,4次事故 X = np.arange(0, k+1,1) X #第2步,#求對應分布的概率:概率質量函數 (PMF) #它返回一個列表,列表中每個元素表示隨機變量中對應值的概率 #分別表示發生1次,2次,3次,4次事故的概率 pList = stats.poisson.pmf(X,mu) pList #第3步,繪圖 ''' plot默認繪制折線,這里我們只繪制點,所以傳入下面的參數: marker:點的形狀,值o表示點為圓圈標記(circle marker) linestyle:線條的形狀,值None表示不顯示連接各個點的折線 ''' plt.plot(X, pList, marker='o',linestyle='None') ''' vlines用于繪制豎直線(vertical lines), 參數說明:vline(x坐標值, y坐標最小值, y坐標值最大值) 我們傳入的X是一個數組,是給數組中的每個x坐標值繪制豎直線, 豎直線y坐標最小值是0,y坐標值最大值是對應pList中的值 ''' plt.vlines(X, 0, pList) #x軸文本 plt.xlabel('隨機變量:某路口發生k次事故') #y軸文本 plt.ylabel('概率') #標題 plt.title('泊松分布:平均值mu=%i' % mu) #顯示圖形 plt.show()

    2.2連續概率分布(2種商業模式:正態分布、冪律分布)

    2.2.1正態分布(The Normal Distribution)

    正態分布就是大部分屬于中間值,只有du一小部分屬于過大和過小的值,它zhi們分布在范圍的兩端。

    正態分布(Normal distribution),也稱“常態分布”,又名高斯分布(Gaussian distribution),最早由A.棣莫弗在求二項分布的漸近公式中得到,C.F.高斯在研究測量誤差時從另一個角度導出了它。

    正態曲線呈鐘型,兩頭低,中間高,左右對稱因其曲線呈鐘形,因此人們又經常稱之為鐘形曲線。

    正態分布的表示:若隨機變量X服從一個數學期望為μ、方差為σ^2的正態分布,記為N(μ,σ^2)。

    1)正態分布的功能:

    • 預測數據的位置

    第一步:確定概率范圍p(k<1.05) --紅色區域的面積

    第二步:求標準分

    標準分z =(1.05 - 平均值)/ 標準差

    第三步:查找z表格

    如果對于其他符號得到概率呢?

    實際問題:奔馳汽車公司考慮實施一項質量保證:如果輪胎的行駛里程沒有達到質量保證規定的里程,那么將以折扣價提供更換輪胎的服務,但是考慮到更換的成本,希望達到折扣質量保證條件的輪胎數不要超過總數的10%,那么應該設定的質保里程為多少公里呢?

    標準分z=(k-平均值)/標準差=-1.28

    2.2.2冪律分布(power-law distribution)

    現實社會財富分配(冪律分布)

    2.2.3正態分布VS.冪律分布

    “邊際成本”越高的行業,越是分散市場,符合正態分布:賺大錢的人少,虧大錢的也少,大部分人都趨向賺取平均利潤。例如上班打工。

    冪律分布:馬太效應、二八原則、網絡效應,例如:開付費專欄,微博網紅。

    二、抽樣分布

    日常生活中我們經常會看到一些缺乏統計概率常識,僅為嘩眾取寵博人眼球的問題,比如:

    • 為什么高考狀元,最后都很平庸?
    • 為什么學區房那么值錢,但學歷不值錢?
    • 為什么一個清華畢業的,收入還干不過咪蒙?

    以上問題均有以偏概全的問題,通過特殊的個例來推斷整體的結論,缺乏可靠性。

    如何避免以上類似的偏見,需要先了解一下統計學中總體與樣本的概念?

    1.什么是總體?

    總體是你研究對象的整個群體。

    2.什么是樣本?

    樣本是從總體中選取的一部分,用于代表總體。

    以“為什么一個清華畢業的,收入還干不過咪蒙?”這個問題為例,它比較的是畢業于清華大學的所有人平均收入和畢業于普通大學的所有人的平均收入,而咪蒙作為畢業于普通大學的所有人樣本是特殊樣本,并非隨機樣本,無法代表總體。

    2.1什么是樣本數量?

    樣本數量是你有多少個樣本。

    2.2什么是樣本大小(樣本容量)?

    樣本大小是每個樣本里面有多少個數據。
    將樣本平均值的分布可視化叫做抽樣分布。

    3.如何用python實現隨機樣本?

    range() 函數可創建一個整數列表,一般用在 for 循環中。

    使用語法:range(start, stop[, step])

    參數說明:

    • start: 計數從 start 開始。默認是從 0 開始。例如range(5)等價于range(0, 5)
    • start: 計數從 start 開始,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]沒有5
    • step:步長,默認為1。例如:range(0, 5) 等價于 range(0, 5, 1)

    案例1:抽獎

    ''' 抽獎:生成多個隨機數 應用案例:從395個用戶中隨機抽取10個人作為中獎者 ''' # 導入 random(隨機數) 模塊 import randomfor i in range(10):userId=random.randint(0,395)#用%s格式化字符串print('第 %s 位獲獎用戶id是 %s' % (i,userId) )

    案例2:pandas數據框(DataFrame)的抽樣方法

    #導入包 import numpy as np #數組包 import pandas as pd #數據分析包 ''' #arange產生一個含有5*4個元素的一維數組 reshape:將數組轉換成5行4列的二維數組 ''' df = pd.DataFrame(np.arange(5 * 4).reshape((5, 4))) df

    #隨機選擇一個n行的子集 sample1=df.sample(n=3) sample1

    4.什么是中心極限定理?

  • 樣本平均值約等于總體平均值。
  • 不管總體上什么分布,任意一個總體的樣本平均值都會圍繞在總體的平均值周圍,并且呈正態分布。
  • 5.如何用樣本估計總體?

    樣本平均值約等于總體平均值

    6.如何在生活、工作、投資中避免偏見?有如下四種偏見的產生:

  • 樣本偏差:以偏概全,用樣本推斷總體,樣本大小一定要足夠大才可以。
  • 幸存者偏差:通常關注顯而易見的樣本,而忽略了不容易出現的樣本。也就是忽略了樣本被篩選過了。所以在思考問題時一定要從多個角度去看。
  • 概率偏見:主觀概率和客觀概率不吻合。
  • 信息繭房:人們的信息領域會習慣性地被自己的興趣所引導,從而將自己的生活桎梏于像蠶繭一般的“繭房”中的現象。也就是說,隨著個性化推薦的發展,我們看見的信息僅是自己感興趣事情的時候,這樣就造成了我們的信息繭房。
  • 總結

    以上是生活随笔為你收集整理的python列表求平均值_python与统计概率思维的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。