বুটস্ট্র্যাপ, মন্টি কার্লো


12

হোমওয়ার্কের অংশ হিসাবে আমাকে নিম্নলিখিত প্রশ্নটি সেট করা হয়েছে:

তথ্যের অবিচ্ছিন্ন নমুনা হিসাবে 95% আস্থা অন্তর প্রাপ্তির জন্য বুটস্ট্র্যাপের কার্যকারিতা পরীক্ষা করতে একটি সিমুলেশন অধ্যয়ন ডিজাইন এবং প্রয়োগ করুন। আপনার বাস্তবায়ন আর বা এসএএস এ হতে পারে।

আপনি যে পারফরম্যান্সের দিকগুলি দেখতে চাইতে পারেন তা হ'ল আত্মবিশ্বাসের ব্যবধান কভারেজ (যেমন, আত্মবিশ্বাসের বিরতিতে প্রকৃত গড়ের পরিমাণ কত গুণ) এবং মন্টি কার্লো প্রকরণ (যেমন, উপরের এবং নিম্ন আত্মবিশ্বাসের সীমা সিমুলেশনের মধ্যে কতটা পৃথক হয়) '

কেউ কি এর মন্টি কার্লো পরিবর্তনের দিকটি সম্পর্কে যেতে চান? আমি এমনকি একটি অ্যালগরিদম বা কিছু কাজ করতে পারে বলে মনে হয় না। এটা কি মন্টি কার্লো সংহতকরণের সাথে করা? ধন্যবাদ!

উত্তর:


18

বুটস্ট্র্যাপ পদ্ধতি এবং মন্টি কার্লো পদ্ধতিগুলির মধ্যে এই বিভ্রান্তি পুনরাবৃত্তি করে চলেছে, সুতরাং এটির সমাধান করার জন্য এটি সম্ভবত এটির মতো ভাল জায়গা। ( Rকোডের উদাহরণগুলি হোম ওয়ার্কেও সহায়তা করতে পারে))

বুটস্ট্র্যাপের এই বাস্তবায়নটি বিবেচনা করুন :R

boot <- function(x, t) { # Exact bootstrap of procedure t on data x
    n <- length(x)       # Must lie between 2 and 7 inclusive.
    if (n > 7) {
        stop("Sample size exceeds 7; use an approximate method instead.")
    }
    p <- c(n, 1:(n-1))
    a <- rep(x, n^(n-1))
    dim(a) <- rep(n, n)
    y <- as.vector(a)
    while (n > 1) {
        n <- n-1
        a <- aperm(a, p)
        y <- cbind(as.vector(a), y)
    }
    apply(y, 1, t)
}

একটি দ্রুত বর্ণন নিশ্চিত করবে যে এই একটি হল নির্ণায়ক হিসাব: কোন র্যান্ডম মান উত্পন্ন বা ব্যবহার করা হয়। (আগ্রহী পাঠকদের জন্য এটির জন্য আমি এর অভ্যন্তরীণ কাজের বিবরণটি রেখে দেব will)

একটি যুক্ত সংখ্যা মান ফেরত bootদিতে আর্গুমেন্টগুলি অ্যারেতে সংখ্যার ডেটাগুলির একটি ব্যাচ xএবং tকোনও ফাংশনের (যা ঠিক অ্যারেগুলিতে প্রয়োগ করা যেতে পারে x) একটি রেফারেন্স ; অন্য কথায়, tএকটি পরিসংখ্যান । এটি প্রতিস্থাপন সহ সমস্ত সম্ভাব্য নমুনা তৈরি করে xএবং সেগুলির tপ্রতিটিটির জন্য প্রযোজ্য , যার ফলে এই জাতীয় প্রতিটি নমুনার জন্য একটি সংখ্যা তৈরি হয়: এটি সংক্ষেপে বুটস্ট্র্যাপ। ফেরত মান একটি অ্যারের প্রতিনিধিত্বমূলক হয় সঠিক বুটস্ট্র্যাপ বন্টন এর tনমুনা জন্য x

একটি ছোট উদাহরণ হিসাবে , আসুন একটি নমুনার জন্য গড় বুটস্ট্র্যাপ x= c(1,3):

