首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

R语言—数据分析3

上篇文章给大家留了个作业,那么答案现在揭晓:

缺失值数据里,通过变量的相关性填补缺失值:

①: > cor(algae[,4:18],use ="complete.obs") 命令得出函数间的相关之,知识点函数cor()

②:>symnum(cor(algae[,4:18],use = "complete.obs"))函数symnum改善输出结果

③: > lm(PO4~oPO4,data =algae) 通过模型得出相关函数,填充缺失值

以上是上次课余答案。今天将如何根据数据建立模型:通过多元线性回归,和回归树模型两种不同的模型;

线性回归:R预言中,线性回归不能使用有缺失值的数据集;通过如下命令,我们得到不含缺失值的数据集;

通过lm()建立一个回归模型,用其他所有变量来预测变量a1,其中第一个参数点“.”代表数据框a1之外的所有变量。

通过summary()获取多元线性模型的信息。

对得到的线性模型对象用summary()函数得到一些诊断信息,:

①拟合残差:残差应该是均值为0,且正态分布(显然残差尽可能的小)

②为了检验系数的重要性,通过t检验(假设系数为0,被拒绝的概率)来验证,Pr(>|t|) 显示与系数相关的一列

③R2表示模型与数据的吻合度,越接近于1,越好。

由此可知该模型的方差不好(32%),目标变量不依赖预测变量假设。检查某些系数的显著性,会得出有些变量不应该进入模型。

用anova()精简线性模型。函数anova(lm.a1),提供线性拟合的方差分析。

由上面可知season对线性拟合的方差贡献非常小,可以剔除。

用update()将变量season删除

新模型R2提高到了32.8%,依然不好。

用anova比较两个模型,但是Pr(>F)是0.69,不显著,区别不大。

接下来还需要重复删除变量步骤。你觉得是人工一直这样手动删除检验么~~~

当然不是啦,R提供了函数,可以直接自动完成。

如下,只需要step这一步,就可以自动完成向后消元过程。

向后消元完成后,还需要用summary()检验;从如下检验结果看, R2依然不是很理想33.24%,此时我们就需要考虑更换模型了。

利用回归树??这个问题小编先留给大家思考,下期内容更新实现方法。

知识点:1:多元线性回归lm()

2:summary()函数

3:anova()函数

4:step()函数

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180730G1M3O500?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券