امروزه روش بوت استرپ به عنوان رويكرد ارتقاي قابليت يافته هاي آماري به شدت مورد توجه محققان مختلف است. هدف اين مقاله بررسي روش شناسي آن به طور مختصر و ارائه راههاي محاسبه آن در نرم افزار R است. بوت استرپ روشی ساده اما قوی از روش شبیه سازی مونت كارلو است که برای تعیین دقت آماری یا برآوردکردن توزیع از روی آماره های نمونه است. در واقع یک نوع نمونه گیری است که با تبدیل از یک نمونه به دست می آید؛ نمونه گیری درون یک نمونه.
حتما بخوانید: تعیین حجم نمونه آزمون One-sample t-test
اصل برابری بوت استرپ نشان می دهد که برآوردگر نمونه گرفته شده با روش بوت استرپ، برابر است با برآورد نمونه ی اصلی. روش بوت استرپ دارای دو پیش فرض است:
• نمونه شما، نمونه معتبری از جمعیت است.
• بوت استرپ نمونه ای را با جایگزینی از نمونه اصلی خواهد گرفت به طوری که هر نمونه گرفته شده با این روش مستقل، ولی دارای توزیع برابرند. به عبارت دیگر؛ نمونه های گرفته شده با روش بوت استرپ دارای توزیع جمعیت برابرند ولی هر نمونه، مستقل از نمونه های دیگر است.
در اینجا مثال هایی از نمونه مسائلی که شما می توانید با روش بوت استرپ آنها را حل کنید، آورده شده:
• فرض کنید شما تعدادی داده نمونه دارید اما نمونه شما آنقدر کوچک است که شما نمی توانید درباره توزیع نمونه تان با اطمینان سخن بگویید و در نتیجه شما نمی توانید دامنه میان چارکی و یا واریانس و یا دیگر پارامتر های جمعیت تان را برآورد کنید.
• شما دو نمونه که توزیع آن ها ناشناخته است به نام های Yو X دارید و می خواهید توزیع نسبت Z=X/Y را بشناسید وبعضی از آماره های مفید Z مانند میانگین و انحراف معیار را نیز بشناسید.
• شما دو نمونه A وB دارید و می خواهید امتحان کنید که آیا آن ها از یک جمعیت یکسان هستند یا نه؟
• شما مدل رگرسیونی Y=a+bX دارید و می خواهید یک فاصله اطمینان برای پارامترهای a وb بدست آورید.
بوت استراپ ناپارامتری در R: در نرم افزار R استفاده از بسته های آماری boot کار را برای انجام بازنمونه گیری بوت استرپ و روشهای شبیه سازی مشابه راحت می کند. می توانید یک آماره را (مثل میانه) یا یک بردار مثل (وزن های رگرسیون) با روش بوت استراپ به دست بیاورید.این قسمت به شما می گوید چه طور با بوت استراپ ناپارامتری اساسی شروع به کار کنید.
تابع اصلی بوت استراپ ()boot با ساختار زیر است:
bootobject <- boot(data= , statistic= , R=, …)
که در آن:
تابع ()boot آماره را R بار فرا می خواند. هر بار، این یک مجموعه از شاخص های تصادفی را تولید می کند، با جایگذاری، از اعداد صحیح (1:nrow(data این شاخص ها در کنار تابع آماره برای انتخاب نمونه استفاده می شوند. آماره ها روی نمونه محاسبه شده و نتیجه در bootobject جمع آوری می شود.
می توانید به این دو آرگومان از طریق bootobject$t0 و bootobject$t دست یابید.
هرگاه نمونه های بوت استراپ را تولید کردید، از (print(bootobject و (plot(bootobject برای امتحان نتیجه ها استفاده کنید. اگر نتیجه منطقی به نظر رسید، می توانید از ()boot.ci برای رسیدن به فواصل اطمینان برای آماره تان استفاده کنید. ساختار این تابع به صورت زیر است:
boot.ci(bootobject, conf=, type= )
روش بوت استراپ برای یک آماره ی تنها: مثال زیر فاصله اطمینان 95% را برای R^2 در رگرسیون خطی مایل در هر گالن (mpg) را بر وزن اتومبیل (wt) و جابجایی (disp) بررسی می کند. منبع داده ها mtcars می باشد. فاصله اطمینان از روش بوت استراپ بر اساس 1000 تکرار به دست آمد.
Library(boot)
# Bootstrap 95% CI for R-Squared library(boot)
# function to obtain R-Squared from the data
rsq<-function(formula,data,indices){
d<-data[indices,]
#allows boot to select sample
fit<-lm(formula, data=d)
return(summary(fit) $r.square)
}
#bootstrapping with 1000 replications
results<-boot(data=mtcars,statistic=rsq, R=1000,formula=mpg~wt+disp)
#viewresults
results
plot(results)
#get 95% confidence interval
boot.ci(results, type=”bca”)
br />
بوت استراپ چندین آماره:
در مثال بالا، تابع خروجی تابع rsq یک عدد و تابع boot.ci تنها یک فاصله اطمینان به ما می دهد. تابع آماره ها می تواند به صورت یک بردار نیز باشد. در مثال بعد، ما یک فاصله اطمینان 95% برای سه مدل رگرسیون (جلوگیری، وزن خودرو، جابجایی) خواهیم یافت. در این حالت یک شاخص پارامتری را به ()plot و ()boot.ci برای نشان دادن بهتر اینکه کدام ستون در bootobject$t در حال تجزیه و تحلیل شدن است، اضافه می کنیم.
# Bootstrap 95% CI for regression coefficients library(boot)
# function to obtain regression weights
bs <- function(formula, data, indices) {
d <- data[indices,] # allows boot to select sample
fit <- lm(formula, data=d)
return(coef(fit))
}
# bootstrapping with 1000 replications
results <- boot(data=mtcars, statistic=bs,
R=1000, formula=mpg~wt+disp)
# view results
results
plot(results, index=1) # intercept
plot(results, index=2) # wt
plot(results, index=3) # disp
# get 95% confidence intervals
boot.ci(results, type=”bca”, index=1) # intercept
boot.ci(results, type=”bca”, index=2) # wt
boot.ci(results, type=”bca”, index=3) # disp
تابع ()boot می تواند هم به صورت پارامتری و هم ناپارامتری نمونه گیری را انجام دهد. برای بوت استراپ ناپارامتری روش باز نمونه گیری شامل موارد عادی، متعادل، ضدونقیض دار و جایگشت هاست و بازنمونه های طبقه بندی شده پشتیبانی می شوند. همچنین اهمیت وزن بازنمونه گیری می تواند مشخص گردد.
تابع ()boot.ci عامل بوت استراپ(bootobject) را می گیرد و 5 نوع متفاوت از فاصله اطمینان دو طرفه را تولید می کند. شامل: اولین تخمین نرمال، فاصله بوت استراپ اصلی، فاصله بوت استراپ استیودنت، فاصله درصدی بوت استراپ، فاصله درصدی. می توانید برای کسب اطلاعات جزییتر از (help(boot و (help(boot.ci و (help(plot.boot استفاده کنید.
با دریافت « مشاوره برنامهنویسی، وب و سئو » از کارشناسان جوان حرفهای و باتجربه ساکوراد؛ موفقیت کسب و کار، رونق فروش و افزایش درآمد خود را تضمین کنید!
و اما کلام آخر…
روش بوت استرپ ابزار قدرتمندی برای برآورد پارامترها و محاسبه فاصلههای اطمینان است. این روش به دلیل سادگی و عدم نیاز به فرضیات پیچیده توزیع، در بسیاری از زمینههای آماری و یادگیری ماشین کاربرد دارد.