> boot(c(1,3), mean)
> [1] 1 2 2 3

থেকে প্রতিস্থাপন সহ আকারের প্রকৃত চারটি নমুনা রয়েছে ; যথা, , , , এবং । এগুলি সমস্ত উত্পন্ন করে (কেবলমাত্র তালিকাভুক্ত ক্রমে) এবং এটি প্রতিটিটির জন্য প্রযোজ্য । এই ক্ষেত্রে গড়ের গণনা করে এবং ফলাফলগুলি যথাক্রমে , , এবং হিসাবে আউটপুট হিসাবে দেখায়।( 1 , 3 ) ( 1 , 1 ) ( 1 , 3 ) ( 3 , 1 ) ( 3 , 3 ) 1 2 2 32(1,3)(1,1)(1,3)(3,1)(3,3)boottt1223

আপনি এখান থেকে কোথায় যাবেন তার উপর নির্ভর করে আপনি কীভাবে বুটস্ট্র্যাপ ব্যবহার করতে চান। পূর্ণ বুটস্ট্র্যাপ সম্পর্কে তথ্য এই আউটপুট অ্যারের মধ্যে অন্তর্ভুক্ত করা হয়, তাই এটি সাধারণত একটি ভাল ধারণা এটা প্রদর্শন করে না। এখানে উদাহরণ রয়েছে যেখানে স্ট্যান্ডার্ড বিচ্যুতিটি নমুনা থেকে বুটস্ট্র্যাপ করা আছে :(1,3,3,4,7)

hist(boot(c(1,3,3,4,7), sd))

এসডি এর হিস্টোগ্রাম

এখন আমরা মন্টি কার্লো সিমুলেশন সম্পর্কে কথা বলতে প্রস্তুত ধরুন, বলুন, আমরা এর বুটস্ট্র্যাপ বিতরণের উপরের 95 তম পার্সেন্টাইলটি ব্যবহার করে টির নমুনা থেকে এসডিতে 95% উচ্চতর আত্মবিশ্বাসের সীমাটি বুটস্ট্র্যাপ করতে যাচ্ছি । এই পদ্ধতিতে কী সম্পত্তি থাকবে? এটির সন্ধান করার একটি উপায় হ'ল ধরুন , নমুনাটি এলোমেলোভাবে পাওয়া গেছে, বলুন, অভিন্ন বিতরণ থেকে। (অ্যাপ্লিকেশনটি প্রায়শই যুক্তিসঙ্গত বন্টনীয় ধারণাটি কী হতে পারে তা নির্দেশ করবে; এখানে আমি নির্বিচারে একটি বেছে নিয়েছি যা গণনার পক্ষে সহজ তবে বিশ্লেষণাত্মকভাবে মোকাবেলা করা সহজ নয়।) আমরা এই জাতীয় নমুনা নিয়ে এবং ইউসিএল গণনা করে যা ঘটে তা অনুকরণ করতে পারি:5

> set.seed(17)
> quantile(boot(runif(5, min=0, max=10), sd), .95)[1]
     95% 
3.835870 

এই নির্দিষ্ট এলোমেলো নমুনার ফলাফল 3.83587। এটি সুনির্দিষ্ট: আপনি যদি একই সেট ডেটার bootসাথে আবার কল করতেন তবে উত্তরটি হুবহু একই রকম হত। কিন্তু উত্তরটি বিভিন্ন এলোমেলো নমুনার সাথে কীভাবে পরিবর্তন হতে পারে? এই প্রক্রিয়াটি কয়েকবার পুনরাবৃত্তি করে এবং ফলাফলগুলির একটি হিস্টোগ্রাম অঙ্কন করে সন্ধান করুন:

> boot.sd <- replicate(100, quantile(boot(runif(5, min=0, max=10), sd), .95)[1])
> hist(boot.sd)

অনুকরণের হিস্টোগ্রাম

