所以我想使用R来计算回归。问题是,我想用对数转换变量来计算回归。这是我想要做的:
reg1 <- lm(y~x+z+u+log(p))
现在,由于您无法记录0,因此会弹出以下消息:
Error in lm.fit(x, y, offset = offset, singular.ok = singular.ok, ...) :
NA/NaN/Inf in 'x'
即使有NaN,我怎样才能计算回归(在我的情况下,它们仅针对变量p的前几个观察值产生)?非常感谢
Date y x z u p
25.06.2009 0.582 1.145 0.603 26.36 0
26.06.2009 0.604 1.12 0.61 25.93 0
29.06.2009 0.647 1.108 0.647 25.35 0
30.06.2009 0.597 1.099 0.669 26.35 0
01.07.2009 0.604 1.085 0.633 26.22 0
02.07.2009 0.54 1.072 0.63 27.95 0
06.07.2009 0.543 1.048 0.57 29 0
07.07.2009 0.512 1.044 0.567 30.85 0
08.07.2009 0.496 1.029 0.533 31.3 0
09.07.2009 0.487 1.018 0.515 29.78 23
10.07.2009 0.482 1.007 0.504 29.02 66
13.07.2009 0.473 0.996 0.503 26.31 162
14.07.2009 0.471 0.985 0.503 25.02 235
15.07.2009 0.472 0.979 0.492 25.89 585
16.07.2009 0.441 0.969 0.486 25.42 668
17.07.2009 0.431 0.954 0.461 24.34 1080
20.07.2009 0.438 0.944 0.451 24.4 1883
21.07.2009 0.435 0.937 0.451 23.87 2398
编辑为了让自己更清楚,我只想省略因为回归的日志转换而生成的NaN。因为如果变量p的值为零,则实际上意味着当天没有观察值。我试过了nan.action=nan.exclude
。但这种情况似乎有效。 THX
答案 0 :(得分:1)
如果观察很少,那么快速排除p = 0的记录 例如
lm(y ~ log(p), train, subset = p>0)