cda

您的位置:首页 > 案例分享 > 网站用户行为分析案例

网站用户行为分析案例

2018-01-09

一、案例综述

案例编号:101001

案例名称:互联网行业——网站用户行为分析

作者姓名(或单位、或来源):刘莎莎

案例所属行业:G6020 互联网信息

案例所用软件:

MYSQLSas EGTOADSAS EM

案例包含知识点:

数据导入 txt导入mysql  数据导出 mysql导出为txt  txt导入SasEG  SAS数据格式修改 频数统计 相关分析 相关系数 相关系数矩阵  RFM模型 聚类分析  关联规则 数据挖掘 频数统计


案例描述:

根据中国互联网络信息中心发布第36次《中国互联网络发展状况统计报告》显示,截至2015年6月,我国网民规模达6.68亿,互联网普及率为48.8%。我国互联网的高速发展普及为互联网企业带来了巨大的发展机遇。

相对于传统的工业领域,互联网领域的入门门槛较低,这一特点有利于更多的企业加入互联网浪潮,以便为人民生活提供更好的服务,但也正是互联网企业的服务模式易于拷贝的原因,导致了同质化竞争激烈的互联网企业发展格局。

为了解决这一问题,通过对网站用户行为进行数据分析,有利于互联网企业准确把握网站发展的实际情况以及网站用户心理需求和心理习惯,从而更有效地利用企业资源,以便在激烈的同质化竞争中找到属于自己的服务特点,获得比较优势,最终赢得竞争。

此案例所用数据集来自于一个互联网企业,属于论坛性质。共有三个数据集。member.txt、tiezi.txt 、bankui.txt分别是会员个人信息表(包括会员的一些属性:出生日期,专长,关注领域等)、浏览帖子信息表(四个字段,第一个是会员id,第二个是会员浏览时间,第三个是会员浏览帖子的链接代码,第四个变量为浏览的为该帖子的第几页),浏览板块信息表(三个字段,第一个是会员id,第二个是会员浏览时间,第三个是会员浏览板块的链接代码)。数据缺陷无法提供板块和帖子的对应情况。其中member.txt数据集中共包含106745条记录,bankuai.txt数据集中共包含765015条记录,tiezi.txt数据集中共包含3832002条记录。


各知识点介绍如下:

1个知识点介绍的是如何借助于第三方数据库管理软件toad把三个txt数据文件导入到MYSQL数据库中。

2知识点介绍的是如何借助于第三方数据库管理软件toad把三个txt数据数从MySQL数据库forum中导出为三个txt文件,将导出的三个txt文件保存为member.txt,tiezi.txt,bankuai.txt,然后在这个基础之上对本章后面的小节进行操作。

3个知识点是将三个txt文件导入到SAS-EG中,保存为sas格式的数据集放在建立的逻辑库test中,并且对日期时间变量进行输出格式的修改,使其显示为正确的日期时间格式。三个sas数据文件分别为member.sas4bdatbankuai.sas7bdattiezi.sas7bdat

4个知识点是对论坛数据进行一些描述性分析,在tiezi.sas7bdat基础之上寻找到最火的帖子。

5个知识点是对论坛数据进行一些描述性分析,是在member.sas7bdat基础之上对论坛用户的男女比例进行描述性分析。

6个知识点是在tiezi.sas7bdat基础之上通过生成查询生成器的方式计算每个人浏览的帖子总数,并且进行用户名字的去重。然后将查询结果和member.sas7bdat数据集进行横向合并,从而将用户年龄和浏览贴子数放在了一个表中。然后进行两个变量的相关性分析。

7个知识点是在tiezi.sas7bdat数据集的基础之上进行进一步的计算,然后用RFM模型对客户进行画像分析,从而找到最有价值的客户。

8个知识点在bankuai.sas7bdat数据集的基础之上用sasEM模块对数据进行板块的关联规则分析,从而可以发现一些推荐规则。

9个知识点是在member.sas7bdat基础之上用SasEM模块的文本挖掘部分对关注领域字段进行关键词频数分析,从而找到关注度最高的关键词。


案例执行形式单人上机


