প্রচলিত প্রোগ্রামিং ভাষা ব্যবহার করে জ্ঞাত গড় এবং বৈচিত্রের সাথে একটি সাধারণ বিতরণ থেকে কীভাবে নমুনা পাবেন?


36

আমি কখনও পরিসংখ্যান বিষয়ে কোর্স করিনি, তাই আমি আশা করি আমি এখানে সঠিক জায়গায় জিজ্ঞাসা করব।

ধরুন আমার কাছে সাধারণ বিতরণ বর্ণনা করার জন্য মাত্র দুটি তথ্য রয়েছে: গড় the এবং বৈকল্পিক । আমি এই বিতরণ থেকে এলোমেলোভাবে নমুনার জন্য একটি কম্পিউটার ব্যবহার করতে চাই যাতে আমি এই দুটি পরিসংখ্যানকে সম্মান করি।σ 2μσ2

এটি বেশ সুস্পষ্ট যে আমি 0 টি প্রায় সাধারণ করার মাধ্যমে গড়টি পরিচালনা করতে পারি: কেবলমাত্র নমুনাকে আউটপুট দেওয়ার আগে প্রতিটি নমুনায় to যোগ করুন । তবে আমি don't কে শ্রদ্ধা করার জন্য প্রোগ্রামালি কীভাবে নমুনা তৈরি করতে পারি তা আমি দেখতে পাচ্ছি না ।σ 2μσ2

আমার প্রোগ্রামটি একটি প্রচলিত প্রোগ্রামিং ভাষায় থাকবে; আমার কোনও পরিসংখ্যান প্যাকেজ অ্যাক্সেস নেই।


আপনার ভাষাতে কি এলোমেলো নম্বর জেনারেটর রয়েছে? এই জেনারেটরটি কি অভিন্ন বিতরণ থেকে আসে বা এটি সাধারণ বিতরণ থেকেও উত্পন্ন করতে পারে?
ttnphns

@ttnphns: প্রতিটি কম্পিউটারের ভাষা একটি এলোমেলো সংখ্যা জেনারেটরের সাথে আসে। তারা কিছু সীমাবদ্ধ ডোমেনে প্রচুর পরিমাণে ইউনিফর্ম জেনারেটর।
ফিক্সি

উত্তর:


33

যদি আপনি প্রদত্ত বিতরণ থেকে গড় 0 এবং বৈকল্পিক 1 সহ নমুনা করতে পারেন তবে আপনি সহজেই সেই বিতরণের কোনও স্কেল-লোকেশন রূপান্তর থেকে নমুনা নিতে পারেন , যার অর্থ mean এবং বৈকল্পিক । তাহলে একটি গড় 0 এবং ভ্যারিয়েন্স 1 বন্টন থেকে একটি নমুনা তারপর গড় সঙ্গে একটি নমুনা এবং ভ্যারিয়েন্স । সুতরাং, আপনাকে যা করতে হবে তা হ'ল adding যুক্ত করার আগে স্ট্যান্ডার্ড বিচ্যুতি (ভেরিয়েন্সের বর্গমূল) দ্বারা ভেরিয়েবলটি স্কেল করা ।σ 2 এক্স σ এক্স + + μ μ σ 2 σμσ2এক্স

σএক্স+ +μ
μσ2σμ

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