যদি আমরা সিমুলেশনগুলির আরও একটি সেট করতাম, তবে এলোমেলোভাবে আঁকাগুলি আলাদা হয়ে আসে এবং একটি (কিছুটা) আলাদা হিস্টোগ্রাম তৈরি করে - তবে এটির থেকে খুব বেশি আলাদা নয়। এসডি-র বুটস্ট্র্যাপ ইউসিএল কীভাবে কাজ করছে তা বুঝতে আমরা কিছুটা আত্মবিশ্বাসের সাথে এটি ব্যবহার করতে পারি। রেফারেন্সের জন্য, লক্ষ্য করুন যে অভিন্ন বিতরণের স্ট্যান্ডার্ড বিচ্যুতি ( এখানে উল্লিখিত হিসাবে থেকে পর্যন্ত বিস্তৃত ) । যেহেতু যে কোনও ইউসিএল এর লবণের মূল্য আশা করবে, হিস্টোগ্রামের মানগুলির সংখ্যাগরিষ্ঠ (তিন-চতুর্থাংশ বা 0.75) এর চেয়ে বেশি:10 10 / 01010/122.887

> length(boot.sd[boot.sd >= 10/sqrt(12)]) / length(boot.sd)
[1] 0.75

তবে এটি আমরা উল্লেখ করা নামমাত্র 95% এর কাছাকাছি কোথাও নেই (এবং প্রত্যাশী ছিলাম)! এটি সিমুলেশনের একটি মূল্য: এটি আমাদের প্রত্যাশাগুলির সাথে তুলনা করে যা সত্যিই চলছে। (তাত্পর্য কেন? আমি বিশ্বাস করি এটি কারণ একটি এসডি বুটস্ট্র্যাপিং সত্যিই ছোট নমুনাগুলির সাথে ভাল কাজ করে না))

পুনঃমূল্যায়ন

  • বুটস্ট্র্যাপের পরিসংখ্যানগুলি ধারণাগতভাবে কোনও গড় বা স্ট্যান্ডার্ড বিচ্যুতির মতো অন্য কোনও পরিসংখ্যানের মতো; তারা গণনা করতে কেবল দীর্ঘ সময় নেয়। (কোডটিতে সতর্কতা বার্তা দেখুন boot!)

  • নমুনা পাওয়ার ক্ষেত্রে এলোমেলোতার কারণে বুটস্ট্র্যাপের পরিসংখ্যান কীভাবে পরিবর্তিত হয় তা অধ্যয়নের জন্য মন্টে-কার্লো সিমুলেশন দরকারী হতে পারে। এই ধরনের সিমুলেশনটিতে লক্ষ্যমাত্রাটি নমুনাগুলির পরিবর্তনের কারণে হয়, বুটস্ট্র্যাপে পরিবর্তনের কারণে নয়

  • (এখানে চিত্রিত নয়) বুটস্ট্র্যাপের পরিসংখ্যানগুলি প্রচুর গণনা নিতে পারে (দৃশ্যত, আকার নমুনাগুলির জন্য গণনা ), এটি বুটস্ট্র্যাপ বিতরণ আনুমানিক পক্ষে সুবিধাজনক । সত্যিকারের বুটস্ট্র্যাপ বিতরণ থেকে এলোমেলোভাবে একটি মান পেতে এবং সেই প্রোগ্রামটি বারবার কল করে এটি "ব্ল্যাক বক্স" প্রোগ্রাম তৈরি করে সাধারণত করা হয়। সমষ্টিগত আউটপুট সঠিক বন্টন প্রায়। কালো বাক্সে এলোমেলোতার কারণে আনুমানিকতা পৃথক হতে পারে - তবে এই প্রকরণটি আনুমানিক পদ্ধতির একটি নিদর্শন। এটি বুটস্ট্র্যাপ পদ্ধতিতে অন্তর্নিহিত নয় (ধারণাগতভাবে)।nnn


+1 এটি খুব সুন্দর। আমি মনে করি না যে আমি এটি আরও ভাল করতে পারতাম! আমি কেবল যুক্ত করব যে আমার ত্রুটি হার অনুমানের বুটস্ট্র্যাপের পারফরম্যান্স এবং ভেরিয়েন্সগুলি অনুমান করার সময় আত্মবিশ্বাসের ব্যবধানগুলির জন্য কিছু কাগজপত্র রয়েছে। এই ফলাফলগুলি আমার বুটস্ট্র্যাপ পদ্ধতিগুলির বইয়ের দ্বিতীয় সংস্করণে এবং আর
মাইকেল আর। চেরনিক