二、案例知识点

知识点1

知识点名称:txt数据文件导入到 mysql数据库中

知识点所属工作角色:数据导入

知识点背景:我们通常会获取各种类型的数据文件,比如txt,excel等,通常需要将这些文件导入到数据库中,从而方便进行长期存储和调用。

知识点描述:txt数据导入到mysql中。

知识点关键词:数据库建立、新建表、数据导入

知识点所用软件:MySQL5.6  Toad for MySQL 6.7

操作目的:txt数据导入到mysql中。

知识点素材(包括数据):Member.txt,tiezi.txt,bankuai.txt

操作步骤:

Ø 安装Toad for MySQL编辑器,成功设置权限;

Ø 在逻辑库下选择forum数据库,界面如下图所示;

 


Ø 单击工具栏中的Tools”选项,执行“Import”,“Import Wizard”命令,如4.21弹出数据导入向导窗口,如下图所示,点击Next


 导入数据


Ø 点击Next”,如下图继续进行;

导入数据


Ø 点击“Add File”,选择文件所在位置添加文件,

导入数据


Ø 选择Comma”(即以逗号为分隔符),选择“Column names as head”(即将原文件中的第一行作为列名)及Empty files are n(即将缺失的数据也插入新表中),点击“Next”继续进行,

导入数据


Ø 再次点击Next”继续进行,在数据导入向导窗口的Select Target步骤中,选择“A single new table”(即新建一个表),在Schema下拉列表中选择创建的数据库forum,在“Table name”中输入新表的名称“member”,根据事先对数据的大致了解,将field6field7lingyu的数值类型改为VARCHAR(200),将zhuanchang的数值类型改为VARCHAR(500),同时选中memberid,将光标定位在memberid前面,点击“Set Primary Key”,即将memberid设置为主键,如下图所示,点击Next按钮。

图 导入数据


Ø 再次点击Next,Finish按钮等待一段时间后会出现如下图的窗口,可以看到读取数据行数为106745行,导入数据行数也为106745行,因此数据全部导入

数据导入结果汇总


Ø 点击OK,在Viewer Table forum.member窗口下点击Data选项,数据如下图,可以看到中文字符也完全显示出来。

图 数据导入成功


MySQL命令窗口下,执行下列语句同样可实现上述操作


create table forum.member

(

    gender   int(11),

    birthyearm   int(11),

    constellation   varchar(255),

    zodiac   varchar(255),

    resideprovince   varchar(255),

    field6   varchar(255),

    field7   varchar(255),

    lingyu   varchar(255),

    zhuanchang   varchar(255),

    readad   int(11),

    viptype   int(11),

    memberid   int(20),

    count   int(11),

    PRIMARY KEY(memberid)

)engine=innodb charset=utf8;


上述代码将新建一个名为forum.membe的新表,包含13个字段及其属性,定义memberid为主键,engine=innodb为指定数据引擎,charset=utf8为编码格式,int表示数据格式为整型,varchar表示数据为可变字符型。

Ø 重复上述操作步骤同样可以将bankuai.txttiezi.txt导入至数据库。


其中tiezi.txt在读入时,采用默认设置读入,发现并未读取全部记录,原因是time的字段类型为int不合适,time字段的一些取值超过了int类型所涵盖的范围,需要导入时将该字段类型改为bigint这样就可以将全部记录导入。由于tiezi数据量(行数)非常庞大,我们将processing row count改为10000以加快读取速度。如下图所示。最终在图4.30中显示读取数据为3832002条,导入条数也为3832002条。

图 导入数据


 

数据导入结果汇总


操作结果:

这个知识点操作结束之后,在你的电脑的mysqlforum数据库中将会存在三张表。

知识点小结:

数据库管理员的其中一个工作就是将各种形式的数据录入或者导入到mysql数据库中,注意toadmysql的版本要相互配合。


知识点2


知识点名称:mysql数据库中数据的导出 

知识点所属工作角色:数据库数据导出

知识点背景:我们通常需要将数据库中的表格导出成文本格式从而方便提交给数据分析人员进行后续的统计分析与计算。

