2013-12-10 14 views
7

Lütfen dışarı çıkın! Herhangi bir yardım için minnettarım! Teşekkürler!Yeniden örnekleme işlevini 1000 kez tekrarlayın? Lapa kullanmadan mı?

Tekrar tekrar örnekleme yaparken 1000 kez sorun yaşıyorum. Bunu yapmak için replicate() kullanmayı denedim, ancak çalışmıyor. Bunu yapmak için başka bir yöntem var mı? Bu, belki de bunu lapply kullanarak yapılabilir mi gösterebilir? Ben rastgele verileri örnekleyerek 1000 betas0 & 1 alabilirsiniz

#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 

Yukarıdaki kod Gönderen: Aşağıdaki benim kodudur. Ve farklı betalar elde etmek için bunu 1000 kez yapmak istiyorum. Bunu replicate() dışında nasıl yapmalıyım?

+0

Yani 'çoğaltmak (1000, {your_codez})' çalışmıyor? –

+0

ya, rep (1000, function()) çalıştım ama sonuç alamıyorum. – user2978129

+0

'function()' kullanmayı söylemedim. Kıvırcık parantez kullanmalısınız. –

cevap

19

Bu, replicate'un çalışması gerektiğini gösterdiğim genişletilmiş bir yorumdur. İşte bir CLT örneği. Sadece çizgilerinizi küme parantezleri arasında ne değiştirin.

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

enter image description here

+0

Teşekkürler @Roman. Yani benim durumumda, {}? Ben get.beta koymak çalıştı ama hatalar verir ve bootcoe uzun bir süre için çalışır. Hem get.beta hem de bootcoe'ları koymak tekrar hata veriyor. – user2978129

+0

Ayrıca, neden sonunda ortalama (mm) var? Teşekkürler ! – user2978129

+0

@ user2978129 son satır, işlevin sonucu. Değerlendirmek istediğiniz şeyleri parantez içine koymalısınız .... 'n' times. –

İlgili konular