【问题标题】:How can I peform a simple linear regression model on this data?如何对这些数据执行简单的线性回归模型?
【发布时间】:2021-01-05 00:45:16
【问题描述】:

所以我想创建一个线性回归模型,将火箭价格(写成火箭)与发射数据(基准)进行对比。我相信我可以这样做:lm(Y ~ X)。但是,我如何能够将价格从 chr 转换为 num,日期也是如此?

谢谢!

数据:https://www.kaggle.com/agirlcoding/all-space-missions-from-1957

【问题讨论】:

标签: r model regression


【解决方案1】:

实际上,您是在问 3 个不同但非常基本的问题,阅读介绍性文字比在 Stack Overflow 上发布问题更好。

  1. 如何将Rocket 列的字符数据转换为数字数据?

根据您使用的 R 版本,spaceData$Rocket 列将是字符向量或因子向量。要涵盖这两种可能性,您可以这样做:

spaceData$Rocket <- as.numeric(as.character(spaceData$Rocket))

这会给你一个警告,告诉你一些NA 值已经产生了。没关系 - 列中有一些空白单元格,因此您希望这些单元格为 NA

  1. 如何将spaceData$Datum 列从文本转换为实际日期时间?

在这种情况下,您可以使用strptime,并指定日期字符串的格式。我们还将把它包装在as.POSIXct 中,以确保数据的格式更易于绘制:

spaceData$Datum <- as.POSIXct(strptime(spaceData$Datum, "%a %b %d, %Y %H:%M"))
  1. 如何使用这两个变量进行线性回归?

在尝试线性回归之前,最好确保进行线性回归是明智的。为了使线性回归有意义,您应该知道两个变量之间存在近似线性关系,并且残差近似正态分布。检查这些假设的一种简单方法是绘制两个变量:

plot(spaceData$Datum, spaceData$Rocket)

您无需成为统计学家就可以看出,通过这些点的任何直线作为对这种关系的描述都是毫无希望的。如果我们尝试一下,我们可以看到:

abline(lm(Rocket ~ Datum, data = spaceData), col = "red")

因此,通过对这些数据进行线性回归,我们可以预测火箭的价格将在 2036 年 5 月 13 日降至零。显然这是无稽之谈。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-13
    • 2017-02-04
    • 1970-01-01
    • 1970-01-01
    • 2013-03-15
    • 2018-02-26
    • 1970-01-01
    • 2016-05-24
    相关资源
    最近更新 更多