+1 থেকে @ ব্যবহারকারী 11852, এবং @ জেম 77 বিএফপি, এগুলি ভাল উত্তর। আমাকে এটিকে ভিন্ন দৃষ্টিকোণ থেকে আসা যাক, আমি মনে করি না যে এটি অনুশীলনের ক্ষেত্রে এটি আরও ভাল । তবে এটি শিক্ষামূলক বলে আমি মনে করি। এখানে কয়েকটি প্রাসঙ্গিক তথ্য যা আমরা ইতিমধ্যে জানি:
- রিগ্রেশন লাইন যখন উভয় ঢাল হল এক্স এবং ওয়াই হয়প্রমিত, অর্থাত্, এন ( 0 , 1 ) , rXYN(0,1)
মধ্যে বিরোধ এর অনুপাত হল ওয়াই মধ্যে ভ্যারিয়েন্স বিশেষণীয় এক্স , r2YX
(এছাড়াও, প্রকরণের নিয়ম থেকে ):
- একটি ধ্রুবক দ্বারা গুণিত একটি এলোমেলো ভেরিয়েবলের প্রকরণটি ধ্রুবক স্কোয়ার বারের মূল বৈকল্পিক:
Var[aX]=a2Var[X]
- রূপগুলি যুক্ত করুন , অর্থাত্ দুটি এলোমেলো ভেরিয়েবলের যোগফলের ভেরিয়েন্স (তারা স্বতন্ত্র ধরে নিলে) দুটি রূপের যোগফল:
Var[X+ε]=Var[X]+Var[ε]
এখন, আমরা এই চারটি তথ্যকে দুটি স্ট্যান্ডার্ড স্বাভাবিক ভেরিয়েবল তৈরি করতে একত্রিত করতে পারি যার জনসংখ্যার একটি নির্দিষ্ট পারস্পরিক সম্পর্ক থাকবে, (আরও সঠিকভাবে, ρ ), যদিও আপনার উত্পন্ন নমুনাগুলির মধ্যে নমুনা পারস্পরিক সম্পর্ক থাকে। ধারণাটি হল সিউডোরানডম ভেরিয়েবল, এক্স , এটি স্ট্যান্ডার্ড নরমাল, এন ( 0 , 1 ) তৈরি করুন এবং তারপরে একটি গুণফল, ক এবং একটি ত্রুটির বৈকল্পিক, v e , যেমন Y ∼ N ( 0 , a 2 + v ই ) , যেখানে কRρএক্সএন( 0 , 1 )একটিবনামইওয়াই। এন(0,a2+ve) । (দ্রষ্টব্য যে | এ | এটির কাজ করার জন্যঅবশ্যই 1 ডলার হওয়া উচিতএবং তদ্ব্যতীত, a = r ।) সুতরাং, আপনিযে আর চান তাদিয়ে শুরু করবেন; এটি আপনার সহগ, ক । তারপরে আপনি যে ত্রুটিটির বৈকল্পিক আপনার প্রয়োজন হবে তা খুঁজে বের করুন, এটি 1 - আর 2 । (যদি আপনার সফ্টওয়্যারটির স্ট্যান্ডার্ড বিচ্যুতি ব্যবহার করা প্রয়োজন, তবে সেই মানটির বর্গমূল গ্রহণ করুন Finally) অবশেষে, প্রতিটি সিউডোরেন্ডম ভেরিয়েটের জন্য, x i , আপনি তৈরি করেছেন, সিউডোরোডম ত্রুটি বৈকল্পিক উত্পন্ন করুন, এবং আমিa2+ve=1|a| ≤1a=rra1−r2xieiসঙ্গে উপযুক্ত ত্রুটি ভ্যারিয়েন্স , এবং গনা সম্পর্কিত সিউডোরান্ডম variate, Y আমি , গুন এবং যোগ করে। veyi
আপনি যদি আর তে এটি করতে চান তবে নিম্নলিখিত কোডগুলি আপনার পক্ষে কাজ করতে পারে:
correlatedValue = function(x, r){
r2 = r**2
ve = 1-r2
SD = sqrt(ve)
e = rnorm(length(x), mean=0, sd=SD)
y = r*x + e
return(y)
}
set.seed(5)
x = rnorm(10000)
y = correlatedValue(x=x, r=.5)
cor(x,y)
[1] 0.4945964
(সম্পাদনা: আমি উল্লেখ করতে ভুলে গেছি :) যেমন আমি এটি বর্ণনা করেছি, এই পদ্ধতিটি আপনাকে দুটি স্ট্যান্ডার্ড স্বাভাবিক সহকর্মী ভেরিয়েবল দেয়। আপনি যদি স্ট্যান্ডার্ড নরমালটি না চান তবে ভ্যারিয়েবলগুলির কিছু নির্দিষ্ট উপায় (0 নয়) এবং এসডি (1 নয়) রাখতে চান তবে আপনি পারস্পরিক সম্পর্ককে প্রভাবিত না করে সেগুলি রূপান্তর করতে পারেন। সুতরাং, আপনি গড়টি ঠিক হয় তা নিশ্চিত করার জন্য পর্যবেক্ষিত গড়টি বিয়োগ করবেন, আপনার যে এসডিটি চান তার মাধ্যমে ভেরিয়েবলটি গুণান এবং তারপরে আপনি চান গড়টি যুক্ত করুন। আপনি যদি পর্যবেক্ষিত গড়টি পছন্দসই গড়ের চারপাশে স্বাভাবিকভাবে ওঠানামা করতে চান তবে আপনি প্রাথমিক পার্থক্যটি আবার যুক্ত করতে পারেন। মূলত, এটি বিপরীতে একটি জেড স্কোর রূপান্তর। যেহেতু এটি লিনিয়ার ট্রান্সফর্মেশন, ট্রান্সফর্মড ভেরিয়েবলের অন্যান্য ভেরিয়েবলের সাথে আগের মত একই সম্পর্ক থাকবে। 0
আবার এটি, এটি সর্বাধিক সহজ আকারে, আপনাকে কেবল সংযুক্ত ভেরিয়েবলগুলির একজোড়া তৈরি করতে দেয় (এটি ছোট করে দেওয়া যেতে পারে তবে কুৎসিত দ্রুত হয়), এবং কাজটি সুনিশ্চিত করার পক্ষে খুব সুবিধাজনক উপায় নয়। আর, আপনি ব্যবহার করতে চাইবেন ? Mvrnorm মধ্যে ভর প্যাকেজ, উভয় কারণ এটি আরো সহজ এবং আপনি একটি নির্দিষ্ট জনসংখ্যায় পারস্পরিক সম্পর্ক ম্যাট্রিক্স সঙ্গে অনেক ভেরিয়েবল তৈরি করতে পারেন কারণ। যাইহোক, আমি মনে করি যে কিছু মৌলিক নীতিগুলি কীভাবে সরল উপায়ে খেলছে তা দেখার জন্য এই প্রক্রিয়াটি চালিয়ে যাওয়া সার্থক।