R语言与回归分析网站流量案例

数据集概述

  • 使用互联网排名前1000的网站的数据
  • Rank:排名
  • PagaViews:网站访问量
  • UniqueVisitors:独立访问用户数
  • HasAdvertising:是否有广告
  • InEnglish:主要使用的语言是否为英语

分析过程

1. 安装ggplot2绘图包,并加载

image

2. 加载数据集文件top_1000_sites.tsv

在加载本地数据文件的时候,注意需要对文件的路径中的 \ 符号进行转义 \\ 。否则会出现问题。

image

3. 使用绘制ppplot2函数绘制散点图

初步绘制PageViews和UniqueVisitors变量的散点图:

可以发现数据分布的很不均匀,集中在坐下角坐标原点附近。数据间差异太大时,可以考虑对数据进行log变换。

image

绘制log变换后的log(PageViews)和log(UniqueVisitors)变量的散点图

可以看到经过对数变换后,问题得到了改善

image

绘制根据InEnglish分类变量,对数据集进行分类显示

使用ggplot绘图函数,在绘制根据InEnglish分类变量对数据进行分类的同时,绘制线性模型统计层的回归模型的图像。

image

4. 初步创建回归模型

创建log(PageViews)和log(UniqueVisitors)变量的回归模型

image

创建 log(PageViews)与HasAdvertising+log(UniqueVisitors)+InEnglish的回归模型

image

 5. 尝试优化log(PageViews)与HasAdvertising+log(UniqueVisitors)+InEnglish的回归模型

使用逐步回归方法,尝试优化该模型:

根据step()得到结果,可以发现:无论去掉当前回归模型中的哪一个变量,AIC值都是增大的。因此,step的结果与原来的回归模型相同。

image

再次使用drop1()方法,尝试优化该模型

得到的结果与step函数得到的结果相同。

image

6. 尝试处理分类变量HasAdvertising和InEnglish

由于在原始数据文件中,HasAdvertising和InEnglish分类变量的值为“Yes”和“No”,因此打算对此进行处理。首先将这两个变量的Yes和No分别映射为1和0的数值。然后,根据“虚拟变量”的处理方法,使用“加法模型”,创建HasAdvertisingYes、HasAdvertisingNo与InEnglishYes和InEnglishNo四个变量。并根据原HasAdvertising和InEnglish变量的数值进行赋值操作。如下:

image

注意:在第一次使用elseif函数的时候,由于我自己自定义了一个elseif函数,因此在后面使用系统中的elseif函数的时候,会出现错误。因此,需要使用rm()函数,对自定义的elseif函数进行删除,之后使用系统中elseif函数的时候,就可以正常使用。这就是黄色高亮代码的注释。

尝试重新建立线性回归模型:

image

由上图可见,在手动引入~Yes和~No两个“哑变量”的时候,该回归模型,并没有因此而优化,反而没有系统自动创建的~Yes和~No变量的模型的拟合效果好。为什么?

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值