3

特定の方程式の重回帰を使用して回帰係数を計算しています:

   w=c(1,5,4,5,4,8,7,9,2,4,5,7)
   g=c(1,5,2,5,4,8,7,9,3,5,6,6)
   k=c(1,5,2,5,4,8,7,9,2,4,5,7)
   m=c(1,5,2,5,4,9,8,10,3,5,6,8)
                     #w=a+bg+b1k+b2m : simple equation
  model1=lm(w~g+k+m)### worked fine
                 #w=a+b(log(1-g/m))+b1k+b2m  :my real equation
  model2=lm(w~(log(1-k/m))+k+m)

エラー:

   Error in lm.fit(x, y, offset = offset, singular.ok = singular.ok, ...) : 
  NA/NaN/Inf in 'x'
4

3 に答える 3

4

私が行ったことの 1 つは、x <= 0 の場合に log をゼロに再定義することです。ただし、これにより意味のある結果が得られる場合とそうでない場合があります。

R>log <- function(x) ifelse(x <= 0, 0, base::log(x))
R>  model2=lm(w~(log(1-k/m))+k+m)
R>summary(model2)

Call:
lm(formula = w ~ (log(1 - k/m)) + k + m)

Residuals:
        Min          1Q      Median          3Q         Max 
-0.87052532 -0.08901156 -0.05797844  0.04966100  1.32552690 

Coefficients:
               Estimate Std. Error  t value Pr(>|t|)
(Intercept)   1.0665775  0.5783614  1.84414  0.10239
log(1 - k/m) -1.1304104  1.0425403 -1.08428  0.30983
k             2.8191418  1.5634105  1.80320  0.10902
m            -2.0151940  1.6743261 -1.20359  0.26315

Residual standard error: 0.5756576 on 8 degrees of freedom
Multiple R-squared:  0.9564806, Adjusted R-squared:  0.9401609 
F-statistic: 58.60876 on 3 and 8 DF,  p-value: 8.672263e-06
于 2013-10-23T23:55:18.947 に答える
3

問題は次のとおりです。

> log(1-k/m)
 [1]      -Inf      -Inf      -Inf      -Inf      -Inf -2.197225 -2.079442 -2.302585 -1.098612 -1.609438 -1.791759 -2.079442
于 2013-10-23T14:49:33.150 に答える