সম্পাদনা করুন: মন্তব্যগুলির আলোকে, আরও কিছু উত্তর এবং এই সিদ্ধান্তটি ফিক্সি গ্রহণ করেছেন যে, আমি কীভাবে সাধারণ ভেরিয়েবল উত্পাদন করতে ইউনিফর্ম ভেরিয়েবলের রূপান্তর ব্যবহার করতে পারি সে সম্পর্কে আরও কিছু বিশদ দেব।

  • ভিটালস্ট্যাটিসটিক্সের একটি মন্তব্যে ইতিমধ্যে উল্লিখিত একটি পদ্ধতি হ'ল বাক্স-মুলার পদ্ধতি যা দুটি স্বতন্ত্র ইউনিফর্ম র্যান্ডম ভেরিয়েবল গ্রহণ করে এবং দুটি স্বতন্ত্র স্বাভাবিক এলোমেলো ভেরিয়েবল তৈরি করে। অনুরূপ একটি পদ্ধতি যে দুটি তুরীয় ফাংশনের গণনার এড়াতে পাপ এবং কোসাইন্ আরো কয়েকটি সিমিউলেশন খরচে দ্বারা একটি উত্তর হিসাবে পোস্ট করা হয়েছে francogrex
  • সম্পূর্ণ সাধারণ পদ্ধতি হ'ল বিপরীত বিতরণ ফাংশন দ্বারা অভিন্ন র্যান্ডম ভেরিয়েবলের রূপান্তর। যদি সমানভাবে বিতরণ করা হয় তবে এর একটি সাধারণ বন্টন রয়েছে। যদিও for এর জন্য সুস্পষ্ট বিশ্লেষণের সূত্র নেই তবে এটি সঠিক সংখ্যাসূচক দ্বারা গুণ করা যায়। আর এর বর্তমান বাস্তবায়ন (সর্বশেষে আমি পরীক্ষা করে দেখেছি) এই ধারণাটি ব্যবহার করে। পদ্ধতিটি ধারণাগতভাবে খুব সহজ, তবে of এর সঠিক প্রয়োগ প্রয়োজন , যা সম্ভবত (অন্যান্য) ট্রান্সসেন্টেন্টাল ফাংশন লগ , পাপ এবং কোস হিসাবে এতটা ব্যাপক নয় ।[ 0 , 1 ] Φ - 1 ( ইউ ) Φ - 1 Φ - 1ইউ[0,1]
    Φ-1(ইউ)
    Φ-1Φ-1
  • বেশ কয়েকটি উত্তরে ইউনিফর্ম এলোমেলো ভেরিয়েবলের গড় হিসাবে সাধারণ বন্টন আনুমানিক হিসাবে কেন্দ্রীয় সীমাবদ্ধ উপপাদ ব্যবহার করার সম্ভাবনা উল্লেখ করা হয়। এটি সাধারণত সুপারিশ করা হয় না। উপস্থাপনাগুলি যেমন গড় 0 এবং বৈকল্পিক 1 এর সাথে মিলে যাওয়া এবং বিতরণটির সমর্থনের বিবেচনাগুলি বিশ্বাসযোগ্য নয়। খ্রিস্টান পি। রবার্ট এবং জর্জ কেসেল্লার "মন্টে কার্লো পদ্ধতিগুলি আর এর সাথে পরিচয় করিয়ে দেওয়া" এর ২.৩ অনুশীলনে এই জেনারেটরটিকে অ্যান্টিকেটেড বলা হয় এবং আনুমানিকটিকে খুব দরিদ্র বলা হয় ।
  • অন্যান্য ধারণার বিস্ময়কর সংখ্যা রয়েছে। অধ্যায় 3 এবং, বিশেষত, "কম্পিউটার প্রোগ্রামিং এর শিল্প" খণ্ডে বিভাগ 3.4। ডোনাল্ড ই নূথ লিখেছেন 2 এলোমেলো সংখ্যা জেনারেশন সম্পর্কে একটি শাস্ত্রীয় রেফারেন্স। ব্রায়ান রিপলি কম্পিউটার জেনারেশন অফ র্যান্ডম ভেরিয়েবলস: একটি টিউটোরিয়াল লিখেছিলেন , যা কার্যকর হতে পারে। রবার্ট এবং কেসেলা উল্লেখ করেছেন বা তাদের অন্য বই "মন্টি কার্লো স্ট্যাটিস্টিকাল মেথডিক্স" এর দ্বিতীয় অধ্যায়টিও সুপারিশ করা হয়েছে।

দিন শেষে, সঠিকভাবে প্রয়োগ করা পদ্ধতিটি ব্যবহৃত ইউনিফর্ম সিউডো এলোমেলো সংখ্যা জেনারেটরের চেয়ে ভাল নয়। ব্যক্তিগতভাবে, আমি বিশেষ উদ্দেশ্যে গ্রন্থাগারগুলির উপর নির্ভর করতে পছন্দ করি যা আমি বিশ্বাস করি যে বিশ্বাসযোগ্য। আমি প্রায় সবসময়ই সরাসরি আরে অথবা সি / সি ++ এপিআইয়ের মাধ্যমে আর এ প্রয়োগ করা পদ্ধতিগুলির উপর নির্ভর করি। স্পষ্টতই, এটি সকলের জন্য সমাধান নয়, তবে বিকল্পের পরামর্শ দেওয়ার জন্য আমি অন্যান্য লাইব্রেরিগুলির সাথে যথেষ্ট পরিচিত নই।


(+1) ওপির জন্য ভাল উত্তর এবং পরামর্শ।
কার্ডিনাল

18
আমি এখানে অপ্রয়োজনীয় মন্তব্য করছি কিনা তা আমি নিশ্চিত নই, তবে, যদি আপনার কেবল অভিন্ন র্যান্ডম নম্বর জেনারেটরের অ্যাক্সেস থাকে তবে আপনি স্বাধীন এন (0,1) এলোমেলো সংখ্যা তৈরি করতে বক্স-মুলার ট্রান্সফর্মটি ব্যবহার করতে পারেন । সংক্ষেপে, যদি U_1 এবং U_2 ইউনিফর্ম (0,1) বিতরণ থেকে স্বতঃস্ফূর্ত হয় তবে এবং স্বাধীন এন (0,1) এলোমেলো ভেরিয়েবল হিসাবে বিতরণ করা হয়। প্রাথমিক ধারণা √ √
-2লগ(ইউ1)কোসাইন্(2πইউ2)
-2লগ(ইউ1)পাপ(2πইউ2)
ভাইটাল স্ট্যাটিসটিক্স

2
@ ভিটাল: একটি অপ্রয়োজনীয় মন্তব্য নয়; একটি ভাল। বক্স-মুলার ট্রান্সফর্মটি অজ্ঞাতসারে কিছু খারাপ করার ন্যূনতম সম্ভাবনা সহ প্রোগ্রাম করা খুব সহজ। এটি দ্রুততম নয় , তবে এটি যথেষ্ট প্রতিযোগিতামূলক। এটি বলে যে, একটি প্রতিষ্ঠিত কোড লাইব্রেরি ব্যবহার করা সম্ভবত এখনও নিরাপদ, বিশেষত যেহেতু একটি মিসটপ তৈরির সর্বাধিক সম্ভাবনাময় জায়গাটি ইউনিফর্ম র‌্যান্ডম ভেরিয়েট ইনপুটগুলি কীভাবে উত্পন্ন হয়!
কার্ডিনাল 0

@ ভিটাল: ধন্যবাদ, আমি এটিই খুঁজছিলাম আপনি যদি নিজের মন্তব্যে উত্তরে রূপান্তর করতে চান তবে আমি আনন্দের সাথে এটি উত্সাহিত করব।
ফিক্সি

1
@ ভিটাল স্ট্যাটিসটিক্স, এটি একটি দুর্দান্ত মন্তব্য, এবং দেখা যাচ্ছে যে ওপি এটিই খুঁজছিল। কেন এটিকে উত্তরে রূপান্তরিত করবেন না এবং সম্ভবত এটি অভিন্ন র্যান্ডম ভেরিয়েবলের ট্রান্সফর্মেশনগুলি ব্যবহার করার সাধারণ ধারণার উপরে কিছুটা ব্যাখ্যা করুন। কার্ডিনাল বেশিরভাগ ক্ষেত্রে উল্লেখ করেছে কারণ আমি এটি করতে দ্বিধা বোধ করেছি কারণ কোনও ভাষা থেকে ডিফল্ট ইউনিফর্ম জেনারেটর ভাল জেনারেটর কিনা তা আমি জানি না ।
NRH

10

এটি মাইকেল লিউয়ের উত্তর এবং ফিক্সির মন্তব্যে আসলেই একটি মন্তব্য, তবে উত্তর হিসাবে পোস্ট করা হয়েছে কারণ মন্তব্য করার মতো এই সাইটটিতে আমার সুনাম নেই।

[0,1]61

