それでもこのメッセージが表示される場合はmgcv
、gam
パッケージを最新バージョンに更新する必要があります。gam
2018 年 2 月にパッケージに大きな変更が加えられました:関数 plot.gam が見つかりませんでした。これは、gam
パッケージに適合する GAM が「Gam」クラスを持つようになり、mgcv
パッケージがロードされていても、それをプロットすることをplot
選択しないことを意味します。mgcv::plot.gam
ただし、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
元です。
問題は、R セッションにgam
とmgcv
の 2 つの互換性のないパッケージが同時に存在することです。でフィットしますgam.mod
がgam::gam
、モデルを でプロットしmgcv::plot.gam
ます。
注意してください、使用することによって通常正しいことは、::
ここでは効果を失います。通常、2 つのパッケージが相互にマスクされた機能を持っている場合::
は、これが解決策です。しかし、mgcv
とのgam
場合、これは完全に不可能です。したがって、私の提案は、を使用する場合は、R セッションにgam
触れないことmgcv
です。逆もまた同様です。
そこで、新しい 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
実際に同じ問題を引き起こしているのはライブラリであることがわかりました。
mgcv
とgam
は互いに依存していませんが、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
「インポート」フィールドに注意してくださいlibrary(car)
。これらのパッケージが同時に読み込まれます。