python matplotlib繪制柏拉圖pareto_強大的帕累托分布——其可視化實現方法

 2023-12-01 阅读 27 评论 0

摘要:1.帕累托分布帕累托分布是一種冪律概率分布,以意大利土木工程師、經濟學家和社會學家維爾弗雷多帕累托的名字命名,用來描述社會、科學、地球物理、精算和其他各種可觀察到的現象。帕累托分配有時也被稱為帕累托原則或“80-20”規則,即社會財富的80%掌握在

1.帕累托分布

帕累托分布是一種冪律概率分布,以意大利土木工程師、經濟學家和社會學家維爾弗雷多·帕累托的名字命名,用來描述社會、科學、地球物理、精算和其他各種可觀察到的現象。帕累托分配有時也被稱為帕累托原則或“80-20”規則,即社會財富的80%掌握在20%的人口手中。帕累托分布不是自然規律,而是一種觀察。它在許多實際問題中都很有用。

讀完定義后,你一定想知道什么是冪律?冪次定律是兩個量之間的函數關系,一個量的變化引起另一個量的比例變化,而與兩個量的初始大小無關。

80-20法則在很多情況下都適用。例如,帕雷托發現80%的意大利土地為20%的人口所有。他還發現,他菜園里80%的豌豆來自20%的豌豆植株。世界上82.7%的收入由20%的人口控制。微軟2002年的一份報告顯示,Windows和MS Office系統80%的錯誤和崩潰都是由20%的bug引起的。80%的銷售額來自20%的產品。80%的客戶只使用20%的軟件功能。這種80-20分布非常頻繁。

2.在Python中生成帕雷托分布

可以使用Scipy在Python中生成帕雷托分布。統計模塊或使用NumPy、Scipy、stats模塊包含各種概率分布和不斷增長的統計函數庫。Scipy是一個用于科學計算和技術計算的Python庫。NumPy是一個用于科學計算的Python庫,除了科學用途之外,它還可以用作泛型數據的多維容器。

2.1使用Scipy.stats

x_m和alpha是帕雷托分布的兩個參數。x_m為scale參數,表示帕雷托分布隨機變量所能取得最小值。是形狀參數,等于n/SUM{ln(x_i/x_m)}。

linspace()返回均勻間隔的樣本(樣本的數量等于num)在一個特定的間隔內[開始,停止]。在上面的代碼中,linspace()方法在一個范圍[0,5]內返回1000個均勻間隔的樣本。

將迭代形狀值-alpha列表以繪制每個值的線條。array()創建一個數組。Pareto()方法返回一個Pareto連續隨機變量。PDF()創建一個概率密度函數(PDF)。參數x、b、loc、scale分別為類數組分位數、類數組形狀參數、類數組可選位置參數(默認值為0)、類數組可選比例參數(默認值為1)。

plot()繪制均勻間隔的樣本和PDF值的數組。圖形是為每個值繪制的。在這里,輸出。T是輸出的轉置。輸出是一個3行的Pareto分布數組,每個形狀參數一個。在轉置時,輸出被轉換成一個列數組。

其余的代碼行幾乎是不言自明的。使用plt.xlabel()和plt.ylabel()標記x軸和y軸。title()將title分配給圖。grid()配置網格線。

所述plt.rcParams []設置當前RC PARAMS。Matplotlib使用matplotlibrc配置文件來自定義各種屬性,這些屬性稱為“ rc設置”或“ rc參數”。Matplotlib中幾乎每個屬性的默認值都可以控制:圖形大小和DPI,線寬,顏色和樣式,軸和網格屬性,文本和字體屬性等等。

legend()顯示圖例,而plt.show()顯示所有數字。

2.2使用Numpy

Pareto()從具有指定形狀的Pareto II或Lomax分布中隨機抽取樣本。帕累托分布是一種移位的帕累托分布。通過添加1并乘以縮放參數x_m,可以從Lomax分布中得到經典的Pareto分布。

帕累托分布的最小值為0,而經典的帕累托分布為mu,其中標準帕累托分布的位置mu = 1。

plt.hist()繪制直方圖。當參數density或normed被設置為True時,返回的tuple將第一個元素作為count歸一化以形成概率密度。因此,直方圖下的面積為1。這是通過將計數除以觀察次數乘以箱子寬度而不是除以觀察總數來實現的。因此y軸代表樣本的密度。

計數中的“_”,bin,_傳達返回的元組的最后的值并不重要(plt.hist()將返回三個元素的元組)。

我們將繪制綁定數據的曲線,

我們將隨機采樣數據擬合一個Pareto分布,并通過計算參數為x_m和alpha的bin定義的x值處的Pareto分布的概率密度,在我們的數據上繪制這個分布。

3.驗證帕累托分布

Q-Q圖(分位數-分位數圖)用于確定連續隨機變量是否服從帕累托分布。

統計數據。帕累托根據指定的理論分布(Pareto分布)的分位數生成隨機樣本(樣本數據)的概率圖。由于絕大多數的藍點(樣本數據)幾乎與紅線(理論分布)一致,所以我們可以得出結論,該分布服從Pareto分布。

在結束之前,有必要了解帕累托分布在現實世界中的應用。

4.帕累托分布的應用

人類住區的規模(更少的城市和更多的村莊)。沙粒的大小。遵循TCP協議在internet上分布的數據的文件大小。油田儲量價值(大油田少,小油田多)在Tinder上,男性約會成功,80%的女性會爭奪20%的最具吸引力的男性。用戶玩各種游戲所花費的時間(很少有游戲比大多數很少玩的游戲玩得更多)。帕累托分布及其概念非常簡單,但功能強大。它總是有助于收集重要的線索,以了解廣泛的人類行為,科學和社會現象。我希望您能更好地理解帕累托分布以及如何從中抽取樣本,并使用Pyplot、Numpy、Scipy和Python進行繪圖。

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://808629.com/188854.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 86后生记录生活 Inc. 保留所有权利。

底部版权信息