【问题标题】:How do I generate a regression equation from a dataset in R?如何从 R 中的数据集生成回归方程?
【发布时间】:2019-10-08 17:55:56
【问题描述】:

我已经将一个数据集导入到一个名为“d”的变量中,我想从中生成一个线性函数:

d <- read.table("file_url")

我试过了

lm(d[1] ~ d[2])

但是函数 lm 并不需要列表。这样做的正确方法是什么?

fyi,该文件是一个简单的 txt 文件,由两列数字组成。我希望第二列是自变量,第一列是因变量。

【问题讨论】:

  • 大多数人会创建一个data.frame,对数据框应用所需的任何预处理,然后使用公式中的列名,同时将data 参数中的整个数据框传递给@ 987654325@.
  • 你可以做lm(d[[1]] ~ d[[2]])lm 无法处理列表,但您可以使用正确的索引从列表中提取向量。

标签: r regression linear-regression


【解决方案1】:

我们可以使用名称来创建回归

lm(reformulate(names(d)[2], names(d)[1]), data = d)

一个可重现的例子是

lm(reformulate(names(mtcars)[2], names(mtcars)[1]), data = mtcars)

【讨论】:

  • 我如何使用 90% 的置信区间来估计 d2 与 d1 的变化?
  • @Jaigus 能否请您发布一个带有可重现示例的新问题。从 cmets 不清楚
【解决方案2】:

这是使用基本 R 机制实现此目的的方法:

lm(as.formula(paste0(names(d)[2], "~",names(d)[1])), data = d)

来自lm 参考:

formula 类“formula”的对象(或可以强制到该类的对象):要拟合的模型的符号描述。这 型号规格的详细信息在“详细信息”下给出。 ...

lm 的模型以符号方式指定。一个典型的模型有以下形式 回应~条款

因此,您需要根据规范创建模型字符串并将其转换为公式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-21
    • 2017-11-13
    • 2021-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-19
    相关资源
    最近更新 更多