2013-12-10 21 views
7

Per favore, per favore! Apprezzo qualsiasi aiuto! Grazie!Ripetere la funzione di ricampionamento per 1000 volte? Usando lapply?

Ho problemi a ripetere facendo ricampionare per 1000 volte. Ho provato a usare replicate() per farlo ma non funziona. C'è qualche altro metodo per farlo? Qualcuno può mostrarmi se questo può essere fatto usando lappy? seguito è il mio codice:

#sampling 1000 betas0 & 1 (coefficients) from the data 
get.beta=function(data,indices){ 
    data=data[indices,] #let boot to select sample 
    lm.out=lm(y ~ x,data=data) 
    return(lm.out$coefficients) 
} 
n=nrow(data) 
get.beta(data,1:n) 

bootcoe=boot(data,get.beta,R=1000) #generate 1000 random samples 
head(bootcoe$t) #look at the betas 

Dal codice di cui sopra posso ottenere 1000 betas0 & 1 da casuale campionamento dei dati. E vorrei farlo 1000 volte per ottenere diversi beta. Come dovrei farlo oltre a replicare()?

+0

Così 'replicando (1000, {} your_codez)' non funziona? –

+0

ya, ho provato rep (1000, function()) ma non riesco a ottenere il risultato. – user2978129

+0

Non ho detto di usare 'function()'. Dovresti usare le parentesi graffe. –

risposta

19

Questo è più di un commento esteso in cui dimostro che replicate dovrebbe funzionare. Ecco un esempio di CLT. Basta sostituire le tue linee tra le parentesi graffe.

x <- replicate(1000, { 
    mm <- runif(10) 
    mean(mm) 
    }) 
hist(x) 

enter image description here

+0

Grazie a @Roman. Quindi nel mio caso, che dovrei inserire all'interno di {}? Ho provato a mettere get.beta ma dà errori, e il bootcoe funziona da molto tempo. Mettere sia get.beta che bootcoe restituisce un errore. – user2978129

+0

Inoltre, perché è presente la media (mm) alla fine? Grazie ! – user2978129

+0

@ user2978129 l'ultima riga è il risultato della tua funzione. Dovresti mettere tra parentesi le cose che vuoi valutare .... 'n volte. –

Problemi correlati