In plot.gam()
notiamo che plot()
è chiamato x$smooth[[i]]
, che è un oggetto della classe:
class(x$smooth[[i]])
[1] "tprs.smooth" "mgcv.smooth"
Ci è un metodo plot()
per la classe "mgcv.smooth"
ed è questo che viene utilizzato per la trama nel caso generale. ?plot.gam
menziona che questo è il metodo predefinito per la maggior parte leviga, ma ci sono metodi specifici per determinati tipi di liscio supportati da gam()
(dalla sezione Dettagli di ?plot.gam
:
For smooth terms ‘plot.gam’ actually calls plot method functions
depending on the class of the smooth. Currently random effect and
Markov random field smooths have special methods, the rest use the
defaults described below.
Per qualche motivo, methods()
è non trovando questi metodi, ma esistono:
> mgcv:::plot.mgcv.smooth
function (x, P = NULL, data = NULL, label = "", se1.mult = 1,
se2.mult = 2, partial.resids = FALSE, rug = TRUE, se = TRUE,
scale = -1, n = 100, n2 = 40, pers = FALSE, theta = 30, phi = 30,
jit = FALSE, xlab = NULL, ylab = NULL, main = NULL, ylim = NULL,
xlim = NULL, too.far = 0.1, shade = FALSE, shade.col = "gray80",
shift = 0, trans = I, by.resids = FALSE, scheme = NULL, ...)
{
....
Questo può essere correlato ad un bug nel methods()
che significava plot.function
non è stato mostrare n nella lista e la mia R attuale potrebbe non incorporare quella correzione. Questo metodo dovrebbe essere mostrato normalmente, e il consiglio generale in tali situazioni sarebbe quello di identificare la classe dell'oggetto (come ho mostrato sopra) e quindi usare methods()
e funzioni simili (es. showMethods()
) per identificare se metodi specifici disponibili per la classe (es.) dell'oggetto restituito.
Solo una parte. . . quando si specificano i parametri in una chiamata di funzione, è possibile troncare il nome del parametro su qualsiasi cosa che non sia ambigua. Quindi, se c'è un solo parametro che _startizza_ con un 'P' nella firma, è possibile specificare tale parametro con' P = '. Questo non risponde alla tua domanda, quindi il motivo è un semplice commento. – adamleerich