2015-04-08 79 views
1

所以我想用R計算迴歸。問題是,我想用對數轉換變量計算迴歸。這就是我要做的:處理迴歸中的Na/NaN

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

+1

這可能更多的是比的R編程的問題一個統計問題,而是怎麼樣添加一個小价值p?例如0.000000000000000000001? –

+3

這不是一個編碼問題。做一些搜索如何在stackexchange網站上處理與日誌轉換有關的統計建議:CrossValidated.com。 –

+0

@ user2633645或只加1,這已經編入函數'log1p' – Gregor

回答

1

如果有極少數的意見,迅速將排除記錄,其中p = 0 例如

lm(y ~ log(p), train, subset = p>0)