1. ホーム
  2. r

[解決済み] R plot.gam エラー "Error in 1:object$nsdf : argument of length 0".

2022-03-03 07:11:47

質問

gamパッケージで作成したgamオブジェクトをRでプロットしようとしています。次のページで報告されているのと同じエラーが発生します。 1:object$nsdf : plot.gam を使用したときの長さ0の引数でエラーが発生しました。 . しかし、そこで見つかった解決策、最新バージョンにアップデートする(と思う)、は私のために動作していません。私はR 3.3.1, gam 1.12, mgcv 1.8.12 (mgcvはplot.gam関数があるところです)を実行しています。

残念ながら、私が扱っているデータを共有することはできません。しかし、以下のコード(Intro. to Statistical Learning with Rのp.294から直接引っ張ってきたもの)は、私にとってはエラーを再現するものです。

library(gam)
library(ISLR) # contains the Wage dataset used here
gam.mod <- gam(wage ~ s(year, 4) + s(age, 5) + education, data = Wage)
plot(gam.mod)

何が起こっているのか、どうすれば直るのか、誰か知っていますか?

ありがとうございました。

解決方法は?

それでもこのメッセージが表示される場合は、以下のように mgcvgam パッケージを最新バージョンに更新しました。大きな変更点は gam パッケージは、2018年2月に 関数plot.gamが見つかりませんでした。 . これは、GAMをフィットさせるために gam パッケージは現在 "Gam"クラスを持っており、たとえ mgcv パッケージがロードされます。 plot は選択されません。 mgcv::plot.gam をプロットしてください。

しかし、1つのRセッションに両方のパッケージがあるのは、やはり安全ではありません。そこで、2016年に行われた以下の提案が今でも強く推奨されています。


ご提案

RのセッションがGAM解析を行ってもよいかどうかをチェックするためのトイ関数があるとよいかもしれません。

GAM_status <- function () {
  if (all(c("gam", "mgcv") %in% .packages())) print("Not OK")
  else print("OK")
  }


nsdf 厳密な自由度の数 で独占的に使用されている用語です。 mgcv . おっしゃるとおりです。 mgcv は、その plot.gam という関数があります。

問題は、あなたが gammgcv という、互換性のない2つのパッケージを同時にRのセッションで使用することができます。あなたは gam.modgam::gam でプロットした後、そのモデルを mgcv::plot.gam .

を使用すると、通常、何が正しいのかに注意してください。 :: はここで効果を失います。通常、2つのパッケージが相互にマスクし合う関数を持つ場合、そのパッケージの :: が救済策になります。しかし mgcvgam というのは、全く不可能です。そこで提案ですが、もし gam には決して触れないでください。 mgcv をRのセッションで使用することもできますし、その逆も可能です。

そこで、新しいRセッションを立ち上げて、次のようにすると、すべてがうまくいくのです!

library(gam)
library(ISLR) # contains the Wage dataset used here
gam.mod <- gam(wage ~ s(year, 4) + s(age, 5) + education, data = Wage)
par(mfrow = c(2,2)); plot(gam.mod)


ご回答ありがとうございました。実際に読み込んだことはないのですが mgcv の依存関係だとばかり思っていました。 gam . 私は新しいRセッションを開始し、あなたが提供したコードが動作しました。私は、それが実際にあることを発見しました。 car ライブラリが同じ問題を引き起こしています。

mgcvgam は互いに依存しませんが mgcv よりも人気があります。 gam 多くのパッケージは mgcv 例えば car :

car: Companion to Applied Regression

Functions and Datasets to Accompany J. Fox and S. Weisberg, An R  Companion to
Applied Regression, Second Edition, Sage, 2011.
Version:    2.1-3
Depends:    R (≥ 3.2.0)
Imports:    MASS, mgcv, nnet, pbkrtest (≥ 0.4-4), quantreg, grDevices, utils,
            stats, graphics

Imports"フィールドに注目してください。 library(car) は、これらのパッケージを同時に読み込みます。