পারস্পরিক সম্পর্ক দুটি ভেরিয়েবলের মধ্যে সম্পর্ক পরিমাপ করার জন্য একটি পরিসংখ্যানগত শব্দ। যদি সম্পর্কটি স্ট্রিং হয়, মানে একটি ভেরিয়েবলের পরিবর্তন অনুমানযোগ্য প্যাটার্নে অন্য ভেরিয়েবলের পরিবর্তনকে প্রতিফলিত করে তাহলে আমরা বলি যে ভেরিয়েবলগুলি পারস্পরিক সম্পর্কযুক্ত। আরও প্রথম ভেরিয়েবলের পরিবর্তনের ফলে দ্বিতীয় ভেরিয়েবলে ইতিবাচক বা নেতিবাচক পরিবর্তন হতে পারে। তদনুসারে, তারা ইতিবাচক বা নেতিবাচকভাবে সম্পর্কযুক্ত বলা হয়। আদর্শভাবে পারস্পরিক সম্পর্ক সহগের মান -1 থেকে +1 এর মধ্যে পরিবর্তিত হয়।
- মানটি যদি +1 হয় বা এর কাছাকাছি হয় তাহলে আমরা বলি ভেরিয়েবলগুলো ইতিবাচকভাবে পারস্পরিক সম্পর্কযুক্ত। এবং তারা একই সাথে একই দিকে পরিবর্তিত হয়।
- মান যদি হয় -1 বা এর কাছাকাছি তাহলে আমরা বলি ভেরিয়েবলগুলো নেতিবাচকভাবে পারস্পরিক সম্পর্কযুক্ত। এবং তারা একই সাথে বিপরীত দিকে পরিবর্তিত হয়।
- যদি মানটি 0 বা এর কাছাকাছি হয় তবে আমরা বলি ভেরিয়েবলগুলি পারস্পরিক সম্পর্কযুক্ত নয়৷
পারস্পরিক সম্পর্কের সহগ পরিমাপ করার বিভিন্ন উপায় রয়েছে। এগুলি numpy বা scipy.stats-এ ফাংশন হিসাবে উপলব্ধ। নিচে আমরা দেখব কিভাবে এগুলো ব্যবহার করা হয়।
স্পিয়ারম্যানের পারস্পরিক সম্পর্ক ব্যবহার করা
স্পিয়ারম্যানের পারস্পরিক সম্পর্ক রৈখিকভাবে সম্পর্কিত ভেরিয়েবলের মধ্যে সম্পর্কের মাত্রা পরিমাপ করা। এটি একটি সূত্রের উপর ভিত্তি করে যা scipy.stats প্যাকেজ ফলাফল তৈরি করতে ব্যবহার করে। পারস্পরিক সম্পর্ক খুঁজে বের করার জন্য এটি সর্বাধিক ব্যবহৃত সূত্র।
নিচের উদাহরণে আমরা দুটি ভেরিয়েবল নিয়েছি যার মান numpy.randon()funcntion ব্যবহার করে তৈরি করা হয়েছে। তারপর চূড়ান্ত ফলাফল পেতে spearmanr() প্রয়োগ করা হয়।
উদাহরণ
from numpy.random import randn from numpy.random import seed from scipy.stats import spearmanr seed(1) data_input1 = 20 * randn(1000) + 100 data_input2 = data_input1 + (10 * randn(1000) + 50) correlation = spearmanr(data_input1, data_input2) print(correlation)
আউটপুট
উপরের কোডটি চালানো আমাদের নিম্নলিখিত ফলাফল দেয় -
SpearmanrResult(correlation=0.8724050484050484, pvalue=1.58425746359e-312)
পিয়ারসনের পারস্পরিক সম্পর্ক ব্যবহার করা
পিয়ারসনের পারস্পরিক সম্পর্ক রৈখিকভাবে সম্পর্কিত ভেরিয়েবলের মধ্যে সম্পর্কের মাত্রা পরিমাপ করার আরেকটি উপায়। এটি একটি সূত্রের উপর ভিত্তি করে যা scipy.stats প্যাকেজ দ্বারা ফলাফল তৈরি করতে ব্যবহৃত হয়৷
নিচের উদাহরণে আমরা দুটি ভেরিয়েবল নিয়েছি যার মান numpy.randon()funcntion ব্যবহার করে তৈরি করা হয়েছে। তারপর চূড়ান্ত ফলাফল পেতে pearsonr() প্রয়োগ করা হয়।
উদাহরণ
from numpy.random import randn
from numpy.random import seed
from scipy.stats import pearsonr
seed(1)
data1 = 20 * randn(1000) + 100
data2 = data1 + (10 * randn(1000) + 50)
correlation, _ = pearsonr(data1, data2)
print('Pearsons correlation: %.3f' % correlation) আউটপুট
উপরের কোডটি চালানো আমাদের নিম্নলিখিত ফলাফল দেয় -
Pearsons correlation: 0.888