知识点描述:mysql数据库中的表导出成txt文件。

知识点关键词:Mysql toad 数据库数据导出

知识点所用软件:MySQL5.6  Toad for MySQL 6.7 

操作目的:将数据库中的表格导出为txt文件。

 知识点素材(包括数据):一个mysql数据库forum,并且该数据库下有三张表member、tiezi、bankuai。

操作步骤:

Ø 打开论坛的数据库forum1,打开tables,可以看到有三个表分别是member、tiezi、bankuai。Member中记录的是用户的id和个人信息。tiezi里面记录的是会员浏览帖子的记录。Bankuai里面记录的是会员浏览板块的记录。

打开其中的一个表。比如member,然后在右侧数据浏览窗口中点击“export”,选择导出的形式,我们选择“导出所有记录”,然后选择“txt文件”,点击“Next”,选择保存路径,然后点击“Next”,点击“Next”,然后勾选“include column titles”,继续点击“Next”,然后点击“start”。等进度条完成之后,数据就成功导出了。点击“close”即可。我们依据同样的方法把三个表都导出为txt格式,分别为member.txt 、tiezi.txt 、bankuai.txt。

操作结果:

将上面导出的数据存为member.txt 、tiezi.txt 、bankuai.txt,以备后续使用。

知识点小结:

通常从数据库中导出数据可以保存为好几种文本文件和excel文件,你可以根据需要进行选择,如果数据量较大的话建议保存为txt文件。


知识点3


知识点名称:SAS EG中数据的导入及时间格式修改

知识点所属工作角色:数据导入

知识点背景:先要将外部数据导入到统计软件中才能进行后续的分析和建模。

知识点描述:txt数据导入到saseg中,并且将数据保存为sas格式。

知识点关键词:txt导入saseg   数据导入

知识点所用软件:Saseg

操作目的:txt数据导入到saseg中。

知识点素材(包括数据):bankuai.txttiezi.txt及member.txt

操作步骤:

Ø 打开excel文件,查看数据是否符合SAS要求的格式;

Ø 启动sas eg

Ø 点击“工具”,“分配项目逻辑库”,可以新建一个逻辑库,逻辑库命名为test,注意指定合适的文件夹路径作为逻辑库放数据的地方。

Ø 执行“文件”,“导入数据”,找到member.txt文件,点击“打开”按钮,指定test逻辑库,打开窗口左下角的服务器列表——本地——逻辑库可以看到逻辑库test已经生成。如果没有发现这个逻辑库就刷新一下便可以看到了。导入数据时指定文本编码为默认编码,即GB2312。导入完成之后在逻辑库test及保存路径下便生成bankuai.sas7bdat,tiezi.sas7bdat及member.sas7dbat三个数据文件。若在逻辑库下没有显示所导入的数据,刷新一下即可。


我们看一下tiezi数据集里面的数据,结果见下图。

图 tiezi数据窗口


从上图可以看到,time字段显示的格式是数值格式,如何将其变为时间格式。

tiezi数据拖动右侧双口后双击time字段的任意观测值,这时会弹出一个“数据具有保护,是否切换至更新模式”的对话框,注意:所做的更改将直接应用于数据。在此选择“yes”。这样数据就变成可编辑模式了。选中需要编辑的变量列,点击右键选择“属性”,在“常规选项卡”里,把组改为日期格式。在“输出格式”选项卡里,类别选择“日期/时间”。输出格式选择DATETIMEw.d,总宽度设定为20。从下图中可以看到修改后的样式。修改完样式之后将数据集保存。同样,数据集bankuai里面的time字段也进行同样的设置并保存。

图 tiezi数据窗口


操作结果:

将上面生成的sas数据文件保存在文件夹中存为bankuai.sas7bdat,tiezi.sas7bdat及member.sas7dbat,以备后续使用。

知识点小结:

想把txt格式数据导入到saseg中,先要将txt数据格式整理成比较标准的格式才不容易出错,如果txt文件是从数据库中导出的通常格式比较正常。


知识点4

知识点名称:数据的描述性分析——寻找最火的帖子

知识点所属工作角色:数据分析

