實踐數據:鏈接: https://pan.baidu.com/s/1ljLoZrT_MnAZYnpOmJt0wQ 提取碼: xw8p
#1、每個地區(qū)間的銷售量是否相同瓤逼?
#(1)提出假設
#H0:u1=u2=u3=…=un踢关,每個地區(qū)間的銷售量沒有顯著變化伞鲫。
#H1:ui(i=1,2,3,…)不完全相等,地區(qū)對銷量有顯著變化签舞。
#(2)構造檢驗的統計量
#計算各水平的均值 因素為地區(qū)秕脓,水平為4,因變量為銷售量瘪菌,根據單因素銷售量
import pandasas pd
import numpyas np
data = pd.read_excel(r"D:\Users\Downloads\銷售數據.xlsx")
print('A地區(qū)的均值:',data['A'].mean())
print('B地區(qū)的均值:',data['B'].mean())
print('C地區(qū)的均值:',data['C'].mean())
print('D地區(qū)的均值:',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=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)
SSA1=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(組間(水平項)誤差平方和):",SSA1)
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=SSA1/(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 ,所以我們認為地區(qū)對銷售量有顯著性影響撒会,即每個地區(qū)間銷售量不同。
#2师妙、不同月份的銷售量是否相同?
import datetime
data=data[['A','B','C','D','month']].copy()
def fun_m(x):
a=datetime.datetime.strftime(x, '%Y-%m')
return a
data['month'] = data['month'].apply(lambda x:fun_m(x))
#按月份匯總統計值
data1=data.groupby(['month']).agg('sum').reset_index()
#print(data1['month'])
print('1月的均值:', (data1[data1['month']=='2019-01']['A']+data1[data1['month']=='2019-01']['B']+data1[data1['month']=='2019-01']['C']+data1[data1['month']=='2019-01']['D'])/4)
print('3月的均值:', (data1[data1['month']=='2019-03']['A']+data1[data1['month']=='2019-03']['B']+data1[data1['month']=='2019-03']['C']+data1[data1['month']=='2019-03']['D'])/4)
print('12月的均值:',(data1[data1['month']=='2019-12']['A']+data1[data1['month']=='2019-12']['B']+data1[data1['month']=='2019-12']['C']+data1[data1['month']=='2019-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 水平項誤差平凡和
SSA2=4*sum((data1['ave']-ave)*(data1['ave']-ave))
print("SSA:",SSA2)
# SSE? 誤差項平方和
SSE=SST-SSA2
print("SSE:",SSE)
#均方
MSA=SSA2/(4-1)
print("MSA:",MSA)
MSE=SSE/(44-4)
print("MSE:",MSE)
F=MSA/MSE
print("F分布是:",F)
#由于F>Fa ,所以我們認為不同月份對銷售量有顯著性影響屹培,即每個月銷售量不同默穴。
#3、不同時間與地區(qū)的銷售量是否相同褪秀?
#雙因素對方差分析的影響
#分為行因素 和列因素
#我將時間為行因素蓄诽,將地區(qū)為列因素。
#SSR為行因素產生的誤差平方和
#SST=SSR+SSC+SSE
# SST? 總誤差平方和
data1=data[['A','B','C','D','month']].copy()
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,所以不同時間與地區(qū)的銷售量不相同媒吗。