vlambda博客
学习文章列表

R语言学习传记(二)

没想到第一篇写完后,隔了这么久才准备更后续。原因有很多,数据比较敏感;然后新装了版本后,代码离奇消失,又要重新整理;最主要的当然还是懒了。不过做事有始有终,还是简单说下后续吧。
首先来回顾下上期内容

    


在之前已经把需要的数据按照需求整理好后,就该进入正题了。首先最简单的,我对处理完的数据进行了相关性分析,主要筛选准备用于建模的指标。
cor(x, y = NULL, use = "everything", method = c("pearson", "kendall", "spearman"))
这个在R里面属于一个内置函数,直接调用就可以得到想要的结果。其中x可以是一个向量或者一个数据框。

做完相关性分析后,发现其中的注册率、点击均价以及前n天付费额相关性较高,自然就会想知道他们之间存在线性或者非线性关系。我这里使用了ggplot进行数据可视化处理,其中重点说一下stat_smooth()这个函数
stat_smooth(mapping = NULL, data = NULL, geom = "smooth", position = "identity", ..., method = "auto", formula = y ~ x, se = TRUE, n = 80, span = 0.75, fullrange = FALSE, level = 0.95, method.args = list(), na.rm = FALSE,  show.legend = NA, inherit.aes = TRUE)
  其中用得比较多的应该是method和formula两个参数。method就是模型的拟合方法,formula就是x和y的方程式了,这里给的默认是y~x;由于ggplot的参数也比较复杂,不再展开细说。
用这个 函数画出来的图如下 ,其中点是真实值,线是拟合值,阴影部分为95%置信区间,阴影部分面积越小说明拟合得越精确。


在使用ggplot进行了大量的画图后,大致推测出变量之间的关系,便开始着手建模。因为本人数学功底不好,并不是很清楚各个模型在具体情况下的优劣,只能每个模型都建立一遍。最后模型是用gam进行拟合。


gam(formula,family=gaussian(),data=list(),weights=NULL,subset=NULL, na.action,offset=NULL,method="GCV.Cp", optimizer=c("outer","newton"),control=list(),scale=0, select=FALSE,knots=NULL,sp=NULL,min.sp=NULL,H=NULL,gamma=1, fit=TRUE,paraPen=NULL,G=NULL,in.out,drop.unused.levels=TRUE, drop.intercept=NULL,discrete=FALSE,...)

需要注意的是,gam模型需要调用“mgcv”程序包才能调用,并且可以提供了非常多的参数以根据实际情况调整模型。涉及理论知识较多,有需要可以自学。

具体拟合结果如下图

至此,初步工作结束,目前模型还在验证中。等验证完后再细说。