1

パッケージ「MuMIn」がインストールされているときに predict.gls を使用すると、エラー メッセージが表示されます。

次の (例 1) が機能します。

### EX. 1

library(nlme)

# example code from https://stat.ethz.ch/R-manual/R-devel/library/nlme/html/predict.gls.html

fm1 <- gls(follicles ~ sin(2*pi*Time) + cos(2*pi*Time), Ovary,
           correlation = corAR1(form = ~ 1 | Mare))
newOvary <- data.frame(Time = c(-0.75, -0.5, 0, 0.5, 0.75))
predict(fm1, newOvary)

# [1]  9.441686 13.116003 11.316793 13.116003 14.991110
# attr(,"label")
# [1] "Predicted values"

ただし、次の (Ex. 2) は、library(MuMIn) 行のみが Ex. と異なるにもかかわらず、エラー メッセージが表示されます。1:

### EX. 2

library(nlme)
library(MuMIn) # (This is the only thing different from Ex. 1)

# example code from https://stat.ethz.ch/R-manual/R-devel/library/nlme/html/predict.gls.html

fm1 <- gls(follicles ~ sin(2*pi*Time) + cos(2*pi*Time), Ovary,
           correlation = corAR1(form = ~ 1 | Mare))
newOvary <- data.frame(Time = c(-0.75, -0.5, 0, 0.5, 0.75))
predict(fm1, newOvary)

# Error in eval(predvars, data, env) : object 'follicles' not found

なぜこれが事実なのか誰にも分かりますか?MuMIN をインストールした状態で「predict」を使用すると非互換性があるようです

興味深いことに、predict.gls を直接呼び出す次の (例 3) は、それを機能するように復元します。

### EX. 3

library(nlme)
library(MuMIn) 

# example code from https://stat.ethz.ch/R-manual/R-devel/library/nlme/html/predict.gls.html

fm1 <- gls(follicles ~ sin(2*pi*Time) + cos(2*pi*Time), Ovary,
       correlation = corAR1(form = ~ 1 | Mare))
newOvary <- data.frame(Time = c(-0.75, -0.5, 0, 0.5, 0.75))
nlme:::predict.gls(fm1, newOvary) # (This is the only thing different from Ex. 2)

# [1]  9.441686 13.116003 11.316793 13.116003 14.991110
# attr(,"label")
# [1] "Predicted values"

ただし、「nlme:::predict.gls」を使用することはお勧めできないことを読みました。「:::」は、直接利用できるように意図されていない内部関数にアクセスするため、「危険」になる可能性があるためです。

これが私の現在の R.version 出力です。

platform x86_64-w64-mingw32
arch x86_64
os mingw32
system x86_64, mingw32
status
major 3
minor 4.0
year 2017
month 04
day 21
svn rev 72570
language R
version.string R version 3.4.0 (2017-04-21) ニックネーム You Stupid Darkness

ちなみに、古いバージョンの R を使用していた古いコンピューターでは、この問題は発生しませんでした。友人に Ex を試してもらいました。2 彼のコンピューターで、エラーメッセージも生成されました。

例のエラーメッセージの理由についての洞察。2、および例の回避策に頼らずに修正する方法。3、よろしくお願いします!

4

2 に答える 2

0

この問題を回避する方法は、データセットに応答変数MuMIn:::predict.glsを追加する関数を使用することです。ランダムな値を応答変数に入力できますが、それらは計算には使用されません。newdatafollicles

library(nlme)
library(MuMIn)

fm1 <- gls(follicles ~ sin(2*pi*Time) + cos(2*pi*Time), Ovary,
                   correlation = corAR1(form = ~ 1 | Mare))
newOvary <- data.frame(Time = c(-0.75, -0.5, 0, 0.5, 0.75), follicles=rep(1,5))
predict(fm1, newOvary)

############
[1]  9.441686 13.116003 11.316793 13.116003 14.991110
attr(,"label")
[1] "Predicted values"

これらの推定値は、以下によって与えられるものとまったく同じです。nlme:::predict.gls

nlme:::predict.gls(fm1)
[1]  9.441686 13.116003 11.316793 13.116003 14.991110
attr(,"label")
[1] "Predicted values"
于 2017-05-24T20:48:00.010 に答える