使用R预测网页流量

本案例使用回归模型预测互联网排名前1000的网站在2011年的访问量。数据由 NeilKodner提供。

数据描述

我们的数据有很多特征,在这里,主要考虑五列;

rank site category unique-visitors Page-Views hasad inEnglisth
1 facebook social Networks 88000000 9.1e+11 yes yes
2 youtube Online Vieo 80000000 1.0e+11 yes yes

...

rank 表示网站排名
site 表示站点
category 表示类型
unique-visitors 表示Ip访问量
page-views 表示站点浏览量
isenglish 站点是否是英文
hashad 是否有广告

基本分析

使用图形直观的认识一下数据
作出pageViews 和 uniquevisitors关联的散点图。

library(ggplot2)
top.1000.sites <- read.csv('ML_for_Hackers/05-Regression/data/top_1000_sites.tsv',sep = '\t',stringsAsFactors = F)
ggplot(top.1000.sites,aes(x=PageViews,y=UniqueVisitors))+
  geom_point()
image.png

看上去十分糟糕,数据都集中在一个地方。尺度不适合,可以对数据进行变换。
观察Pageviews的密度图。


变换前

完全不可理会。
尝试观察进行变换后的密度图

ggplot(top.1000.sites,aes(x = log(PageViews))) +
 geom_density()
变换后

耶耶耶,好像非常不错!

作出变换后的散点图。并作出预测曲线。

ggplot(top.1000.sites,aes(x = log(PageViews),y = log(UniqueVisitors))) +
  geom_point() + 
  geom_smooth(method = 'lm',se = F)
变换后的散点图

这样的结果还是不错的,我们可以拟合具体的直线。

建立线性模型

lm.fit <- lm(log(PageViews)~log(UniqueVisitors),data = top.1000.sites)
summary(lm.fit)

Call:
lm(formula = log(PageViews) ~ log(UniqueVisitors), data = top.1000.sites)
Residuals:
Min 1Q Median 3Q Max
-2.1825 -0.7986 -0.0741 0.6467 5.1549
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -2.83441 0.75201 -3.769 0.000173 ***
log(UniqueVisitors) 1.33628 0.04568 29.251 < 2e-16 ***
Signif. codes: 0 ‘’ 0.001 ‘’ 0.01 ‘’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 1.084 on 998 degrees of freedom
Multiple R-squared: 0.4616, Adjusted R-squared: 0.4611
F-statistic: 855.6 on 1 and 998 DF, p-value: < 2.2e-16

得到的结果 斜率和截距的t检验通过,回归方程的F检验通过,R 0.4616,相关系数有点低。

增加变量个数:

lm.fit- lm(log(PageViews)~HasAdvertising + log(UniqueVisitors)+ InEnglish,
           data = top.1000.sites)

结论

注意对数据的尺度进行变换。

你可能感兴趣的:(使用R预测网页流量)