在昨天把所有視頻看完后這次再重新看一下我們的統計學知識,我覺得應該結合編程的知識,來更好理解這些知識,所以借鑒了一些博客上的東西寫一些東西(代碼)
拿到數據之后第一件事是什么?(數據預處理)分析數據的情況?怎么分析???等等一些數據分析的工作。我們都知道一個數據(我們這里討論的是數值型的數據就是底層處理好的數據)我們想了解一下這個數據是什么樣的,我們往往會采用一些可視化的方法。這里屬於統計學的知識的箱型圖就是我們這節想用的可視化方法。其中,大家都可能非常清楚條形圖、直方圖、散點圖和曲線圖的用處,但是箱形圖呢?(或者稱為盒須圖)。他的意義在哪里呢?在python中又是如何實現的呢?
箱形圖有5個參數
下邊緣(Q1),表示最小值;
下四分位數(Q2),又稱“第一四分位數”,等於該樣本中所有數值由小到大排列后第25%的數字;
中位數(Q3),又稱“第二四分位數”等於該樣本中所有數值由小到大排列后第50%的數字;
上四分位數(Q4),又稱“第三四分位數”等於該樣本中所有數值由小到大排列后第75%的數字;
上邊緣(Q5),表述最大值。
第三四分位數與第一四分位數的差距又稱四分位間距。
那為什么要引入箱形圖呢?這里有篇博文也不錯箱形圖分析
1.為了反映原始數據的分布情況,比如數據的聚散情況和偏態。
從圖中我們可以直觀地看出,箱形圖的中位數和上四分位數的間距比較窄的話,對應曲線圖,這個間距內的數據比較集中,還有就是箱形圖的上(下)邊緣比較長的話,對應曲線圖,尾巴就比較長。
2.箱型圖有個功能就是可以檢測這組數據是否存在異常值。異常值在哪里呢?就是在上邊緣和下邊緣的范圍之外。(這個我也不太懂,總感覺和正態分布有一腿)
3.可以直觀地比較多組數據的情況。示例:多組成績的箱形圖
從這圖我們可以很直觀地看出以下信息:
1.各科成績中,英語和西方經濟學的平均成績比較高,而統計學和基礎會計學的平均成績比較低。(用中位數來衡量整體情況比較穩定)
2.英語、市場營銷學、西方經濟學、計算機應用基礎和財務管理成績分布比較集中,因為箱子比較短。而經濟數學、基礎會計學和統計學成績比較分散,我們可以對照考試成績數據看看也可以證實。
3.從各個箱形圖的中位數和上下四位數的間距也可以看出,英語和市場營銷學的成績分布是非常的對稱,而統計學呢?非常的不平衡,大部分數據都分布在70到85(中位數到上四分位數)分以上。同樣,也可以從成績單里的數據證實
4.在計算機應用基礎對應的箱形圖出現了個異常點,我們回去看看成績單,計算機那一欄,出現了個計算機大牛(真希望是我),考了95分,比第二名多了10分。而其他同學的成績整體在80分左右。
5。其實我們也可以從中得知,用平均值去衡量整體的情況有時很不合理,用中位數比較穩定,因為中位數不太會收到極值的影響,而平均值則受極值的影響很大。
那么在python怎么去畫箱型圖呢?
大家環境自己搭建:本人用的是python 3,pycharm IDE 平台。主要的模塊有matplotlib,pandas,numpy
import matplotlib.pyplot as plt import numpy as np import pandas as pd #添加成績表 plt.style.use("ggplot") plt.rcParams['axes.unicode_minus'] = False plt.rcParams['font.sans-serif']=['SimHei'] #新建一個空的DataFrame df=pd.DataFrame() #添加成績單,最后顯示成績單表格 df["英語"]=[76,90,97,71,70,93,86,83,78,85,81] df["經濟數學"]=[65,95,51,74,78,63,91,82,75,71,55] df["西方經濟學"]=[93,81,76,88,66,79,83,92,78,86,78] df["計算機應用基礎"]=[85,78,81,95,70,67,82,72,80,81,77] #用matplotlib來畫出箱型圖 plt.boxplot(x=df.values,labels=df.columns,whis=1.5) plt.show() #用pandas自帶的畫圖工具更快 df.boxplot() plt.show()
結果如圖所示: