কোরিলেশন একটি Статистиগ্যাল টার্ম যা দুটি ভেরিয়েবলের মধ্যে সম্পর্ক পরিমাপ করে। যদি সম্পর্ক শক্তিশালী হয়, অর্থাৎ একটি ভেরিয়েবলে পরিবর্তন অন্য ভেরিয়েবলে প্রিডিক্টেবল প্যাটার্নে পরিবর্তন আনાય তবে আমরা বলি ভেরিয়েবলগুলো কোরিলেটেড। আরো, প্রথম ভেরিয়েবলে ভেরিয়েশন দ্বিতীয় ভেরিয়েবলে পজিটিভ বা নেগেটিভ ভেরিয়েশন আনাতে পারে। সেজন্যই সেগুলো পজিটিভলি বা নেগেটিভলি কোরিলেটেড বলে বলা হয়। আদর্শভাবে কোরিলেশন কোইফিশিয়েন্টের ভ্যালু -১ থেকে +১ পর্যন্ত থাকে।
- যদি ভ্যালু +১ বা সেটি ਨੇয়ার হয় তবে আমরা বলি ভেরিয়েবলগুলো পজিটিভলি কোরিলেটেড। এবং সেগুলো একই ডিরেকশনে সিমুলটেনিয়াসলি ভেরিয়েট করে।
- যদি ভ্যালু -১ বা সেটি ਨੇয়ার হয় তবে আমরা বলি ভেরিয়েবলগুলো নেগেটিভলি কোরিলেটেড। এবং সেগুলো বিপরীত ডিরেকশনে সিমুলটেনিয়াসলি ভেরিয়েট করে।
- যদি ভ্যালু ০ বা সেটি نےয়ার হয় তবে আমরা বলি ভেরিয়েবলগুলো কোরিলেটেড নয়।
কোরিলেশন কোইফিশিয়েন্ট পরিমাপের বিভিন্ন পদ্ধতি আছে। সেগুলো numpy বা scipy.stats-এ ফাংশন হিসেবে উপলব্ধ। নিচে আমরা দেখব কিভাবে সেগুলো ব্যবহার করা হয়।
স্পিয়ারম্যান কোরিলেশন ব্যবহার
স্পিয়ারম্যান কোরিলেশন লিনিয়ারলি রিলেটেড ভেরিয়েবলের মধ্যে সম্পর্কের ডিগ্রি পরিমাপ করে। এটি একটি ফর্মুলা বেসড যা scipy.stats প্যাকেজ ব্যবহার করে রেজাল্ট জেনারেট করে। কোরিলেশন খুঁজে বের করার জন্য এটি সবচেয়ে বহুল ব্যবহৃত ফর্মুলা।
নিচের উদাহরণে আমরা দুটি ভেরিয়েবল নিই যাদের ভ্যালু numpy.random() ফাংশন দিয়ে জেনারেট করা হয়েছে। তারপর 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.random() ফাংশন দিয়ে জেনারেট করা হয়েছে। তারপর 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