আমি কেবল এটিই বলব যে পরিচিত বিতরণগুলি থেকে প্রাপ্ত ডেটাগুলি অনুকরণ করা হ'ল আগ্রহের বুটস্ট্র্যাপ পদ্ধতি প্রয়োগ করা হয় (যেমন কোনও প্যারামিটারের জন্য আত্মবিশ্বাসের বিরতি বা শ্রেণিবদ্ধের ত্রুটির হারের অনুমান) এবং আপনি মূল্যায়ন করতে পারেন কারণ এটি সত্য জানেন।
মাইকেল আর চেরনিক

5

বুটস্ট্র্যাপটি একটি মন্টি কার্লো কৌশল, এটিতে কিছু ধরণের এলোমেলো নমুনা জড়িত। আপনি যদি একই সেট ডেটাতে দু'বার বুটস্ট্র্যাপ চালান, আপনি বিভিন্ন উত্তর পাবেন। আপনি আপনার বুটস্ট্র্যাপে যত বেশি নমুনা ব্যবহার করবেন, তত কম তাত্পর্য পাবেন।

কভারেজটি একই অনুমানের নমুনা বন্টন থেকে বিভিন্ন ডেটা সেটে ফলাফলের প্রকরণকে বোঝায়।


ধন্যবাদ, আমি ধরে নেব এর মানে হল কোডটি নিয়ে আসা যাচাই করার জন্য যদি আত্মবিশ্বাসের সীমা তখন সিমুলেশনের মধ্যে আলাদা হয় কিনা!
সারা

7
সুনির্দিষ্ট (গোঁড়া?) হওয়ার উদ্দেশ্যে আমরা নির্মল উচিত যে বুটস্ট্র্যাপ হয় না কোনটাই একটি মন্টে কার্লো টেকনিক। তবে এটি সাধারণত মন্টি কার্লো সিমুলেশন ব্যবহার করে প্রায় অনুমান করা হয় কারণ নির্দিষ্ট পরিমাণের আগ্রহের গণনা করা প্রায়শই ট্র্যাকটেবল হয় না। আমি সমস্যার শব্দটি খুব ভুল ব্যাখ্যাও প্রবণ বলে মনে করি! মন্টে কার্লো আনুমানিক ত্রুটি থেকে নমুনা ত্রুটি পার্থক্য করতে একজনকে অবশ্যই সতর্ক হতে হবে । পরবর্তীটি কেবলমাত্র এমসি বুটস্ট্র্যাপের প্রায় একই ধরণের নমুনায় পুনরাবৃত্তি করে অনুমিতভাবে অনুমান করা হয় , যেমনটি আপনি উল্লেখ করেছেন। :)
কার্ডিনাল

1

আমি নিশ্চিত নই যে " মন্টে কার্লো ভিন্নতা" দ্বারা প্রতি সে, আসলে is অবশ্যই উপরের (বা নিম্ন) সীমাটির মান যেমন উদাহরণ (ইঙ্গিত) এর মধ্যে পুনরাবৃত্তির মধ্যে কতটা তাত্পর্য রয়েছে তা লক্ষ্য করা উচিত। সম্ভবত তারা কেবল চান আপনি মন্টি কার্লোর জন্য এটি করুন, না বুটস্ট্র্যাপ? যদিও এটি একটি অনুশীলনের জন্য আমার প্রয়োজন হবে না। এই বাক্যাংশটি দ্বারা কী বোঝানো হয়েছে কেবল তা জিজ্ঞাসা করা ভাল।


আপনার সাহায্যের জন্য ধন্যবাদ! সম্ভবত আমি আপাতত উপরের এবং নিম্ন সীমাগুলির মধ্যে পার্থক্যটি দেখব এবং পরে মন্টি কার্লো সম্পর্কে জিজ্ঞাসা করব। এখন আমি কীভাবে যাব তা সম্পর্কে কাজ করার জন্য ..
সারা

