কেবলমাত্র অন্য একটি রূপ যা কিছুটা সরল, তবে আমি মনে করি গ্রন্থাগারটি স্পষ্টভাবে ব্যবহার না করে বার্তাটি সরবরাহ করুন boot
যা কিছু লোককে এটির সিনট্যাক্সের সাথে বিভ্রান্ত করতে পারে।
আমাদের একটি রৈখিক মডেল রয়েছে: Y= এক্সβ+ + ε, ε ~ এন( 0 ,σ2)
নিম্নলিখিতটি লিনিয়ার মডেলের জন্য একটি প্যারাম্যাট্রিক বুটস্ট্র্যাপ রয়েছে, এর অর্থ হল যে আমরা আমাদের মূল ডেটা পুনরায় নমুনা করি না তবে বাস্তবে আমরা আমাদের লাগানো মডেল থেকে নতুন ডেটা তৈরি করি। অতিরিক্ত হিসাবে আমরা ধরে নিই যে রিগ্রেশন সহগের বুটস্ট্র্যাপড বিতরণβপ্রতিসম হয় এবং এটি অনুবাদ অদম্য। (খুব মোটামুটিভাবে বলছি যে আমরা এর বৈশিষ্ট্যগুলিকে প্রভাবিত করার সাথে এটির অক্ষটি স্থানান্তর করতে পারি) পিছনে ধারণাটি হ'ল এর মধ্যে ওঠানামাβ এর কারণে হয় εএবং অতএব পর্যাপ্ত নমুনাগুলির সাথে তাদের সত্যিকারের বিতরণের একটি ভাল অনুমানের সরবরাহ করা উচিতβ'S। আগের মত আমরা আবার পরীক্ষাএইচ0: 0 =βঞএবং আমরা আমাদের পি-মানগুলি "সম্ভাব্যতা হিসাবে চিহ্নিত করেছিলাম , তথ্যের সম্ভাব্যতা বন্টনের জন্য নাল অনুমান দেওয়া, যে ফলাফলটি পর্যবেক্ষিত ফলাফলের চেয়ে চরম বা আরও চরম হবে" (যেখানে এই ক্ষেত্রে পর্যবেক্ষণের ফলাফলগুলি হয়βআমরা আমাদের মূল মডেলটি পেয়েছি)। সুতরাং এখানে যায়:
# Sample Size
N <- 2^12;
# Linear Model to Boostrap
Model2Boot <- lm( mpg ~ wt + disp, mtcars)
# Values of the model coefficients
Betas <- coefficients(Model2Boot)
# Number of coefficents to test against
M <- length(Betas)
# Matrix of M columns to hold Bootstraping results
BtStrpRes <- matrix( rep(0,M*N), ncol=M)
for (i in 1:N) {
# Simulate data N times from the model we assume be true
# and save the resulting coefficient in the i-th row of BtStrpRes
BtStrpRes[i,] <-coefficients(lm(unlist(simulate(Model2Boot)) ~wt + disp, mtcars))
}
#Get the p-values for coefficient
P_val1 <-mean( abs(BtStrpRes[,1] - mean(BtStrpRes[,1]) )> abs( Betas[1]))
P_val2 <-mean( abs(BtStrpRes[,2] - mean(BtStrpRes[,2]) )> abs( Betas[2]))
P_val3 <-mean( abs(BtStrpRes[,3] - mean(BtStrpRes[,3]) )> abs( Betas[3]))
#and some parametric bootstrap confidence intervals (2.5%, 97.5%)
ConfInt1 <- quantile(BtStrpRes[,1], c(.025, 0.975))
ConfInt2 <- quantile(BtStrpRes[,2], c(.025, 0.975))
ConfInt3 <- quantile(BtStrpRes[,3], c(.025, 0.975))
উল্লিখিত হিসাবে পুরো ধারণাটি হ'ল আপনার বুটস্ট্র্যাপড বিতরণ রয়েছে βএর সত্যিকারের কাছাকাছি। (স্পষ্টতই এই কোডটি গতির জন্য তবে পাঠযোগ্যতার জন্য অনুকূলিত :) :)