【问题标题】:R linear regression issue : lm.fit(x, y, offset = offset, singular.ok = singular.ok, ...)R线性回归问题:lm.fit(x,y,offset = offset,singular.ok =singular.ok,...)
【发布时间】:2012-12-07 04:18:10
【问题描述】:

我尝试使用 R 进行回归。 我有以下代码在导入 CSV 文件时没有问题

    dat <- read.csv('http://pastebin.com/raw.php?i=EWsLjKNN',sep=";")
dat # OK Works fine
Regdata <- lm(Y~.,na.action=na.omit, data=dat)
summary(Regdata)

但是,当我尝试回归时,它不起作用。我收到一条错误消息:

Erreur dans lm.fit(x, y, offset = offset, singular.ok = singular.ok, ...) : 
  aucun cas ne contient autre chose que des valeurs manquantes (NA)

我所有的 CSV 文件都是数字,如果“单元格”为空,我的值为“NA”。有些列不是空的,而其他一些行有时是空的,带有 NA 值......

所以,我不明白为什么我会收到错误消息,即使是:

na.action=na.omit

PS:CSV 的数据可在以下位置获得: http://pastebin.com/EWsLjKNN

【问题讨论】:

标签: r linear-regression lm


【解决方案1】:

您收到此错误消息是因为您的所有数据框行都至少包含一个缺失值。例如,可以使用以下代码进行检查:

 apply(data,1,function(x) sum(is.na(x)))
 [1] 128 126  82  78  73  65  58  34  31  30  28  30  20  21  12  20  17  16  12  42  50 128

因此,当您使用lm()na.action=na.omit 运行回归时,所有数据框行都将被删除,并且没有适合回归的数据。

但这不是主要问题。如果您提供的数据包含您拥有的所有信息,那么您正在尝试应用包含 165 个自变量(X 变量)的回归,而只有 22 个观察值。自变量数必须小于观察数。

【讨论】:

  • 您好,谢谢您的回答,如果我知道我需要两个条件。首先是行多于列。二是没有缺失值。如果只有一个缺失值,则模型不好。是你的意思吗?
  • @Swiss1200 您可能有一些缺失值,它们的数量将取决于您拥有的观察次数。但是您必须检查完整观察的数量(没有缺失值的行)大于自变量(列)的数量
  • 您能解释一下apply(data,1,function(x) sum(is.na(x))) 的作用吗?我的数据框中没有NA,但是`apply(data,1,function(x) sum(is.na(x)))`给了我6 6 ... 6
  • @JayWong 它计算缺失值的数量。如果您得到 6,则应该缺少一些值
【解决方案2】:

我相信我可以对此进行一些澄清,因为我亲身经历了这一点,这就是我在这里的原因 - 除了我的问题是 gls(广义最小二乘模型)与标准线性模型。一些类似的逻辑“可能”适用于此处或类似情况。

到目前为止,我不反驳任何人所说的任何话。人们对观察的看法以及 R 对这些事物的看法可能存在一些混淆。

假设您有 160 多个自变量。假设您有一个给定的来源,所有数据都来自该来源。您从文件、数据库等中导入它。假设您有相同数量的响应变量或满足 R 的东西以用于回归分析。

R 会告诉您您有 2 个观察结果。现在,如果您从其他来源以完全相同的方式获得了类似的数据,那么如果您在 RStudio 中查看您的全局环境,您将获得 3 个观察结果。

我之所以提到这一点,是因为数学意义上的“观察”一词(正如这里使用的那样)是完全可以接受的。就 R 而言,它以多种方式看待观察。

那是我遇到类似问题的一个重要原因——它告诉我我缺少值、na.omit this、na.action that 等等。当我查看 OrchardSpray 演示时,我查看了我的自己的方法,我想通了。

关键是我们如何感知数据中的“观察”是一回事。 R 有另一个术语,它吐出错误消息的方式可能会引起额外的混乱。

明白我的意思吗?

【讨论】:

    猜你喜欢
    • 2014-12-12
    • 1970-01-01
    • 2020-09-09
    • 2013-04-20
    • 1970-01-01
    • 2018-09-26
    • 2020-08-23
    • 1970-01-01
    • 2020-01-27
    相关资源
    最近更新 更多