# -*- coding: utf-8 -*-
"""
Created on Tue Jun 25 10:50:11 2019
@author: User
"""
# 《Python数据分析基础》中国统计出版社
#import numpy as np
from scipy import stats
import pandas as pd
#import statsmodels.api as sm
#import matplotlib.pyplot as plt
from statsmodels.stats.multicomp import pairwise_tukeyhsd
from matplotlib.font_manager import FontProperties
myfont=FontProperties(fname='data\msyh.ttc')
dc_sales = pd.read_csv(u'data\\ch7\\dc_sales.csv',encoding = "gbk")
print(dc_sales.head())
dc_sales['pixel'] = dc_sales['pixel'].astype('category')
dc_sales['pixel'].cat.categories=['500万像素及以下','500-600万像素',
'600-800万像素','800-1000万像素',
'1000万像素及以上']
#dc_sales['pixel'].cat.set_categories=['500万像素及以下','500-600万像素',
# '600-800万像素','800-1000万像素',
# '1000万像素及以上']
print(dc_sales.head())
print(pd.pivot_table(dc_sales,
index=['pixel'],
columns=['market'],
values=['sales'],
aggfunc='sum'))
G=dc_sales['pixel'].unique() #G用于统计变量pixel的像素属性
args=[] #列表args用于存储不同像素属性下的销售数据
for i in list(G):
args.append(dc_sales[dc_sales['pixel']==i]['sales'])
print(args)
print("\n 进多重比较检验:")
dc_sales_anova_post=pairwise_tukeyhsd(dc_sales['sales'],
dc_sales['pixel'],
alpha=0.05)
print(dc_sales_anova_post.summary())
运行:
market pixel sales
0 1 1 70
1 1 2 101
2 1 3 114
3 1 4 120
4 1 5 132
market pixel sales
0 1 500万像素及以下 70
1 1 500-600万像素 101
2 1 600-800万像素 114
3 1 800-1000万像素 120
4 1 1000万像素及以上 132
sales
market 1 2 3 4 5 6 7 8
pixel
500万像素及以下 70 67 82 87 80 80 87 96
500-600万像素 101 76 97 88 92 99 123 90
600-800万像素 114 96 128 103 107 91 99 119
800-1000万像素 120 98 132 128 132 132 131 119
1000万像素及以上 132 102 123 119 123 135 126 117
[0 70
5 67
10 82
15 87
20 80
25 80
30 87
35 96
Name: sales, dtype: int64, 1 101
6 76
11 97
16 88
21 92
26 99
31 123
36 90
Name: sales, dtype: int64, 2 114
7 96
12 128
17 103
22 107
27 91
32 99
37 119
Name: sales, dtype: int64, 3 120
8 98
13 132
18 128
23 132
28 132
33 131
38 119
Name: sales, dtype: int64, 4 132
9 102
14 123
19 119
24 123
29 135
34 126
39 117
Name: sales, dtype: int64]
进多重比较检验:
Multiple Comparison of Means - Tukey HSD,FWER=0.05
========================================================
group1 group2 meandiff lower upper reject
--------------------------------------------------------
1000万像素及以上 500-600万像素 -26.375 -43.0016 -9.7484 True
1000万像素及以上 500万像素及以下 -41.0 -57.6266 -24.3734 True
1000万像素及以上 600-800万像素 -15.0 -31.6266 1.6266 False
1000万像素及以上 800-1000万像素 1.875 -14.7516 18.5016 False
500-600万像素 500万像素及以下 -14.625 -31.2516 2.0016 False
500-600万像素 600-800万像素 11.375 -5.2516 28.0016 False
500-600万像素 800-1000万像素 28.25 11.6234 44.8766 True
500万像素及以下 600-800万像素 26.0 9.3734 42.6266 True
500万像素及以下 800-1000万像素 42.875 26.2484 59.5016 True
600-800万像素 800-1000万像素 16.875 0.2484 33.5016 True
--------------------------------------------------------