[Σআমি=112এক্সআমি]=Σআমি=112[এক্সআমি]=12×12=6
Var[Σআমি=112এক্সআমি]=Σআমি=112Var[এক্সআমি]=12×112=1।
Σআমি=112এক্সআমি-6মাইকেল লিউ এবং ফিক্সি দ্বারা বিবেচিত ভেরিয়েবলগুলি, এলোমেলো নম্বর জেনারেটরের আরও দুটি কল প্রয়োজন, তবে আমরা কাঙ্ক্ষিত ইউনিট বৈকল্পিকতা পেতে by দ্বারা বিভাজন এড়াতে পারি । এটাও মনে রাখা উচিত যে কেবলমাত্র সীমাতে মানগুলি গ্রহণ করতে পারে এবং এইভাবে চরম (খুব কম সম্ভাবনা) মানগুলি গড়ের চেয়ে আলাদা হয় টিরও বেশি স্ট্যান্ডার্ড বিচ্যুতি কখনই ঘটবে না। এটি প্রায়শই কম্পিউটার এবং যোগাযোগ ব্যবস্থাগুলির সিমুলেশনগুলির ক্ষেত্রে সমস্যা হয় যেখানে খুব কম সম্ভাবনার ইভেন্টগুলি খুব আগ্রহী হয়। Σ 12 আমি = 1 এক্সআমি-6[-6,6]610/12Σআমি=112এক্সআমি-6[-6,6]6

5

এনআরএইচের উত্তর ছাড়াও, যদি এখনও আপনার কাছে "স্ট্যান্ডার্ড নরমাল ডিস্ট্রিবিউশন" এন (0,1) থেকে এলোমেলো নমুনা তৈরি করার উপায় না থাকে তবে নীচে একটি ভাল এবং সহজ উপায় (যেহেতু আপনি উল্লেখ করেছেন যে আপনার কাছে কোনও পরিসংখ্যান নেই) প্যাকেজ, নীচের ফাংশনগুলি বেশিরভাগ মানক প্রোগ্রামিং ভাষায় উপলভ্য হওয়া উচিত)।

দুটি অবিশেষে দ্বারা সীমার মধ্যে র্যান্ডম সংখ্যা বিতরণ থেকে -1 1 1. তোমার দর্শন লগ করা ও V জেনারেট করুন
u = 2 r1 - 1এবংv = 2 r2 - 1

2 ডাব্লু w = u^2 + v^2> যদি 1> 1 তে ফিরে যান তবে গণনা করুন

z= sqrt(-2ln(w)/w) একটি নমুনা কোড সহ 3. u * z এবং y = v * z পুনরুদ্ধার করুন :

u = 2 * random() - 1;
v = 2 * random() - 1;
w = pow(u, 2) + pow(v, 2);
if (w < 1) {
    z = sqrt((-2 * log(w)) / w);
    x = u * z;
    y = v * z;
    }

তারপরে এলোমেলো বিচ্যুতিগুলি পেতে এমএইচআর উপরে উল্লিখিত পরামর্শগুলি ব্যবহার করুন N(mu, sigma^2)


আমি যখন আমার উত্তরটি উপরে পোস্ট করলাম তখন আমি খেয়াল করিনি যে @vitalStatistix আপনাকে বক্স-মুলার ট্রান্সফর্ম অ্যালগরিদম দিয়েছে। আমি উপরে যেটি দিচ্ছি তাও আমার ধারণা হিসাবে ভাল।
ফ্রাঙ্কোগ্রেেক্স

2
আপনি কি অভিন্ন বন্টন (অ্যালগোরিদমিক দৃষ্টিকোণ বাদে) থেকে সাধারণ পরিবর্তনগুলি উত্পন্ন করার কারণ এবং কেবল গাউসিয়ান / সাধারণ বিতরণের পিডিএফ সরাসরি ব্যবহার না করে দয়া করে ব্যাখ্যা করতে পারেন? নাকি পুরোপুরি ভুল?
অরুণ 10

4
@ অরুন একটি কারণ: মার্সাগলিয়ার পোলার পদ্ধতিটি কার্যকর যখন আপনি কেবল একটি আরএনজি রাখুন যা অভিন্ন বিচ্যুতির সৃষ্টি করে।
chl

