python 抽樣分布實踐

2021-10-01 11:49:10 字數 3677 閱讀 1689

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