【问题标题】:Invalid type for the dependent variable in lm() in R programmingR编程中lm()中因变量的类型无效
【发布时间】:2016-05-15 10:29:50
【问题描述】:

这是一个 R 问题,而不是统计问题。

我正在尝试在 R 中对一组 20 个自变量和 1 个因变量执行多元线性回归。 20 个自变量在一个 csv 文件中,1 个因变量在另一个 csv 文件中。每个文件中的每一行对应于一天的一次测量。

我已经设法使用 read.csv(...) 将 20 个自变量导入一个称为“预测器”的(变量?)。然后,我再次使用 read.csv(...) 将相关测量值导入一个名为“dependent”的(变量?)。

但是当我使用 lm(依赖~X1+X2+X3+X4+X5+X6+X7+X8+X9+X10+X11+X12+X13+X14+X15+X16+X17+X18+X19+X20 )

(注意:X_1,...,X20 是该 csv 文件中预测变量的列标题)

我得到错误:

model.frame.default 中的错误(公式 = 依赖 ~ X1 + X2 + X3 + X4 + X5 + : 变量“依赖”的无效类型(列表)

我不明白出了什么问题?

预测器文件看起来像(但最多 X20)

依赖的 csv 文件看起来像

【问题讨论】:

  • 尝试将因变量与自变量一起添加为数据框中的列。
  • 从你的错误来看,我会说依赖是一个列表。如果您有一个包含 21 列的数据框会更好:您的 20 个 X 和因变量。然后,运行回归将非常容易。您可以查看 cbind 以附加 2 个数据帧
  • 向我们展示您在 R 中使用的数据结构(导入后)。来自 excel 的数据很好,但并不能说明全部情况。有关如何呈现数据的信息,请参阅stackoverflow.com/questions/5963269/…(提示:str())。
  • @etienne 我认为附加两个数据帧听起来很有希望。但是,它会影响原始 csv 文件吗?我宁愿不这样做,因为我有犯错的风险。依赖文件也没有标题,我应该手动修复它吗?
  • @Jurassic:请发dput(head(dependent,20))的内容

标签: r regression linear-regression


【解决方案1】:

让我们为 df 获取一些随机数据:

df<-replicate(5,rnorm(20))
names<-paste0('X',1:5)
colnames(df)<-names

依赖已经在 cmets 中给出,所以我们可以使用cbind 来创建一个数据框:

newDf<-cbind(dependent,df)

head(newDf)
#    dependent           X1         X2         X3           X4          X5
# 1 0.49295341 -1.728304515  0.9902622  0.6164557  0.904435464 -0.65801021
# 2 0.04331689  0.641830028  2.3829267  0.6165678  0.002691661  0.85520221
# 3 0.53106346 -1.529310531  0.6644159 -1.6921015 -1.176692158  1.15293623
# 4 0.06983530  0.001683688  0.2073812  0.3687421 -1.318220727  0.27627456
# 5 0.74574779  0.250247821 -2.2106331  0.9678592 -0.592997366  0.14410466
# 6 0.56349179  0.563867390  2.6917140  1.2765787  0.797380501 -0.07562508

然后我们可以运行回归:

lm(dependent~.,newDf) # . selects all the other columns of newDf

# Call:
# lm(formula = dependent ~ ., data = newDf)

# Coefficients:
# (Intercept)           X1           X2           X3           X4           X5  
#     0.50522     -0.09975     -0.03040      0.06431     -0.00398     -0.09596 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-21
    • 2020-03-21
    • 2018-01-20
    • 2015-05-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多