এখানে বেশ কয়েকটি সম্ভাবনা রয়েছে। একটি হ'ল উচ্চ-নিম্ন (অর্থাত্ পার্থক্য)। প্রশ্নটির বাক্যবৃত্তির আমার ব্যাখ্যাটি হ'ল উপরের প্রকরণ এবং নিম্নের বিভিন্নতা (অর্থাত্ 2 টি ভিন্ন ভিন্নতা) তবে আমি মনে করি আমি নিশ্চিত হতে পারি না। অন্য একটি নোটে, কীভাবে আর-তে এমসির সিমুলেশন পরিচালনা করবেন আপনার প্রশ্নের অংশ ?
গুং - মনিকা পুনরায়

আমি এই সিদ্ধান্তে পৌঁছেছি যে এটি পাশাপাশি 2 টি ভিন্ন প্রকারের সন্ধান করছে, তাই মনে করি আমি চেষ্টা করব!
সারা

1
যথেষ্ট পরিমাণে, আমি এখন যা ভাবছি তা হল, আপনি কি এই মুহুর্তে যেতে ভাল, বা আমরা যে প্রশ্নটি অনুমান করেছিলাম তার কাছে কীভাবে পৌঁছাবেন সে সম্পর্কে আপনার কী অতিরিক্ত সংকেত দরকার?
গুং - মনিকা পুনরায়

1
সুতরাং, প্রতিটি পুনরাবৃত্তির উপর, আপনি কি উপরের এবং নিম্ন সীমাগুলি (ইঙ্গিত) সংরক্ষণ করছেন?
গুং - মনিকা পুনরায়

1

এই হোমওয়ার্কের অ্যাসাইনমেন্ট সম্পর্কে আমার বোঝাটি হ'ল এটি আপনাকে একটি নির্দিষ্ট পরিসংখ্যান কৌশল হিসাবে মন্টি কার্লো সিমুলেশন করতে বলছে। এটি, আপনি এলোমেলো ডেটা সেটগুলির গোছা নকল করেন, এই ডেটা সেটটিতে এই কৌশলটি প্রয়োগ করুন এবং পরে সুবিধাজনক উপায়ে সংক্ষিপ্ত করতে সংখ্যাগুলি সংরক্ষণ করুন (অর্থাত্ সিমুলেটেড সম্ভাব্যতা ইত্যাদি)

এখন, প্রশ্নটির কৌশলটি হ'ল বুটস্ট্র্যাপ, যা এর মধ্যে মন্টি কার্লো সিমুলেশন জড়িত (যদি না হুবুকার হিসাবে প্রদর্শিত না হয়, আপনাকে সঠিক বুটস্ট্র্যাপ সম্পাদন করতে বলা হবে, যা অত্যন্ত সম্ভাবনা নয়)। সুতরাং আপনার সিমুলেশনের ফলাফল হিসাবে, আপনি নমুনা গড়, নমুনার মান বিচ্যুতি এবং বুটস্ট্র্যাপ দ্বারা প্রাপ্ত গড়টির জন্য আত্মবিশ্বাসের ব্যবধানের সীমা সংরক্ষণ করতে পারেন।

n=10


3
সঠিক বুটস্ট্র্যাপের সাথে কাজ করে আমি একটি জিনিস শিখেছি তা হল স্ট্যান্ডার্ড নরমাল-থিয়োরি সিআই প্রায়শই ছোট ছোট নমুনাগুলির সাথে স্ক্যাচ হওয়ার পরেও আরও অনেক ভাল কাজ করবে । বুটস্ট্র্যাপটি বড় আকারের নমুনাগুলির সাথে নিজস্ব আকারে আসে: তত্ত্বটি একটি অ্যাসিম্পটোটিক, সঠিক নয়।
whuber

2
@ শুভ, এটি একটি আকর্ষণীয় পর্যবেক্ষণ ob আমি সাধারণত বুটস্ট্র্যাপের অ্যাসিম্পটোটিক প্রকৃতির উপর চাপ দিয়ে থাকি (পিটার হলের দ্য বুটস্ট্র্যাপ এবং এজওয়ার্থ এক্সপেনশন বইটি কেন তা বোঝার জন্য) তবে এবার তা করতে ব্যর্থ হয়েছি।
StasK
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.