多元统计分析

> library(dplyr)
> bike.cat <- bike %>%
+		select(season:weatherisit)  %>%
+	mutate_each(funs(factor))

mutate_each()函数是dplyr程序包提供的对所有列使用同一函数的操作了。由于bike数据中包含的分类变量实际上是数值型,因此这里使用了factor()函数将其转换成因子型。然后把这些变量变成哑变量,哑变量就是将分类变量的各个谁陪你描述成取值为0或1的新变量。实际上,caret程序包的dummyVars()函数可以方便地转换成哑变量。dummyVars()函数会返回含有构成哑变量所需信息的列表,在此基础上,通过predict()函数就可以实际转换成哑变量。

> install.packages("caret")
> library(caret)
> tmp <- dummyVars(~.,data=bike.cat)
> bike.dum <- predict(tmp,bike.cat)

将转换成哑变量的因子型变量,和用于多元回归分析的数值变量通过cbind()函数结合,就可以执行多元回归分析。

> bike <- cbind(select(bike,temp:winspeed,cnt),bike.dum)
> bike.lm.0 <- lm(cnt~.,data=bike01)
> summary(bike.lm.0)

lm()函数的第1个参数cnt~.形式其中点号表示将cnt以外的全部变量用作解释变量。通过summary()函数可以观察分析结果。其中的一些变量实际上可能对预测没有任何作用。为了解决这个问题,需要通过变量选择来指定最合适的解释变量群。可以通过MASS程序包中的stepAIC()函数执行变量选择。

> library(MASS)
> bike.lm.1 <- stepAIC(bike.lm.0)
> bike.lm.1
> summary(bike.lm.1)

绘制残差的直方图以及观测值和预测值的散点图。

>qplot(residuals(bike.lm.1),binwidth=500,
+		color=I("black"),fill=I("grey"))
> qplot(predict(bike.lm.1),bike$cnt)+geom_smooth(method="lm")

下面我们不转换成哑变量,而是用转换成因子型的分类变量作为解释变量来生成数据框。

> bike02 <- cbind(dplyr::select(bike,temp:windspeed,cnt),
+		bike.cat)
> bike02.lm <- lm(cnt~.,data=bike02)
> summary(bike02.lm)
> bike02.lmstep <- stepAIC(bike02.lm)
> summary(bike02.lmstep)
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值