一、概率論數(shù)理統(tǒng)計常見的統(tǒng)計量Python實現(xiàn)總結(jié)
1、求數(shù)學(xué)期望
#coding=utf-8
importnumpy asnp
arr = [1,2,3,4,5,6]
#1、數(shù)學(xué)期望(俗稱平均值)
num_avg = np.mean(arr)
print(num_avg)
2、求方差、標準差
#coding=utf-8
importnumpy asnp
arr = [1,2,3,4,5,6]
# 求方差
num_var = np.var(arr)
print(num_var)
# 求標準差
num_std = np.std(arr,ddof=1)
print(num_std)
3、求協(xié)方差
#coding=utf-8
importnumpy asnp
#求協(xié)方差
x=np.array([[1 ,2 ,3] ,
[2 ,5 ,6 ],
[ 7 ,8 ,9],
[ 11 ,11 ,12]])
cov_xy = np.cov(x)
print(cov_xy)
二、求相關(guān)系數(shù)的Python實現(xiàn)總結(jié)
1、公式法
#coding=utf-8
importnumpy
importpandas
X = [1,2,3,4,5]
Y = [1.01 , 2.02 , 3.03 ,4.04 , 5.05]
# 均值
XMean = numpy.mean(X)
YMean = numpy.mean(Y)
#標準差
XSD = numpy.std(X)
YSD = numpy.std(Y)
#z分數(shù)
ZX = (X-XMean)/XSD
ZY = (Y-YMean)/YSD#相關(guān)系數(shù)
r = numpy.sum(ZX*ZY)/(len(X))
print(r)
2、通過numpy的corrcoef方法計算相關(guān)性系數(shù)
#coding=utf-8
importnumpy
X = [10.11, 20.11, 33.11]
Y = [10.22, 20.22, 30.22 ]
t=numpy.corrcoef(X,Y)
print(t)
3、通過pandas的corr方法計算相關(guān)性系數(shù)
#coding=utf-8
importnumpy
importpandas
X = [10.11, 20.11, 33.11]
Y = [10.22, 20.22, 30.22 ]
data = pandas.DataFrame({'X':X,'Y':Y})
t2=data.corr()
print(t2)
三、常見的分布Python實現(xiàn)總結(jié)
1、正太分布
正態(tài)分布是一種連續(xù)分布,其函數(shù)可以在實線上的任何地方取值。正態(tài)分布由兩個參數(shù)描述:分布的平均值μ和方差σ2 。
#coding=utf-8
importnumpy asnp
fromscipy importstats
importmatplotlib.pyplot asplt
mu = 0 # mean
sigma = 1 # standard deviation
x = np.arange(-3, 3, 0.1)
print(x)
y = stats.norm.pdf(x, 0, 1)
print(y)
plt.plot(x, y)
plt.title('Normal: $\mu$=%.1f, $\sigma^2$=%.1f'% (mu, sigma))
plt.xlabel('x')
plt.ylabel('Probability density', fontsize=15)
plt.show()
2、指數(shù)分布
指數(shù)分布是一種連續(xù)概率分布,用于表示獨立隨機事件發(fā)生的時間間隔。比如旅客進入機場的時間間隔、打進客服中心電話的時間間隔、中文維基百科新條目出現(xiàn)的時間間隔等等。
我將參數(shù)λ設(shè)置為0.2,并將x的取值范圍設(shè)置為 $[1, 10]$ 。
#coding=utf-8
importnumpy asnp
fromscipy importstats
importmatplotlib.pyplot asplt
lambd = 0.2
x = np.arange(1,10,0.1)
y =lambd * np.exp(-lambd *x)
print(y)
plt.plot(x, y)
plt.title('Exponential: $\lambda$=%.2f'% (lambd))
plt.xlabel('x')
plt.ylabel('Probability density', fontsize=15)
plt.show()
3、二項分布
某射手射擊,射擊結(jié)果分為中靶和不中靶兩種,若每次射擊相互獨立,中靶的概率皆為0.7,討論在4次射擊中恰好2次中靶的概率(0.2646)
#coding=utf-8
importnumpy asnp
fromscipy importstats
importmatplotlib.pyplot asplt
p = 0.7 # 事件A概率0.7
n = 4 # 重復(fù)實驗4次
k = np.arange(n+1) # 5種可能出現(xiàn)的結(jié)果(中0次、中1次、中2次、中3次、中4次)
r = stats.binom.pmf(k, n, p)
print(r)
4、泊松分布(Poisson Distribution)
一個服從泊松分布的隨機變量X,表示在具有比率參數(shù)(rate parameter)λ的一段固定時間間隔內(nèi),事件發(fā)生的次數(shù)。參數(shù)λ告訴你該事件發(fā)生的比率。隨機變量X的平均值和方差都是λ。
E(X) = λ, Var(X) = λ
泊松分布的例子:已知某路口發(fā)生事故的比率是每天2次,那么在此處一天內(nèi)發(fā)生4次事故的概率是多少?
讓我們考慮這個平均每天發(fā)生2起事故的例子。泊松分布的實現(xiàn)和二項分布有些類似,在泊松分布中我們需要指定比率參數(shù)。泊松分布的輸出是一個數(shù)列,包含了發(fā)生0次、1次、2次,直到10次事故的概率。我用結(jié)果生成了以下圖片。
#coding=utf-8
importnumpy asnp
fromscipy importstats
importmatplotlib.pyplot asplt
rate = 2
n = np.arange(0, 10)
y = stats.poisson.pmf(n, rate)
print(y)
plt.plot(n, y, 'o-')
plt.title('Poisson: rate=%i'% (rate), fontsize=15)
plt.xlabel('Number of accidents')
plt.ylabel('Probability of number accidents', fontsize=15)
plt.show()
5、T分布
t分布形狀類似于標準正態(tài)分布; t分布是對稱分布,較正態(tài)分布離散度強,密度曲線較標準正態(tài)分布密度曲線更扁平
(1)T分布的應(yīng)用場景:
- 根據(jù)小樣本來估計呈正態(tài)分布且方差未知的總體的均值
- 對于任何一種樣本容量,真正的平均值抽樣分布是t分布,因此,當存在疑問時,應(yīng)使用t分布
- 當樣本容量在 30-35之間時,t分布與標準正態(tài)分布難以區(qū)分
-當樣本容量達到120時,t分布與標準正態(tài)分布實際上完全相同了
-
(2)自由度df對分布的影響
-- 樣本方差使用一個估計的參數(shù)(平均值),所以計算置信區(qū)間時使用的t分布的自由度為 n - 1
-- 由于引入額外的參數(shù)(自由度df),t分布比標準正態(tài)分布的方差更大(置信區(qū)間更寬)
-- 與標準正態(tài)分布曲線相比,自由度df越小,t分布曲線愈平坦,曲線中間愈低,曲線雙側(cè)尾部翹得愈高
-- 自由度df愈大,t分布曲線愈接近正態(tài)分布曲線,當自由度df= ∞ 時,t分布曲線為標準正態(tài)分布曲線
#coding=utf-8
importnumpy asnp
fromscipy importstats
importmatplotlib.pyplot asplt
# 不同自由度的學(xué)生t分布與標準正態(tài)分布
importnumpy asnp
fromscipy.stats importnorm
fromscipy.stats importt
importmatplotlib.pyplot asplt
print('比較t-分布與標準正態(tài)分布')
x = np.linspace( -3, 3, 100)
plt.plot(x, t.pdf(x,1), label='df=1')
plt.plot(x, t.pdf(x,2), label='df=20')
plt.plot(x, t.pdf(x,100), label = 'df=100')
plt.plot( x[::5], norm.pdf(x[::5]),'kx', label='normal')
plt.legend()
plt.show()
6、 β分布(Beta Distribution)
β分布是一個取值在 [0, 1] 之間的連續(xù)分布,它由兩個形態(tài)參數(shù)α和β的取值所刻畫。
β分布的形狀取決于α和β的值。貝葉斯分析中大量使用了β分布。
#coding=utf-8
importnumpy asnp
fromscipy importstats
importmatplotlib.pyplot asplt
a = 0.5
b = 0.5
x = np.arange(0.01, 1, 0.01)
y = stats.norm.pdf(x, a, b)
print(y)
plt.plot(x, y)
plt.title('Beta: a=%.1f, b=%.1f'% (a, b))
plt.xlabel('x')
plt.ylabel('Probability density', fontsize=15)
plt.show()
尊敬的讀者:如果您感覺好麻煩關(guān)注、收藏、點贊,謝謝!
《大數(shù)據(jù)和人工智能交流》的宗旨
1、將大數(shù)據(jù)和人工智能的專業(yè)數(shù)學(xué):概率數(shù)理統(tǒng)計、線性代數(shù)、決策論、優(yōu)化論、博弈論等數(shù)學(xué)模型變得通俗易懂。
2、將大數(shù)據(jù)和人工智能的專業(yè)涉及到的數(shù)據(jù)結(jié)構(gòu)和算法:分類、聚類 、回歸算法、概率等算法變得通俗易懂。
3、最新的高科技動態(tài):數(shù)據(jù)采集方面的智能傳感器技術(shù);醫(yī)療大數(shù)據(jù)智能決策分析;物聯(lián)網(wǎng)智慧城市等等。
根據(jù)初學(xué)者需要會有C語言、Java語言、Python語言、Scala函數(shù)式等目前主流計算機語言。
根據(jù)讀者的需要有和人工智能相關(guān)的計算機科學(xué)與技術(shù)、電子技術(shù)、芯片技術(shù)等基礎(chǔ)學(xué)科通俗易懂的文章。
聯(lián)系客服