1
@ অরুন এটি সবচেয়ে সহজ উপায়। আপনি পিডিএফ থেকে সরাসরি জেনারেট করতে পারেন উদাহরণস্বরূপ "গ্রহণযোগ্যতা প্রত্যাখ্যান" পদ্ধতিটি ব্যবহার করে। আমি আপনার জন্য আমার সাইটে একটি সাধারণ উদাহরণ পোস্ট করেছি (কারণ এখানে মন্তব্য বাক্সে পর্যাপ্ত জায়গা নেই)।
ফ্র্যাঙ্কোগ্রেক্স 13

4

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

বলুন যে আপনার অভিন্ন র্যান্ডম মানগুলি 0 থেকে 1 এর মধ্যে সমানভাবে বিতরণ করা হয় তবে যোগফলটি 0 থেকে 10 এর মধ্যে হবে এবং যোগফলটি 5 থেকে বিয়োগ করবে এবং ফলাফলগুলি বিতরণের গড় হবে 0 হবে Now (কাছাকাছি) সাধারণ বন্টন এবং কাঙ্ক্ষিত মান বিচ্যুতি দ্বারা ফলাফল গুণ। দুর্ভাগ্যক্রমে আমি নিশ্চিত নয় যে দশটি ইউনিফর্মের এলোমেলো বিয়োগের যোগফলের মানক বিচ্যুতি কী, তবে আমরা ভাগ্যবান হলে কেউ আমাদের একটি মন্তব্যে বলবেন!

আমি এই পদগুলিতে সাধারণ বন্টন সম্পর্কে শিক্ষার্থীদের সাথে কথা বলতে পছন্দ করি কারণ অনেক সিস্টেমে একটি সাধারণ বিতরণ অনুমানের উপযোগটি পুরোপুরি সেই সম্পত্তি থেকে উদ্ভূত হয় যা অনেক এলোমেলো প্রভাবগুলির পরিমাণগুলি একটি সাধারণ বন্টনের দিকে নিয়ে যায়।


আপনি এখানে কেন্দ্রীয় সীমাবদ্ধতা থিম ব্যবহার করছেন (যে একগুচ্ছ আইড র‌্যান্ডম ভেরিয়েবল একটি সাধারণ র্যান্ডম ভেরিয়েবলের সমষ্টি)। আমি এটি বিবেচনা করিনি কারণ আমি ভেবেছিলাম এটি খুব ধীর হবে তবে আপনি বলেছিলেন যে 10 যথেষ্ট ?! এটি একটি লগ এবং একটি পাপ / কোস এবং একটি স্কয়ার্ট গণনা চেয়ে ভাল!
ফিক্সি

এছাড়াও, [0,1] এ ইউনিফর্মের আরভিউর গড় 1/12 বৈকল্পিক সহ 0.5 হয় 0.5 এর মধ্যে 10 টি যোগ করলে আপনি 5 এর গড় এবং 10/12 = 5/6 এর গড় পাবেন।
ফিক্সি

1
শিক্ষাগত দৃষ্টিভঙ্গি থেকে এই পদ্ধতিটি একটি সুন্দর, দরকারী আলোচনা এবং প্রদর্শনের ব্যবস্থা করে। যাইহোক, আমি প্রয়োগের ক্ষেত্রে এই পদ্ধতির ব্যবহার থেকে কাউকে দৃ strongly়ভাবে নিরুৎসাহিত করব।
কার্ডিনাল

1
লগপাপকোসাইন্

1
@Michael: ঘোষণা দেন "অধিকার" বন্টন, একটি প্রসারিত একটি বিট বিশেষ করে যেহেতু সদৃশ বন্টন কম্প্যাক্ট সমর্থন আছে এবং অনেক অ্যাপ্লিকেশনের মধ্যে, এক করে কিভাবে দক্ষতার variates উত্পন্ন করা যেতে পারে যত্নশীল। :) কথাটি হ'ল আরও বেশ কয়েকটি আরও ভাল বিকল্প উপলব্ধ। তবে, আমি এখনও মনে করি এটি শিক্ষাগতভাবে দরকারী কিছু সরবরাহ করে।
কার্ডিনাল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.