2012-12-19 116 views
4

我尝试用R. 回归我有进口没有问题下面的代码CSV文件ř线性回归问题:lm.fit(X,Y,偏移=偏移,singular.ok = singular.ok,...)

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”值。一些列不是空的和其他一些行有时witht NA值空...

所以,我不明白为什么我报复的错误消息:

na.action=na.omit 

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

+0

您可能想看看Faraway的(免费!)书:http://cran.r-project.org/doc/contrib/Faraway-PRA.pdf –

+0

非常感谢建议的书是exactely什么我需要;) – S12000

回答

5

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

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个观测值。自变量的数量必须少于观测值的数量。

+0

我的想法确切。 –

+0

你好,谢谢你的回答,如果我明白我需要两个条件。首先是有更多的行比列。其次是获得没有缺失的价值。如果有一个单一的缺失值,模型不好。这是你的意思吗? – S12000

+0

@ Swiss1200你可以有一些缺失的值,他们的数量将取决于你有多少观察。但是你必须检查完整的观测值(没有缺失值的行)的数量是否大于自变量的数量(列) –

-1

我相信我可以增加一点清晰度,因为我亲身体验过这一点,这就是为什么我在这里 - 除了我的问题是与gls(基因最小二乘模型)对比标准linaer模型。有些人喜欢逻辑“可能”适用于此处或类似的情况。

我不反驳任何人迄今说。对于人们认为这是一种观察的方式可能存在一些混淆,以及R对这些事情的看法。

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

R将告诉你,你有2个观察。现在,如果您喜欢从其他来源以相同的方式获得数据,那么如果您在全球环境中查看RStudio,则有3个观测值。

我之所以提到这一点,是因为“观察”在数学意义上(因为它是被这里使用)是完全可以接受的。在R的术语中,它以多种方式观察观察结果。

这对我曾经喜欢过的一个问题有很大的贡献 - 它告诉我我缺少了值,na.omit这个,na.action等等。当我看着OrchardSpray演示,并且我审查了我自己的方法论,我明白了。

问题的关键是在于我们如何在数据percieve的“观察”是一两件事。 R有它的另一个术语,并且它吐出错误信息的方式可能会导致更多的混淆。

明白我的意思吗?