本次選取鐵達尼號的資料,利用python進行抽樣分布描述,主要是提供實現**,具體的理論知識不會過多涉及。(注:是否服從t分布不是進行t檢驗~)
字段說明:
age:年齡,指登船者的年齡。
fare:**,指船票**。
embark:登船的港口。
需要驗證的是:
1、驗證資料是否服從正態分佈?
2、驗證資料是否服從t分布?
3、驗證資料是否服從卡方分布?
我們選取年齡作為栗子進行資料驗證。
import pandas as pd
import numpy as np
path = 『d:\資料\data\data.xlsx』
data = pd.read_excel(path)
embark = data.groupby([『embarked』])
embark_basic = data.groupby([『embarked』]).agg([『count』,『min』,『max』,『median』,『mean』,『var』,『std』])
age_basic = embark_basic[『age』]
fare_basic = embark_basic[『fare』]
age_basic
fare_basic
123
4567
891011
1213
1415
16
在這裡插入描述
import seaborn as sns
sns.set_palette(「hls」) #設定所有圖的顏色,使用hls色彩空間
sns.distplot(data[『age』],color=「r」,bins=10,kde=true)
plt.title(『age』)
plt.xlim(-10,80)
plt.grid(true)
plt.show()
123
4567
89
在這裡插入描述
#分別用kstest、shapiro、normaltest來驗證分布係數
from scipy import stats
ks_test = stats.kstest(data[『age』], 『norm』)
shapiro_test = stats.shapiro(data[『age』]
normaltest_test = stats.normaltest(data[『age』],axis=0)
print(『ks_test:』,ks_test)
print(『shapiro_test:』,shapiro_test)
print(『normaltest_test:』,normaltest_test)
123
4567
8910
在這裡插入描述
由檢驗結果知,p <0.05,所以拒絕原假設,認為資料不服從正態分佈
。age = data[『age』]
plt.figure()
age.plot(kind = 『kde』) #原始資料的正態分佈
m_s = stats.norm.fit(age) #正態分佈擬合的平均值loc,標準差 scale
normaldistribution = stats.norm(m_s[0], m_s[1]) # 繪製擬合的正態分佈圖
x = np.linspace(normaldistribution.ppf(0.01), normaldistribution.ppf(0.99), 100)
plt.plot(x, normaldistribution.pdf(x), c=『orange』)
plt.xlabel(『age about titanic』)
plt.title(『age on normaldistribution』, size=20)
plt.legend([『age』, 『normdistribution』])
123
4567
891011
1213
1415
在這裡插入描述
kstest官方文件使用說明
normaltest官方文件使用說明
shapiro官方文件使用說明
2、 驗證是否服從t分布?
np.random.seed(1)
ks = stats.t.fit(age)
df = ks[0]
loc = ks[1]
scale = ks[2]
ks2 = stats.t.rvs(df=df, loc=loc, scale=scale, size=len(age))
stats.ks_2samp(age, ks2)
123
4567
在這裡插入描述
由檢驗結果知,p <0.05,所以拒絕原假設,認為資料不服從t分布
plt.figure()
age.plot(kind = 『kde』)
tdistribution = stats.t(ks[0], ks[1],ks[2])
x = np.linspace(tdistribution.ppf(0.01), tdistribution.ppf(0.99), 100)
plt.plot(x, tdistribution.pdf(x), c=『orange』)
plt.xlabel(『age about titanic』)
plt.title(『age on tdistribution』, size=20)
plt.legend([『age』, 『tdistribution』])
123
4567
89
在這裡插入描述
3、驗證資料是否服從卡方分布
chi_s = stats.chi2.fit(age)
df_chi = chi_s[0]
loc_chi = chi_s[1]
scale_chi = chi_s[2]
chi2 = stats.chi2.rvs(df=df_chi, loc=loc_chi, scale=scale_chi, size=len(age))
stats.ks_2samp(age, chi2)
123
456
在這裡插入描述
plt.figure()
age.plot(kind = 『kde』)
chidistribution = stats.chi2(chi_s[0], chi_s[1],chi_s[2]) # 繪製擬合的正態分佈圖
x = np.linspace(chidistribution.ppf(0.01), chidistribution.ppf(0.99), 100)
plt.plot(x, chidistribution.pdf(x), c=『orange』)
plt.xlabel(『age about titanic』)
plt.title(『age on chi-square_distribution』, size=20)
plt.legend([『age』, 『chi-square_distribution』])
python 抽樣分布實踐
本次選取鐵達尼號的資料,利用python進行抽樣分布描述,主要是提供實現 具體的理論知識不會過多涉及。注 是否服從t分布不是進行t檢驗 字段說明 age 年齡,指登船者的年齡。fare 指船票 embark 登船的港口。需要驗證的是 1 驗證資料是否服從正態分佈?2 驗證資料是否服從t分布?3 驗證...
抽樣分布實踐(python版)
1 驗證資料是否服從正太分布 2 驗證資料是否服從t分布 3 驗證資料是否服從卡方分布 1 什麼是假設檢驗 假設檢驗 hypothesis testing 又稱統計假設檢驗,是用來判斷樣本與樣本 樣本與總體的差異是由抽樣誤差引起還是本質差別造成的統計推斷方法。顯著性檢驗是假設檢驗中最常用的一種方法,...
python 抽樣 python實現抽樣分布描述
本次使用木東居士提供資料案例,驗證資料分布等內容,資料讀取 df pd.read excel c users zxy desktop usecols 1,2,3 1.按照港口分類,計算各類港口資料 年齡 車票 的統計量。df1 df.groupby embarked df1.describe 或 變...