我尝试使用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文件都是数字,如果"cell“是空的,我就有"NA”值。一些列不为空,而另一些行有时在NA值下为空...
所以,我不明白为什么我会收到一条错误消息:
na.action=na.omitPS: CSV的数据可在以下网址获得:http://pastebin.com/EWsLjKNN
发布于 2012-12-20 02:42:59
您会收到此错误消息,因为您的所有数据框行至少包含一个缺失值。例如,可以使用以下代码进行检查:
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因此,当您使用wit、lm()和na.action=na.omit运行回归时,数据框的所有行都会被删除,并且没有适合回归的数据。
但这不是主要问题。如果您提供的数据包含您拥有的所有信息,那么您正在尝试应用165个自变量(X变量)的回归,而只有22个观测值。自变量的数量必须少于观察值的数量。
发布于 2015-04-20 14:37:55
我相信我可以补充一点清楚,因为我亲身经历了这一点,这就是为什么我在这里-除了我的问题是gls (泛化最小二乘模型)与标准linaer模型。一些类似的逻辑“可能”适用于这里-或者在类似的情况下。
到目前为止,我不会反驳任何人所说的话。可能会有一些混淆,人们认为这是一种观察,以及R理解这些东西的方式。
假设你有160+自变量。假设你有一个单一的给定来源,你的所有数据都来自这个来源。您可以从文件、数据库等导入它。假设您有相同数量的响应变量或满足R的内容,以便进行回归分析。
R会告诉你,你有两个观察值。现在,如果你有类似的数据以同样的方式从另一个来源获得,如果你在你的全球环境中查看RStudio,你会有3个观察值。
我提到这一点的原因是因为在数学意义上的术语“观察”(正如这里使用的那样)是完全可以接受的。在R的术语中,它以多种方式看待观察结果。
这是我遇到的一个问题的一个很大的原因-它告诉我我有价值缺失,na.omit这个,na.action那个等等。WHen我看了OrchardSpray演示,我回顾了我自己的方法,我找到了它。
重点是,我们如何在数据中进行“观察”是一回事。R对此有另一个术语,它发出错误消息的方式可能会造成额外的混乱。
懂得我的意思吗?
https://stackoverflow.com/questions/13958722
复制相似问题