2011-10-20 26 views
5

Se voglio utilizzare la funzione boot() dal pacchetto di R boot per calcolare la significatività del coefficiente di correlazione di Pearson tra i due vettori, devo fare in questo modo:pacchetto boot in R semplice assistenza

boot(re1, cor, R = 1000) 

dove re1 è una matrice a due colonne per questi due vettori di osservazione? Non riesco a capire bene perché cor di questi vettori è 0.8, ma la funzione sopra riportata restituisce -0.2 come t0.

+4

[R FAQ: Come posso generare statistiche di bootstrap in R] (http://www.ats.ucla.edu/stat/r/faq/boot.htm) + ricordare che un test di ipotesi nulla è significativo se l'IC corrispondente non contiene il valore della statistica test sotto il null. – caracal

risposta

7

Solo per enfatizzare l'idea generale sul bootstrap in R, sebbene @caracal abbia già risposto alla sua domanda attraverso il suo commento. Quando si utilizza boot, è necessario disporre di una struttura dati (solitamente una matrice) che può essere campionata per riga. Il calcolo della statistica viene solitamente eseguito in una funzione che riceve questa matrice di dati e restituisce la statistica di interesse calcolata dopo il ricampionamento. Quindi, si chiama boot() che si occupa di applicare questa funzione ai replicati R e di raccogliere i risultati in un formato strutturato. Questi risultati possono essere valutati utilizzando a turno boot.ci().

Ecco due esempi di lavoro con lo studio low birth baby nel pacchetto MASS.

require(MASS) 
data(birthwt) 
# compute CIs for correlation between mother's weight and birth weight 
cor.boot <- function(data, k) cor(data[k,])[1,2] 
cor.res <- boot(data=with(birthwt, cbind(lwt, bwt)), 
       statistic=cor.boot, R=500) 
cor.res 
boot.ci(cor.res, type="bca") 
# compute CI for a particular regression coefficient, e.g. bwt ~ smoke + ht 
fm <- bwt ~ smoke + ht 
reg.boot <- function(formula, data, k) coef(lm(formula, data[k,])) 
reg.res <- boot(data=birthwt, statistic=reg.boot, 
       R=500, formula=fm) 
boot.ci(reg.res, type="bca", index=2) # smoke 
+1

Ho provato questo e ha funzionato con la funzione di tipo 'cor (vec [i,]) [1,2]', ma ora non sono sicuro di come interpretare i risultati, e quale distorsione nell'output di avvio significa. Grazie. –

+0

Intendi questo [pregiudizio] (http://bit.ly/vEqbCa)? – chl