知识点背景:对数据进行建模之前通常对数据进行一个基本描述,比如分类变量看下频数分布。

知识点描述:对变量进行描述性分析。

知识点关键词:频数统计  描述统计 均值 标准差 中位数 最小值 最大值 分类汇总

知识点所用软件:SasEG

操作目的:对分类变量进行频数统计。

知识点素材(包括数据):tiezi.sas7bdat

操作步骤:

Ø 启动sas eg

Ø Ø新建项目逻辑库。执行“工具”—“分配项目逻辑库”—输入8个字符以内的英文名称(比如test),点击“下一步”按钮

Ø 注意指定合适的文件夹路径(和上面一节的文件路径保持一致)作为逻辑库放数据的地方。

Ø 把左侧下方的逻辑库test下面的tiezi数据集拖入右侧的大窗口中。即可看到帖子数据集作为一个对象出现在右侧窗口中。如果想查看这个数据集里面的内容,双击过程流中TIEZI数据集的图标 ,即可查看里面的数据。


Ø 在tiezi窗口,点击查询生成器。把t1下面的tid变量拉入右侧数据框,见下图。

图 查询生成器窗口


Ø 点击”添加新的计算列”,进入“1/4选择类型”页界面,勾选”汇总列”,点击下一步进入“2/4选择列”页面;在“2/4选择列”页面,选择 “选择数据列”下面的tid变量。点击下一步,进入“3/4修改其他选项”页面;在“3/4修改其他选项”页面,将“标识符”和“列名”均改为total_number“汇总”项选择count,其他项保持默认。点击下一步进入“4/4属性汇总”页面;在“4/4属性汇总”页面点击“完成”回到“选择数据”选项卡页面,见下图。

图 查询生成器窗口


Ø 点击“对数据进行排序”进入“对数据进行排序”选项卡页面。将左侧“计算列”下面的total_number变量拉入数据框,排序方向选择降序,见下图。

图 查询生成器窗口


Ø 然后点击运行,见下图。

图查询生成结果

从上图中就可以看到,最受关注的帖子的代码是397905,被浏览的次数为36754次。


操作结果:

该知识点可以不用对数据集进行保存。

知识点小结:

如果你是论坛工作人员,根据这个帖子代码,你就能知道对应的帖子链接。原来这个帖子是关于增加论坛币方法的介绍,难怪有这么多人都要看。


知识点5

知识点名称:数据的描述性分析——查看论坛男女比例

知识点所属工作角色:数据分析

知识点背景:对数据进行建模之前通常对数据进行一个基本描述,比如分类变量看下频数分布,我们这里对性别进行频数分析。

知识点描述:对变量进行描述性分析。

知识点关键词:频数统计  分类汇总

知识点所用软件:SasEG 

操作目的:对分类变量进行频数统计。

知识点素材(包括数据):member.sas7bdat

操作步骤:

Ø 启动sas eg

Ø Ø新建项目逻辑库。执行“工具”—“分配项目逻辑库”—输入8个字符以内的英文名称(比如test),点击“下一步”按钮

Ø 注意指定合适的文件夹路径(和上面一节的文件路径保持一致)作为逻辑库放数据的地方。

Ø 把左侧下方的逻辑库test下面的member数据集拖入右侧的大窗口中。可以看到数据集作为一个对象出现在右侧窗口中。如果想查看这个数据集里面的内容,双击过程流中member数据集的图标 ,即可查看里面的数据。


Ø 执行“描述”“单因子频数”。在“数据”选项下,把“gender”拖入“分析变量”,在“统计量”选项下,缺失值的“显示频数”和“包含在计算中”前面打勾。点击“运行”按钮,输出结果见下图。

 图单因子频数结果


    结果分析:可以看到绝大多数人并没有对性别进行填写,填写性别的人当中男生占了大多数,大概是女生的3倍。由于没有填写信息的人对分析没有意义,故需要计算填写性别的人当中男女的比例,然后绘制饼形图。

Ø 回到member数据集窗口,执行选择“图形”,“饼图”,双击“简单饼图”即可得到结果,点开“数据”选项卡,将gender拉入右侧要绘图的列。然后点击运行。

