Per un semplice esempio, supponiamo che ci siano due modelli di regressione lineare
- Modello 1 ha tre predittori,
x1a
,x2b
, ex2c
- Il modello 2 ha tre predittori dal modello 1 e due predittori aggiuntivi
x2a
ex2b
Esiste un'equazione di regressione della popolazione in cui la varianza della popolazione spiegata è per il Modello 1 e per il Modello 2. La varianza incrementale spiegata dal Modello 2 nella popolazione è ρ 2 ( 2 ) Δ ρ 2 = ρ 2 ( 2 ) - ρ 2 ( 1 )
Sono interessato a ottenere errori standard e intervalli di confidenza per uno stimatore di . Mentre l'esempio riguarda rispettivamente 3 e 2 predittori, il mio interesse di ricerca riguarda una vasta gamma di diversi numeri di predittori (ad esempio, 5 e 30). Il mio primo pensiero è stato di usare \ Delta r ^ 2_ {agg} = r ^ 2_ {agg (2)} - r ^ 2_ {agg (1)} come stimatore e avviarlo, ma non ero sicuro che questo sarebbe essere appropriato. Δ r 2 a d j = r 2 a d j ( 2 ) - r 2 a d j ( 1 )
Domande
- È una ragionevole stimatore ?
- Come si può ottenere un intervallo di confidenza per il cambiamento del quadrato r della popolazione (cioè, )?
- Bootstrapping sarebbe appropriato per il calcolo dell'intervallo di confidenza?
Anche i riferimenti a simulazioni o alla letteratura pubblicata sarebbero i benvenuti.
Codice di esempio
Se aiuta, ho creato un piccolo set di dati di simulazione in R che potrebbe essere usato per dimostrare una risposta:
n <- 100
x <- data.frame(matrix(rnorm(n *5), ncol=5))
names(x) <- c('x1a', 'x1b', 'x1c', 'x2a', 'x2b')
beta <- c(1,2,3,1,2)
model2_rho_square <- .7
error_rho_square <- 1 - model2_rho_square
error_sd <- sqrt(error_rho_square / model2_rho_square* sum(beta^2))
model1_rho_square <- sum(beta[1:3]^2) / (sum(beta^2) + error_sd^2)
delta_rho_square <- model2_rho_square - model1_rho_square
x$y <- rnorm(n, beta[1] * x$x1a + beta[2] * x$x1b + beta[3] * x$x1c +
beta[4] * x$x2a + beta[5] * x$x2b, error_sd)
c(delta_rho_square, model1_rho_square, model2_rho_square)
summary(lm(y~., data=x))$adj.r.square -
summary(lm(y~x1a + x1b + x1c, data=x))$adj.r.square
Motivo della preoccupazione con bootstrap
Ho eseguito un bootstrap su alcuni dati con circa 300 casi e 5 predittori nel modello semplice e 30 predittori nel modello completo. Mentre la stima del campione usando la differenza rettificata r-quadrato era 0.116
, l'intervallo di confidenza boostrapped era per lo più maggiore CI95% (da 0,095 a 0,214) e la media dei bootstrap non era da nessuna parte vicino alla stima del campione. Piuttosto, la media dei campioni boostrapped sembrava essere centrata sulla stima del campione della differenza tra i quadrati r nel campione. Questo nonostante il fatto che stavo usando i quadrati r rettificati del campione per stimare la differenza.
È interessante notare che ho provato un modo alternativo di calcolare come
- calcola la variazione del r-quadrato campione
- regolare la modifica del rettangolo r del campione usando la formula r rettangolo standard
Quando viene applicato ai dati di esempio questo ha ridotto la stima di per , ma gli intervalli di confidenza sembrato opportuno per il metodo che ho citato prima, IC95% (.062, 0,179), con media di .118..082
In generale, sono preoccupato che il bootstrap supponga che il campione sia la popolazione, e quindi stima che la riduzione per overfitting potrebbe non funzionare in modo appropriato.