python 抽樣分布實踐

2021-10-01 11:28:38 字數 2789 閱讀 2422

本次選取鐵達尼號的資料,利用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

# 1、 先驗證**年齡是否服從正態分佈。

# 畫出年齡的影象

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()

# 2、驗證是否服從正態分佈?

#分別用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)

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)

由檢驗結果知,p <0.05,所以拒絕原假設,認為資料不服從t分布

# 繪製擬合的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'])

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)

# 對資料進行卡方擬合

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 或 變...