数据学习(十五)-方差分析实践

有A、B、C、D四个地区,不同地区的销售量不一样,现抽取了不同时间段内每个地区的销售量,试解决:
1、每个地区间的销售量是否相同?
2、不同月份的销售量是否相同?
3、不同时间与地区的销售量是否相同?

1、每个地区间的销售量是否相同?

(1)提出假设
H0:u1=u2=u3=…=un,每个地区间的销售量没有显著变化。
H1:ui(i=1,2,3,…)不完全相等,地区对销量有显著变化。

(2)构造检验的统计量

计算各水平的均值

import pandas as pd
import numpy as np
data=pd.read_excel("E:\销售数据.xlsx")
data

数据学习(十五)-方差分析实践

#A地区的均值
print(data['A'].mean())
#B地区的均值
print(data['B'].mean())
#C地区的均值
print(data['C'].mean())
#D地区的均值
print(data['D'].mean())
#总均值
sum1=data['A'].sum()+data['B'].sum()+data['C'].sum()+data['D'].sum()
ave=sum1/(4*data.shape[0])
print(ave)

结果是:
数据学习(十五)-方差分析实践
计算误差平方和

# SST  总误差平方和
SST=sum((data['A']-ave)*(data['A']-ave))+sum((data['B']-ave)*(data['B']-ave))+sum((data['C']-ave)*(data['C']-ave))+sum((data['D']-ave)*(data['D']-ave))
print("SST:",SST)

# SSA 水平项误差平凡和
SSA=11*(data['A'].mean()-ave)*(data['A'].mean()-ave)+11*(data['B'].mean()-ave)*(data['B'].mean()-ave)+11*(data['C'].mean()-ave)*(data['C'].mean()-ave)+11*(data['D'].mean()-ave)*(data['D'].mean()-ave)
print("SSA:",SSA)

# SSE  误差项平方和
SSE=sum((data['A']-data['A'].mean())*(data['A']-data['A'].mean()))+sum((data['B']-data['B'].mean())*(data['B']-data['B'].mean()))+sum((data['C']-data['C'].mean())*(data['C']-data['C'].mean()))+\
   sum((data['D']-data['D'].mean())*(data['D']-data['D'].mean()))
print("SSE:",SSE)

结果是:
数据学习(十五)-方差分析实践

#均方
MSA=SSA/(4-1)
print("MSA:",MSA)

MSE=SSE/(44-4)
print("MSE:",MSE)

F=MSA/MSE
print("F分布是:",F)

结果是:
数据学习(十五)-方差分析实践
由于查的F阿法(3,40)=3.13

由于F>Fa ,所以我们认为地区对销售量有显著性影响,即每个地区间销售量不同。

2、不同月份的销售量是否相同?

data=data[['A','B','C','D','month']].copy()
data1=data.groupby(['month']).agg('sum').reset_index()
data1

数据学习(十五)-方差分析实践

#1月的均值
print((data1[data1['month']==1]['A']+data1[data1['month']==1]['B']+data1[data1['month']==1]['C']+data1[data1['month']==1]['D'])/4)
#2月的均值
print((data1[data1['month']==3]['A']+data1[data1['month']==3]['B']+data1[data1['month']==3]['C']+data1[data1['month']==3]['D'])/4)
#3月的均值
print((data1[data1['month']==12]['A']+data1[data1['month']==12]['B']+data1[data1['month']==12]['C']+data1[data1['month']==12]['D'])/4)

data1['ave']=[22445.5,13402.0,26101.75]

#总均值
sum1=data1['A'].sum()+data1['B'].sum()+data1['C'].sum()+data1['D'].sum()
ave=sum1/(4*data1.shape[0])
print(ave)

数据学习(十五)-方差分析实践

# SST  总误差平方和
SST=sum((data1['A']-ave)*(data1['A']-ave))+sum((data1['B']-ave)*(data1['B']-ave))+sum((data1['C']-ave)*(data1['C']-ave))+sum((data1['D']-ave)*(data1['D']-ave))
print("SST:",SST)

# SSA 水平项误差平凡和
SSA=4*sum((data1['ave']-ave)*(data1['ave']-ave))
print("SSA:",SSA)

# SSE  误差项平方和
SSE=SST-SSA
print("SSE:",SSE)

数据学习(十五)-方差分析实践

#均方
MSA=SSA/(4-1)
print("MSA:",MSA)

MSE=SSE/(44-4)
print("MSE:",MSE)

F=MSA/MSE
print("F分布是:",F)

数据学习(十五)-方差分析实践
由于F>Fa ,所以我们认为不同月份对销售量有显著性影响,即每个月销售量不同。

3、不同时间与地区的销售量是否相同?

双因素对方差分析的影响
分为行因素 和列因素
我将时间为行因素,将地区为列因素。
SSR为行因素产生的误差平方和

#SST=SSR+SSC+SSE
# SST  总误差平方和
SST=sum((data1['A']-ave)*(data1['A']-ave))+sum((data1['B']-ave)*(data1['B']-ave))+sum((data1['C']-ave)*(data1['C']-ave))+sum((data1['D']-ave)*(data1['D']-ave))
print("SST:",SST)

SSR=SSA2
print("SSR:",SSR)

SSC=SSA1
print("SSC:",SSC)

SSE=SST-SSR-SSC
print("SSE:",SSE)

数据学习(十五)-方差分析实践

MSR=SSR/2
print("MSR:",MSR)

MSC=SSC/3
print("MSC:",MSC)

MSE=SSE/(2*3)
print("MSE:",MSE)

数据学习(十五)-方差分析实践

Fr=MSR/MSE
print("Fr:",Fr)

Fc=MSC/MSE
print("Fc:",Fc)

数据学习(十五)-方差分析实践
Fr>Fa,Fc>Fa,所以不同时间与地区的销售量不相同。

数据学习(十五)-方差分析实践数据学习(十五)-方差分析实践 @你好 发布了17 篇原创文章 · 获赞 0 · 访问量 263 私信 关注
上一篇:43 :平均值问题


下一篇:boost::units模块实现用常量测试所有运算符的组合的测试程序