统计分析_频度分析

频度分析-用一定的分类方法将数组分类,统计各分组下样本数量,以图表辅助,用更直观的方式描述出数组的分布趋势。

业务意义:在实际数据分析工作中,经常需要将数据按照某个维度分段进行指标统计,以发现问题和解决问题。

例子:一个班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

猜你喜欢

转载自www.cnblogs.com/fuyusheng/p/12709980.html