图性别分布饼图


操作结果:

该知识点可以不用对数据集进行保存。

知识点小结:

对于分类变量,可以通过单因子频数的方式对其进行描述,也可以通过饼形图对其进行描述。


知识点6

知识点名称:帖子浏览数与年龄关系分析

知识点所属工作角色:数据分析

知识点背景:对于可能存在关系的一些数值变量,通常需要查看其相关系数矩阵。

知识点描述:相关系数矩阵。

知识点关键词:相关系数 

知识点所用软件:SasEG

操作目的:对变量进行相关系数分析。

 知识点素材(包括数据):tiezi.sas7bdat member.sas7bdat

操作步骤:

启动SAS EG,在SAS EG中执行“文件”,“新建项目”。 点击“工具”,“分配项目逻辑库”,可以新建一个逻辑库,逻辑库命名为test,注意指定合适的文件夹路径(和上面一节的文件路径保持一致)作为逻辑库放数据的地方。


Ø 把左侧下方的逻辑库test下面的tiezi数据集拖入右侧的大窗口中。即可看到帖子数据集作为一个对象出现在右侧窗口中。打开tiezi数据集,点击“查询生成器”。将“查询名称”改为计算每个人的浏览帖子数,输出名称为test.tiezishu。点击“选项”,在弹出的窗口的“结果”中,将输出数据集的标签改为tiezishu。然后点击确定返回“选择数据”选项卡页面。将memberid字段选入“选择数据”框里。设定之后见下图。

图查询生成器窗口


Ø 点击”添加新的计算列”,进入“1/4选择类型”页界面,勾选”汇总列”,点击下一步进入“2/4选择列”页面;在“2/4选择列”页面,选择 “选择数据列”下面的memberid变量。点击下一步,进入“3/4修改其他选项”页面;在“3/4修改其他选项”页面,将“标识符”和“列名”均改为tiezishu“汇总”项选择count,其他项保持默认。点击下一步进入“4/4属性汇总”页面;在“4/4属性汇总”页面点击“完成”回到“选择数据”选项卡页面。


Ø “选择数据”选项卡页面。勾选“仅选择非重复行”,汇总组选项下取消自动选择组的勾选,设定组为t1.memberid。见下图。

 

图查询生成器窗口


Ø 点击“对数据进行排序”选项卡。把tiezishu拉入右侧窗口,排序方向选择降序。

查询生成器窗口


Ø 点击运行按钮。输出结果见下图。

查询生成结果


Ø member数据集拉入右侧的过程流里面。双击Member数据集将其打开,点击“查询生成器“,点击“添加表”,选择tiezishu数据集,点击“打开”。

Ø 点击“连接表”,可以看到两个表有共同的Memberid可以连接起来,然后点击“关闭”。将tiezishu数据集里面的memberid、tiezishu选入“选择数据框”,把member数据集里面的birthyear数据选入“选择数据框”。

Ø 将查询名称改为“将年龄和帖子数放在一个表中”,输出名称为test.q1。点击选项,将输出数据集的标签改为q1。


Ø 计算年龄:点击”添加新的计算列”,进入“1/4选择类型”页界面,勾选”高级表达式”,点击下一步进入“2/4生成高级表达式”页面;在“2/4生成高级表达式”页面,在输入表达式框中写入公式:2015-t1.birthyear,点击下一步,进入“3/4修改其他选项”页面;在“3/4修改其他选项”页面,将“标识符”和“列名”均改为age“汇总”项选择None,其他项保持默认。点击下一步进入“4/4属性汇总”页面;在“4/4属性汇总”页面点击“完成”回到“选择数据”选项卡页面。见下图。

查询生成器窗口


Ø 点击“过滤数据”,进入“过滤数据”选项卡页面。由于birthyear变量大量缺失,以0表示的,因此在分析数据之前要对这部分数据进行过滤,将birthyear拉入过滤数据里面,单击“过滤”,运算符选择不等于,值写0,点击“确定”按钮。见下图。

查询生成器窗口


Ø 然后点击“运行”。查询结果就出来了,我们在这个查询结果中可以进行分析,来分析浏览帖子数和年龄的关系。查询结果见下图。

查询生成结果


Ø q1窗口中做散点图:执行“图形”,“散点图”,“二维散点图”,横轴为age,纵轴为tiezishu。结果见下图。

散点图

结果分析:从散点图中可以看到有很多异常值,纵轴上的异常值都是真实值,之所以异常,是因为管理员的帖子浏览量性对于普通会员来讲非常多,因此分析的时候我们应该去掉,我们定义大于6000的为管理员。年龄轴上的异常值主要是因为注册的时候是随意填写导致的结果。分析时把年龄为16以下或者80以上的过滤掉。


Ø 我们回到过程流页面,双击打开数据q1对象,点击“查询生成器”。将查询名称改为对年龄和帖子数进行再过滤,输出名称改为test.q2。点击选项,将输出数据集的标签改为q2。在选择数据选项卡下面,将tiezishu和age拉入数据框。见下图。

查询生成器窗口


Ø 点击过滤数据选项卡。点击“新建过滤器”,选择基本过滤器,点击“下一步”按钮,选择tiezishu,点击“下一步”,运算符选择介于,起始值写 200,结束值写 6000,点击“下一步”,点击“完成”。点击“新建过滤器”,选择“基本过滤器”,点击“下一步”,选择age,点击“下一步”按钮,运算符选择“介于”,不要误选为在范围内,起始值写 16,结束值写 80,点击“下一步”。点击完成。见下图。

查询生成器窗口


Ø 点击“运行”按钮。输出结果见下图。

查询生成结果


Ø q2的窗口中中画age和tiezishu的散点图,操作不再赘述。散点图结果见下图。

 

散点图

结果分析:从散点图中可以看到两者没有明显的正线性相关或者负线性相关的关系,但是仍然可以看到一些结论,浏览帖子比较多的人的年龄主要是20-40之间。40以上浏览帖子的数目基本在1500以内。

Ø q2数据窗口中,点击“分析”,“多元”“相关分析”,把tiezishu和age拉入“分析变量”,然后点击“运行”按钮。结果见下图。

相关分析结果


结果分析:从散点图上虽然看不出什么,相关系数矩阵中两者的相关系数也比较小,但是在10%显著性水平下是显著正相关的。


Ø 为了避免每次重新打开sasEG后,都要把建立逻辑库,打开数据等操作重新做一遍,我们可以把关电脑前在sas EG中进行的操作保存,保存为一个项目:点击“文件”—“保存项目”,为帖子浏览数与年龄关系分析命名,比如项目12.4,点击“保存”即可。这样在你的电脑上就会生成一个文件项目帖子浏览数与年龄关系分析.egp。为了避免死机,最好经常执行一些保存操作,“文件”—“保存项目帖子浏览数与年龄关系分析”。下次用到该项目时重新打开即可。

Ø 该项目的整体过程流图见下图。

图  EG项目流程图


操作结果:

把该知识点的操作产生新的数据集q1.sas7dbat,q2.sas7bdat,tiezishu.sas7bdat保存到路径下,以备后续使用。

知识点小结:

相关系数大小的判别标准在不同行业中是不同的,这里计算的相关系数仅仅是两两相关系数,不考虑其他变量。


知识点7

知识点名称:RFM模型进行客户画像

知识点所属工作角色:数据分析

知识点背景:客户画像(UserProfile)即给用户打上标签,用一种朴素、简洁的方法来描述用户信息。客户画像可以完美地抽象出一个用户的信息全貌,为进一步精准、快速地分析用户行为习惯、消费习惯等重要商业信息,提供了足够数据基础。

RFM模型Bult and Wansbeek1995提出来的,认为客户行为三要素 Recency (R)Frequency (F) Monetary (M)构成了客户购买潜力价值的核心组成部分。该模型经常应用于 CRM 框架下的客户行为分析。

知识点描述:用聚类分析对客户进行画像。

知识点关键词:聚类分 FRM

知识点所用软件:SasEG

操作目的:对个案进行聚类分析。

知识点素材(包括数据):tiezi.sas7bdat

操作步骤:

