使用R预测网页流量

作者: 何同尘 | 来源:发表于2019-01-15 21:40 被阅读34次

    本案例使用回归模型预测互联网排名前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预测网页流量

        本文链接:https://www.haomeiwen.com/subject/pkjudqtx.html