Ho appena aggiunto un metodo che riepiloga (o più precisamente, tidies) "ridgelm"
oggetti nel mio pacchetto broom. Questo ha la forma di due generici S3: tidy
e glance
. Puoi installarlo con devtools::install_github("dgrtwo/broom")
(anche se dovrai prima installare devtools
).
Come esempio, regoliamo una regressione cresta:
library(MASS)
names(longley)[1] <- "y"
fit <- lm.ridge(y ~ ., longley, lambda = seq(0.001, .05, .001))
La funzione tidy
fornisce un frame di dati che mostra ciascuna combinazione di lambda e la durata stimata:
library(broom)
td <- tidy(fit)
head(td)
## lambda GCV term estimate
## 1 0.001 0.1240 GNP 23.02
## 2 0.002 0.1217 GNP 21.27
## 3 0.003 0.1205 GNP 19.88
## 4 0.004 0.1199 GNP 18.75
## 5 0.005 0.1196 GNP 17.80
## 6 0.006 0.1196 GNP 16.99
Mentre il glance
funzione crea un riepilogo di una riga, in particolare le scelte di lambda con vari metodi:
g <- glance(fit)
g
## kHKB kLW lambdaGCV
## 1 0.006837 0.05267 0.006
.515.053.691,36321 milioni
Questo è utile perché rende facile tracciare ed esplorare i dati da soli, piuttosto che basarsi su plotter di Massa:
library(ggplot2)
ggplot(td, aes(lambda, estimate, color = term)) + geom_line()
# plot of GCV versus lambda
ggplot(td, aes(lambda, GCV)) + geom_line() +
geom_vline(xintercept = g$lambdaGCV, col = "red", lty = 2)
Per ulteriori informazioni su questi metodi , vedere ?ridgelm_tidiers
oppure vedere le vignette del pacchetto per ulteriori informazioni sui metodi tidy
e glance
in generale.
Invece di colpo d'occhio Puoi usare la funzione integrata 'seleziona' - funziona allo stesso modo. La funzione ggplot funziona allo stesso modo di plot.lmridge normale (ma ovviamente sembra più pritty). –
@MarcinKosinski: 'select' non funziona allo stesso modo perché * stampa * i valori selezionati invece di restituirli (quindi non c'è modo di salvarli, estrarli, combinarli o aggiungerli a un grafico, ad esempio). 'plot.ridgelm' produce un grafico simile, ma vale la pena notare che non ha una legenda o un modo per scegliere i colori. (In realtà poiché 'plot.ridgelm' non passa lungo il suo' ... 'in' matplot', hai una capacità limitata di personalizzarlo del tutto). –
Ok ho capito. Grazie :) –