統計分析_頻度分析


頻度分析-用一定的分類方法將數組分類,統計各分組下樣本數量,以圖表輔助,用更直觀的方式描述出數組的分布趨勢。

業務意義:在實際數據分析工作中,經常需要將數據按照某個維度分段進行指標統計,以發現問題和解決問題。

 

例子:一個班40個學生,考試成績如下:

[73,87,88,65,73,76,80,95,83,69,55,67,70,94,86,81,87,95,84,92,92,76,69,97,72,90,72,85,80,83,97,95,62,92,67,73,91,95,86,77]

集中趨勢

print('均值:'+str(round(np.mean(score),1)),'中位數:'+str(np.median(score)),'眾數:'+str(stats.mode(score)[0][0]))

均值:81.3 中位數:83.0 眾數:95

離散程度

print('最高分:'+str(max(score)),'最低分:'+str(min(score)),'極差:'+str(max(score)-min(score)),'四分位距:'+str(
np.quantile(score,0.75)-np.quantile(score,0.25)),'方差:'+str(round(np.var(score),1)),'方差:'+str(round(np.std(score),1))) 

最高分:97 最低分:55 極差:42 四分位距:18.5 方差:118.1 方差:10.9
  • 最高分97,眾數為95說明學生分數在高分段集中,可反應試卷難度不高
  • 最低分與均值相差81.3-55=26.5,偏差較大,該同學需要重點關注。

除了以上信息,若只依賴於基礎的數據指標,很難對數據做出全面的解讀

 

數據頻度表-按照數據某些維度,將數組分段后進行統計。

bins = np.arange(55,101,5) #成績分段
bins = pd.cut(df,bins,include_lowest = True,right = False)
bins_score = df.groupby(bins)
bins_score.count()

[55, 60)     1
[60, 65)     1
[65, 70)     5
[70, 75)     6
[75, 80)     3
[80, 85)     6
[85, 90)     6
[90, 95)     6
[95, 100)    6
dtype: int64

 從上表中,可以直觀的發現,各分段的學生人數較為平均,說明此次考試並沒有拉開差距,形成兩級分化,另外部分同學分數較低,需要額外關注。

 

頻度直方圖

plt.hist(score,bins = 9)
plt.show()

 

箱線圖

plt.boxplot(score)
plt.show()

 

小結

在數據分析中,最重要的不是頻度分析方法,可是在頻度分析中體現的分類思想,將數據維度進行分段統計,更加直觀的觀察數據發現問題。

 

2020-04-15 01:54

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM