目录

一、目的

二、数据来源和相关说明

1、数据来源

2、数据信息

3、变量信息

三、描述性分析

1、描述统计

2、单因素分析

四、数据建模

1、全模型分析

2、模型选择

3、模型预测和评估

五、总结


一、目的

从超市会员消费记录中找出规律,并判断会员次月光顾超市的次数。

二、数据来源和相关说明

1、数据来源

来源于某家超市部分会员的详细消费记录。

import os
import numpy as np
import pandas as pd
from matplotlib import pyplot as plt# 参数设置
plt.rcParams['font.sans-serif']=['SimHei'] #中文
plt.rcParams['axes.unicode_minus'] = False #负号
filePath = r'E:\CH6'
fileName = r'crm.csv'# 读取数据
df_raw =  pd.read_csv(open(os.path.join(filePath, fileName)))

2、数据信息

共3995条样本,包含7个变量。

print(df_raw.info())
print(df_raw.head())

3、变量信息

# 变量列表
str_cols = []
num_cols = ['exp3', 'exp2', 'exp1', 'freq3', 'freq2', 'freq1' ]
x_cols = str_cols + num_cols
y_col = 'freq0'

(1)自变量

  • freq1、freq2、freq3分别为会员第-1月、第-2月、第-3月光顾超市的频数。
  • exp1、exp2、exp3分别为会员第-1月、第-2月、第-3月的消费金额。

(2)因变量

  • freq0为会员第0月光顾超市的频数。

三、描述性分析

df_clean = df_raw.copy()

1、描述统计

从下述指标看,按平均水平来说(以算术平均计),每个月每位会员光顾该超市大约1次,消费金额为5-20元。

# 基本统计量
print(df_clean.describe().T)

2、单因素分析

考虑到因变量为计数变量的特点,因此采用箱状图分析因变量和自变量之间的关系,如下:

  • 第0月光顾频数高的顾客(freq0),其第-1月光顾频数(freq1)(以中位数计)也较高。这表明消费者在第-1月的光顾次数可能是一个对其当月的光顾次数有显著影响的重要变量。
  • 第0月光顾频数高的顾客(freq0),其第-1月消费金额(exp1)(以中位数计)也较高。这表明消费者在第-1月的消费金额也可能是一个对其当月的光顾次数有预测能力的变量。但是,其变化趋势没有freq1那样明显,因此,可猜测exp1的预测能力有限。
  • 第0月光顾频数高的顾客(freq0)在其第-2月(freq2)和第-3月(freq3)光顾频数(以中位数计)也较高,但这种趋势在第0月的光顾频数(freq0)较高时并不稳定。这表明,第-2月(freq2)和第-3月(freq3)光顾频数可能有一定的预测能力,但预测能力很有限。
  • 第0月光顾频数高的顾客(freq0)在其第-2月(exp2)和第-3月(exq3)的消费金额(以中位数计)也较高。第-2月的趋势和第-1月类似,而第-3月的趋势要强于第-1月和第-2月,但这种趋势在第0月的光顾频数较高时也不稳定。这也表明,第-2月和第-3月的消费金额可能有一定的预测能力,但预测能力也比较弱。
# 单因素分析
for i in range(len(num_cols)):col = num_cols[i]df_clean.boxplot(by=y_col, column=col, figsize=(4,3))plt.ylabel(col)plt.xlabel(y_col)plt.title(col)plt.suptitle('')plt.show()

四、数据建模

1、全模型分析

根据因变量为计数变量的特点,因此采用泊松回归的方法建立模型。首先对包含全部自变量的全模型进行估计。从下述估计结果看,对模型显著性的广义似然比检验的P值非常小(P值<0.001),表明该模型是显著的,即所考虑的6个自变量中,至少有一个与因变量显著相关。进一步通过对各自变量所对应的Z检验的考察,可以得到:

  • 6个自变量都和因变量高度正相关。这说明,无论是较高的历史光顾频率,还是较高的历史消费金额,都预示着更高的未来光顾频率。
  • 同样是历史光顾频率,最近一个月的光顾频率的系数明显高于另外两个月,类似的现象也存在于消费金额中。这说明,消费者最近一个月的行为对未来的预测能力最强。
import statsmodels.formula.api as smf
base_formula = 'freq0 ~ 1 + freq1 + freq2 + freq3 + exp1 + exp2 + exp3'
model = smf.poisson(base_formula, df_clean).fit()
print(model.summary())

2、模型选择

由全模型分析得出,所选取的自变量确实对因变量有一定的解释能力。但是全模型过于复杂,为了得到一个尽量简单同时又具有良好的预测能力的模型,采用AIC和BIC的模型选择标准来选择一个最优的模型。对于本报告所使用的数据,AIC和BIC得到了相同的结论,它们都认为全模型就是最优的模型。这表明,这6个自变量确实都有一定的预测能力,也就是说,前三个月中消费者的购买行为确实影响着当月的购买行为。

def step(model_eval, baseFormula, data, scoreTyp='aic'):f = baseFormula.replace(' ', '')response = f.split('~')[0]remaining = [i for i in f.split('~')[1].split('+') if i != '1']selected = []current_best_score, best_score = np.PINF, np.PINF # 初始值k = 1while remaining and current_best_score == best_score:
#        print('\n[INFO] No. %d'%k)k += 1scores_with_candidates = []for candidate in remaining:formula = "{} ~ {} + 1".format(response, ' + '.join(selected + [candidate]))score = eval(model_eval + '.' + scoreTyp)scores_with_candidates.append((score, candidate))scores_with_candidates.sort()current_best_score, current_best_candidate = scores_with_candidates[0]if current_best_score <= best_score:remaining.remove(current_best_candidate)selected.append(current_best_candidate)best_score = current_best_scoreelse:break    formula = "{} ~ {} + 1".format(response,' + '.join(selected))model = eval(model_eval)print('\n[INFO] FINAL')  print('%s, %.1f' % (formula, eval('model.' + scoreTyp)))return modelmodel_eval = "smf.poisson(formula, data).fit()"
print('\n\n[AIC]')
model_aic = step(model_eval, base_formula, df_clean, scoreTyp='aic')
print('\n\n[BIC]')
model_bic = step(model_eval, base_formula, df_clean, scoreTyp='bic') 

3、模型预测和评估

根据所得到的模型,可以利用它进行消费者当月的光顾频数预测。通过对测试集数据进行预测,并计算预测值与真实值之间的误差,得到该模型的绝对预测精度(RMSE)为1.34,表明该模型有一定的预测能力。

test_fileName = r'new.csv'
df_test =  pd.read_csv(open(os.path.join(filePath, test_fileName)))
#预测
df_test['pred'] = list(model_aic.predict(df_test))
#计算MSR
print('\n均方根误差(RMSE): %.2f' % (np.mean((df_test[y_col] - df_test['pred'])**2)**0.5))

五、总结

从上述的分析结果可知,消费者在前三个月的光顾频数和消费金额都影响着其未来的光顾频数,其中前三个月的光顾频数对未来的光顾频数的影响要大于消费金额。因此,对超市的管理者而言,能够使消费者经常光顾超市对超市的经营具有很重要的意义,而不要过于关注消费金额。还发现消费者最近一个月的行为对未来的预测能力最强,因而超市的管理者要特别关注近期的经营状况,而不是更长期的情形。

另外,根据本报告的模型及结论,超市管理者可以利用会员的历史消费记录,对会员未来的光顾频数进行合理的预测,并根据预测结果来制定相应的营销策略。具体来说,如果预测结果表明消费者未来的光顾频数较小,那么超市需要通过某些促销活动来增加消费者的光顾次数,进而提高超市的经营业绩。

《应用商务统计分析》第六章 泊松回归相关推荐

  1. 第六章 逻辑回归-机器学习老师板书-斯坦福吴恩达教授

    第六章 逻辑回归 6.1 分类器 6.2 假设陈述 6.3 决策边界 6.4 代价函数 6.5 简化代价函数与梯度下降 6.6 高级优化 6.7 多元分类:一对多 6.1 分类器 6.2 假设陈述 6 ...

  2. R语言基础题及答案(六)——R语言与统计分析第六章课后习题(汤银才)

    R语言与统计分析第六章课后习题(汤银才) 题-1 有一批枪弹, 出厂时, 其初速v∼N(950,σ2)v\sim N(950,\sigma^2)v∼N(950,σ2)(单位:m/sm/sm/s). 经 ...

  3. 《应用商务统计分析》第一章 线性回归(报告)

    说明:本报告仅供学习参考,不代表任何投资建议.同时欢迎各位大佬指点交流~ 报告地址:因为博客里面的编辑界面不太友好(本人懒),所以将报告上传至了github:

  4. 调整泊松回归中的过度分散

    广义线性模型(Generalized Linear Models) The Poisson regression model naturally arises when we want to mode ...

  5. 吴恩达《机器学习》第六章:逻辑回归

    文章目录 六.逻辑回归 6.1 Sigmoid 函数 6.2 决策边界 6.2.1 线性决策边界 6.2.2 非线性决策边界 6.3 代价函数 6.4 高级优化 6.5 多类别分类 六.逻辑回归 逻辑 ...

  6. 机器学习-第六章 支持向量机(SVM)

    机器学习-第六章 支持向量机(SVM) D系鼎溜关注 2020.02.09 21:19:41字数 1,131阅读 458 6.1 间隔与支持向量 开倍速观看视频之后,对课本所说的会更加了解. 支持向量 ...

  7. 吴恩达机器学习(第六章)——正则化

    第六章-正则化 文章目录 第六章-正则化 过拟合问题 代价函数 线性回归的正则化 Logistic回归的正则化 过拟合问题 如果我们有非常多的特征,我们通过学习得到的假设可能能够非常好地适应训练集(代 ...

  8. 机器学习理论《统计学习方法》学习笔记:第六章 逻辑斯谛回归与最大熵模型

    机器学习理论<统计学习方法>学习笔记:第六章 逻辑斯谛回归与最大熵模型 6 逻辑斯谛回归与最大熵模型 6.1 逻辑斯谛回归模型 6.1.1 逻辑斯谛分布 6.1.2 二项逻辑斯蒂回归模型 ...

  9. 广义线性模型_广义线性模型(第六章补充)

    上一篇文章(第六章)主要介绍了最大熵模型,并从中推导出逻辑斯谛回归,感觉意犹未尽.在复习了CS229 Lecture note之后,我决定重新整理思路:从广义线性模型的角度来看逻辑斯谛回归.最后,基于 ...

最新文章

  1. UVa 11825 (状压DP) Hackers' Crackdown
  2. Android WiFi热点完全研究(自定义创建、跳转系统界面设置、读取配置、切换,Android6.0适配)...
  3. android瓦片地图下载,Andorid 如何加载 瓦片地图
  4. VTK修炼之道35:边缘检测_Laplace算子
  5. 机器学习:决策树过拟合与剪枝,决策树代码实现(三)
  6. java local_java.time.LocalDateTime with()方法
  7. 数据结构 —— 递归和树
  8. 有关Kill Session问题的讨论(旧文初发)
  9. Linux读取内核空间,linux,arm_arm如何在内核空间直接读写某个物理地址(或者进程的虚拟地址),linux,arm,c,linux-kernel,memory - phpStudy...
  10. 中鸣机器人走黑线_乐高机器人三光感走黑线
  11. 积木导出pdf打不开文件,后台报空指针
  12. android http 302重定向 实现,Android httpClient自动处理302重定向
  13. 一个商品SKU是怎么生成的
  14. Kali Linux工具大全-信息收集
  15. 网页访问报错This request has been blocked; the content must be served over HTTPS.
  16. 给前端工程师看的后端科普
  17. linux 关闭虚拟内存,Linux关于虚拟内存
  18. Ceres Solver实现简单的光束法平差
  19. 贪吃蛇小游戏制作(4)
  20. 黑马程序员---MYSQL数据库---01

热门文章

  1. 标题vue导出表格数据,excel表格打不开
  2. 太极熊猫服务器怎么都在维护,太极熊猫3月8日战区调整及维护公告
  3. c#List<T>.FindIndex 方法
  4. webstorm安装
  5. invidia tx2硬件与软件配置笔记
  6. drakvuf-sandbox(沙箱)
  7. 数据库decimal对应java什么类型_数据库类型和java类型对应关系 | 学步园
  8. samba服务搭建过程
  9. 弱口令爆破那些事儿-1(思路与感想)
  10. Java开发工具中Compile、Make和Build的区别