Ø 启动sas eg

Ø Ø新建项目逻辑库。执行“工具”—“分配项目逻辑库”—输入8个字符以内的英文名称(比如test),点击“下一步”按钮

Ø 在电脑中选择一个文件夹,将其路径作为逻辑库的路径(保证该路径下面有tiezi.sas7bdat这个文件),单击“下一步”按钮

Ø 把左侧下方的逻辑库test下面的tiezi数据集拖入右侧的大窗口中。即可看到帖子数据集作为一个对象出现在右侧窗口中。打开tiezi数据集,点击“查询生成器”。


Ø tiezi中计算一列日期变量date,该变量是从time变量里面提取,格式为年月日。打开tiezi数据集,生成查询器aa1,生成变量date,这个变量等于datepart(time)。计算每个人登陆论坛当天浏览的帖子量生成size变量。具体步骤如下:将查询名称改为aa1,将输出名称改为“test.aa1 ”(即将输出的数据保存在逻辑库test中),把左边的t1表里面的memberid变量拉入右边。如下图所示。

 查询生成器窗口


Ø 点击“添加新的计算列”“高级表达式”,点击“下一步”。在“输入表达式框”中输入表达式datepart(t1.time)。点击下一步。设定列名和标识符均为date,更改变量格式为DATE7.。点击下一步。点击完成回到选择数据选项卡页面。见下图。

  查询生成器窗口


Ø 点击“计算列”,“新建”,“汇总列”,点击“下一步”,随意选择一个变量,比如time,然后点击“下一步”,变量名为size,汇总部分选择“count”,点击“下一步”,点击“完成”。点击完成回到选择数据选项卡页面。勾选“仅选择非重复行”,汇总组选项下取消自动选择组的勾选,设定组为memberid date。见下图。

 查询生成器窗口


Ø 生成一个过滤器,将date等于3653的行去掉,因为此观测值属于异常值。见下图。

  查询生成器窗口


Ø 打开“对数据排序”选项卡,把memberid和date选入,两个均为升序。见下图。

 

 查询生成器窗口


Ø 然后点击“运行”按钮。 输出结果见下图。

 查询生成结果


这样数据集aa1中每个人每天就只有一条记录了。

u 计算y1

新建一个程序文件,程序文件的名字定为“生成y1”。内容如下:

Ø 生成新变量。根据第一个关键词分组,生成变量x1,组内取值为1,2,3….。需要建立一个程序运行下面的语句。输出数据集aa2到逻辑库test里面。


图 程序


程序中by的意思是对数据根据memberiiddate两个变量进行升序排序。

输出结果如下图所示

 

 数据集aa2输出结果1


定义数据为面板数据,横截面为memberid,时间为lag_date。客户浏览帖子时距离上一次浏览帖子的间隔天数y1,即date的一阶差分。


  程序


输出结果如下图所示:

图    数据集aa2输出结果2

 

u 计算y2

新建一个程序文件,程序文件的名字定为“生成y2”。内容如下:


计算会员浏览帖子时论坛的累积登陆天数y2,先生成一个变量,为count,取值为1。然后求这个变量的时间累计值就是y2。然后把数据集保存为aa3放在逻辑库test下面。

 程序


 

图  数据集aa3窗口


u 计算y3

新建一个程序文件,程序文件的名字定为“生成y3”。内容如下:计算会员浏览帖子时论坛的累积浏览帖子数y3,就是变量size的累计值。

  程序


 数据集aa4窗口


u 数据进一步过滤


Ø 点开数据集aa4,点击“查询生成器”,查询生成器名字为aa5,输出的数据集名字为aa5。将数据集aa4里面的变量全部拉入数据框。


Ø 点击“生成新列”maxdate,选择“汇总列”,选择“最大值”,点击“完成”,回到主界面设定分组变量为Memberid。见下图。

图  查询生成器窗口

Ø 建立过滤器,设定过滤器为maxdate=date。这个目的是每个用户仅留最新的浏览日期,这样做是为了利于提升聚类的效果。不适合将一个人的多天浏览放在一起聚

完 谢谢观看

分享
收藏

OK