我尝试用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
答案 0 :(得分:6)
您收到此错误消息,因为所有数据框行至少包含一个缺失值。例如,可以使用以下代码进行检查:
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个观察值。独立变量的数量必须小于观察数量。
答案 1 :(得分:-2)
我相信我可以为此增加一些清晰度,因为我亲身经历过这一点,这就是为什么我在这里 - 除了我的问题是gls(基因化最小二乘模型)与标准的linaer模型。有些人喜欢逻辑&#34;可能&#34;适用于此处或类似情况。
我不反驳任何人到目前为止所说的话。人们可能会对观察的内容以及R对这些事物的看法感到困惑。
假设你有160多个自变量。假设您有一个给定的来源,其中包含您的所有数据。您可以从文件,数据库等导入它。假设您有相同数量的响应变量或满足R的内容用于回归分析。
R会告诉你有2个观察结果。现在,如果你想从另一个来源以相同的方式获得数据,那么如果你在全球环境中查看RStudio,你就有3个观察结果。
我提到这个的原因是因为术语&#34;观察&#34;在数学意义上(因为它在这里被使用)是完全可以接受的。在R方面,它以多种方式观察观察。
这是我遇到的一个问题的重要贡献者 - 它告诉我我的价值观缺失了,na.omit这个,na.action等等。当我看到OrchardSpray演示时,我回顾了我的自己的方法论,我想通了。
重点是我们如何完成观察&#34;在基准是一回事。 R有另一个术语,它吐出错误信息的方式会引起额外的混淆。
明白我的意思?