বিষয়বস্তুতে চলুন

সামাজিক বিজ্ঞান গবেষণা/নারীর প্রতি সহিংসতার পূর্বাভাস

পূর্ববর্তী পাতা
বয়োজ্যেষ্ঠদের একাকিত্ব ও সামাজিক সহায়তা
সামাজিক বিজ্ঞান গবেষণা পরবর্তী পাতা
নিম্ন-মধ্যম আয়ের দেশগুলোতে নারী বিষয়ক পরিসংখ্যান
নারীর প্রতি সহিংসতা পূর্বাভাস

জেনোডোতে (Zenodo), "আ কোয়েশ্চনেয়ার ফর দি অ্যাসেসমেন্ট অব ভায়োলেন্ট বিহেভিয়ারস ইন ইয়াং কাপলস: দি ইতালীয় ভার্সন অব দ্য ডেটিং ভায়োলেন্স কোয়েশ্চনেয়ার (ডিভিকিউ) | পিএলওএস ওয়ান" প্রকল্পটি এখানে পাওয়া যেতে পারে: https://zenodo.org/records/16073 এবং সম্পর্কিত গবেষণা https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0126089 তরুণ ইতালীয় দম্পতিদের মধ্যে সহিংস আচরণ নিয়ে আলোচনা করে, যা ডেটিং ভায়োলেন্স কোয়েশ্চনেয়ার (DVQ) ব্যবহার করে তদন্ত করা হয়েছে।

প্রেসাঘি, এফ., মানকা, এম., রদ্রিগেজ-ফ্রাঙ্কো, এল., এবং কুরসিও, জি. (২০১৫)। আ কোয়েশ্চনেয়ার ফর দি অ্যাসেসমেন্ট অব ভায়োলেন্ট বিহেভিয়ারস ইন ইয়াং কাপলস: দি ইতালীয় ভার্সন অব দ্য ডেটিং ভায়োলেন্স কোয়েশ্চনেয়ার (ডিভিকিউ) [উপাত্ত সেট]। জেনোডো। https://doi.org/10.5281/zenodo.16073

গবেষণায় অংশগ্রহণকারী জনমিতিক নমুনাটি মূলত বিশ্ববিদ্যালয়ের শিক্ষার্থীদের নিয়ে গঠিত ছিল। নির্দিষ্টভাবে:

  • প্রাথমিক নমুনায় ৪১৮ জন বিশ্ববিদ্যালয়ের শিক্ষার্থী অন্তর্ভুক্ত ছিল।
  • এর মধ্যে ৩১০ জন নারী এবং ৯২ জন পুরুষ ছিলেন। ষোলো জন অংশগ্রহণকারী তাদের লিঙ্গ উল্লেখ করেননি।
  • অংশগ্রহণকারীদের গড় বয়স ছিল ২৩ বছর এবং পরিমিত ব্যবধান (স্ট্যান্ডার্ড ডেভিয়েশন) ছিল ৪.৭১, যাদের বয়সের সীমা ছিল ১৬ থেকে ২৬ বছরের মধ্যে।

অতএব, এই নমুনায় শেষ পর্যায়ের কিশোর-কিশোরী (১৬-২১ বছর বয়সী) এবং তরুণ প্রাপ্তবয়স্করা (২১-২৬ বছর বয়সী) অন্তর্ভুক্ত ছিল। এই নমুনার একটি অংশ (২২৩ জন শিক্ষার্থী) একটি পুনর্পরীক্ষা (retest) পর্বেও অংশগ্রহণ করেছিল। এই উপ-নমুনায় ৭৫ জন পুরুষ এবং ১৩৪ জন নারী ছিলেন, যেখানে ১৪ জন অংশগ্রহণকারীর লিঙ্গ সম্পর্কিত তথ্য অনুপস্থিত ছিল এবং তাদের গড় বয়স ছিল প্রায় ২২ বছর (পরিমিত ব্যবধান বা SD = ১.৪৫, পরিসর ১৬-২৬)। অনুপস্থিত প্রতিক্রিয়া বা উত্তরের কারণে চূড়ান্ত পুনর্পরীক্ষার নমুনাটি ১৩৯ জন অংশগ্রহণকারীকে নিয়ে গঠিত হয়েছিল।

নিয়মিত মনোবিজ্ঞান কোর্স গ্রহণকারী স্নাতক শিক্ষার্থীদের মধ্য থেকে অংশগ্রহণকারীদের নিয়োগ করা হয়েছিল এবং গবেষণায় অংশগ্রহণ করার জন্য তারা কোর্সের ক্রেডিট পেয়েছিলেন।

গবেষণার প্রশ্ন

[সম্পাদনা]

সংশ্লিষ্ট আর (R) কোডের সাথে জেনোডোতে (Zenodo) প্রদত্ত প্রকল্পের উপাত্ত সেটটি ব্যবহার করে, আমরা সম্পর্ক ভেঙে যাওয়ার পর সঙ্গীর সম্ভাব্য নেতিবাচক প্রতিক্রিয়া, যার মধ্যে পিছু নেওয়া বা স্টকিং (stalking) আচরণ অন্তর্ভুক্ত, তার পূর্বাভাস দেওয়ার লক্ষ্য নির্ধারণ করেছি।

পূর্বাভাসক চলকগুলো (predictor variables) হলো ৮টি ভিন্ন ফ্যাক্টর বা প্রভাবক: বিচ্ছিন্নতা (D), অবমাননা (H), যৌন সহিংসতা (S), জবরদস্তি (C), শারীরিক সহিংসতা (P), উপহাস (Der), আবেগিক শাস্তি (EP), এবং যান্ত্রিক বা ইন্সট্রুমেন্টাল সহিংসতা (I); এর পাশাপাশি রয়েছে অতিরিক্ত ৪টি স্থিতিমাপ (parameter): বহির্মুখিতা (Extraversion), সাইকোটিকিজম (Psychoticism), নিউরোটিকিজম (Neuroticism) এবং মিথ্যা বলার স্কেল (Lying Scale)।

আর-এ পূর্বাভাসক চলক তৈরি করা

[সম্পাদনা]

উপাত্ত লোড করা:

df <- read.csv("df.csv")
attach(df)

বিচ্ছিন্নতা (ডি) চলক তৈরি করা: এই ফ্যাক্টরটি এমন আচরণগুলোকে নির্দেশ করে যেখানে সঙ্গী অনুভূতিগুলোকে উপেক্ষা করে, সম্পর্কে যা ঘটে তার জন্য নিজেকে অযোগ্য বা অক্ষম মনে করে, অথবা উভয়ই। ডিভিকিউ (DVQ)-তে থাকা প্রশ্নগুলোর উদাহরণ হলো: "সে আপনার অনুভূতিগুলোকে উপেক্ষা করেছে" এবং "সম্পর্কে যা ঘটছে বা আপনাদের দুজনের সাথে যা হচ্ছে তার জন্য সে নিজেকে দায়ী মনে করে না।"

detachment<-cbind(cuv6a,cuv14a,cuv22a,cuv30a,cuv32a,cuv33a,cuv37a)
detachment<-as.matrix(data.frame(detachment))
df$detachment<- rowSums(detachment)

'detachment' (বিচ্ছিন্নতা) চলকের জন্য গণসংখ্যা সারণি (frequency table) হিসাব করলে আমরা দেখতে পাই যে এটি ০ থেকে ২৫ পর্যন্ত পূর্ণসংখ্যার মান গ্রহণ করে এবং যে সব উত্তরদাতার বিচ্ছিন্নতার মাত্রা ৮-এর বেশি, তাদের শতকরা হার হলো ৭.৫৭%।

table(df$detachment)
paste("detachment=",round(mean(df$detachment>8, na.rm = T)*100,2),"%", sep = "")
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 16 23 25
92 80 64 32 36 16 13 15 6 8 2 5 4 4 3 1 1 1
[1] "detachment=7.57%"

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

humiliation<-cbind(cuv7a,cuv15a,cuv23a,cuv31a,cuv36a,cuv40a,cuv41a)
humiliation<-as.matrix(data.frame(humiliation))
df$humiliation<- rowSums(humiliation)

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

sexual_violence<-cbind(cuv2a,cuv10a,cuv18a,cuv26a,cuv34a,cuv39a)
sexual_violence<-as.matrix(data.frame(sexual_violence))
df$sexual_violence<- rowSums(sexual_violence)

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

coercion<-cbind(cuv1a, cuv9a, cuv17a, cuv25a, cuv38a,cuv42a)
coercion<-as.matrix(data.frame(coercion))
df$coercion<- rowSums(coercion)

শারীরিক সহিংসতা (পি): এই ফ্যাক্টরটি প্রত্যক্ষ শারীরিক আক্রমণকে নির্দেশ করে। আইটেমগুলোর উদাহরণের মধ্যে রয়েছে: "সে আপনাকে ঘুষি মেরেছে" এবং "সে কোনো বস্তু দিয়ে আপনাকে আঘাত করেছে।"

physical_violence<-cbind(cuv5a, cuv13a, cuv20a, cuv21a,cuv29a)
physical_violence<-as.matrix(data.frame(physical_violence))
df$physical_violence<- rowSums(physical_violence)

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

derision<-cbind(cuv3a,cuv11a,cuv19a,cuv27a,cuv35a)
derision<-as.matrix(data.frame(derision))
df$derision<- rowSums(derision)

আবেগিক শাস্তি (ইপি): এই ফ্যাক্টরটি শাস্তির একটি রূপ হিসেবে সহায়তা, স্নেহ বা সম্মান প্রত্যাহার করাকে বোঝায়। উদাহরণের মধ্যে রয়েছে: "আপনাকে শাস্তি দেওয়ার জন্য, ওই ব্যক্তি তার সহায়তা, স্নেহ বা সম্মান প্রত্যাহার করে নেয়" এবং "আপনাকে ছেড়ে যাওয়ার হুমকি দেয়।"

emotional_punishment<-cbind(cuv8a,cuv16a,cuv24a)
emotional_punishment<-as.matrix(data.frame(emotional_punishment))
df$emotional_punishment<- rowSums(emotional_punishment)

যান্ত্রিক সহিংসতা (আই): এই ফ্যাক্টরের মধ্যে এমন আচরণগুলো অন্তর্ভুক্ত যেখানে সঙ্গী অন্য সঙ্গীকে শোষণ করে বা বস্তুগতভাবে ক্ষতি করে। উদাহরণের মধ্যে রয়েছে: "আপনার কাছ থেকে চুরি করেছে" এবং "আপনাকে ঋণের দিকে ঠেলে দিয়েছে।"

instrumental_violence<-cbind(cuv12a,cuv4a,cuv28a)
instrumental_violence<-as.matrix(data.frame(instrumental_violence))
df$instrumental_violence<- rowSums(instrumental_violence)

প্রদত্ত নথিগুলো আইজেঙ্ক পারসোনালিটি কোয়েশ্চনেয়ার-রিভাইজড শর্ট ফর্ম (EPQR-S) বা আইজেঙ্ক ব্যক্তিত্ব প্রশ্নাবলি-সংশোধিত সংক্ষিপ্ত রূপের বর্ণনা দেয়। এটি ৪৮টি আইটেম সম্বলিত একটি প্রশ্নাবলি, যার উত্তর "হ্যাঁ" অথবা "না" হয়। এই সরঞ্জামটি ব্যক্তিত্বের তিনটি প্রধান ক্ষেত্র মূল্যায়ন করতে ব্যবহৃত হয়:

বহির্মুখিতা (১২টি আইটেম): এটি একজন ব্যক্তির মেলামেশা, কর্মতৎপরতা এবং উদ্দীপনা খোঁজার স্তর পরিমাপ করে।

df$epq.ext <- df[, c('ey3')] +
df[, c('ey7')] +
df[, c('ey11')] +
df[, c('ey15')] +
df[, c('ey19')] +
df[, c('ey23')] +
df[, c('ey32')] +
df[, c('ey36')] +
df[, c('ey44')] +
df[, c('ey48')] +
(1-df[, c('ey27')]) +
(1-df[, c('ey41')])

নিউরোটিকিজম (১২টি আইটেম): এটি উদ্বেগ, দুশ্চিন্তা এবং বিষণ্ণতার মতো নেতিবাচক আবেগগুলো অনুভব করার প্রবণতা মূল্যায়ন করে।

df$epq.nev <- df[, c('ey1')] +
df[, c('ey5')] +
df[, c('ey9')] +
df[, c('ey13')] +
df[, c('ey17')] +
df[, c('ey21')] +
df[, c('ey25')] +
df[, c('ey30')] +
df[, c('ey34')] +
df[, c('ey38')] +
df[, c('ey42')] +
df[, c('ey46')]

সাইকোটিকিজম (১২টি আইটেম): এটি আবেগপ্রবণতা, আগ্রাসন, সহানুভূতির অভাব এবং সামাজিক রীতিনীতি না মানার মতো বৈশিষ্ট্যগুলো পরিমাপ করে।

df$epq.psy <- df[, c('ey10')] +
df[, c('ey14')] +
df[, c('ey22')] +
df[, c('ey31')] +
df[, c('ey39')] +
(1-df[, c('ey2')]) +
(1-df[, c('ey6')]) +
(1-df[, c('ey18')]) +
(1-df[, c('ey26')]) +
(1-df[, c('ey28')]) +
(1-df[, c('ey35')]) +
(1-df[, c('ey43')])

প্রশ্নাবলির বাকি ১২টি আইটেম "মিথ্যা স্কেল" বা লাই স্কেল নিয়ে গঠিত, যা কোনো উত্তরদাতার নিজেকে অতিরিক্ত ইতিবাচকভাবে উপস্থাপন করার প্রবণতা মূল্যায়ন করতে ব্যবহৃত হয়।

df$epq.lie <- df[, c('ey4')] +
df[, c('ey16')] +
df[, c('ey45')] +
(1-df[, c('ey8')])+
(1-df[, c('ey12')])+
(1-df[, c('ey20')])+
(1-df[, c('ey24')])+
(1-df[, c('ey29')])+
(1-df[, c('ey33')])+
(1-df[, c('ey37')])+
(1-df[, c('ey40')])+
(1-df[, c('ey47')])

পূর্বাভাস দেওয়ার জন্য নির্ধারিত চলক stalk.ind প্রত্যেক অংশগ্রহণকারীর জন্য একটি যৌগিক স্কোরকে উপস্থাপন করে। এটি ব্রেকিং রিলেশনশিপ স্কেল (BRS)-এর ৭টি আইটেমের উত্তর যোগ করে প্রাপ্ত হয়, যার উদ্দেশ্য হলো সম্পর্ক ভেঙে যাওয়ার পর (প্রাক্তন) সঙ্গীর নেতিবাচক প্রতিক্রিয়া মূল্যায়ন করা। সম্পর্ক শেষ হওয়ার সময় নির্দিষ্ট আচরণগুলোর উপস্থিতি বা অনুপস্থিতির ওপর ভিত্তি করে অংশগ্রহণকারীদের তাদের সঙ্গীর প্রতিক্রিয়া বর্ণনা করতে বলা হয়েছিল। বিআরএস (BRS) আইটেমগুলোতে নিম্নলিখিত উদাহরণগুলো অন্তর্ভুক্ত রয়েছে:

  • “সে আমাকে আক্রমণাত্মক বা অশ্লীল বার্তা পাঠিয়েছে”
  • “সে আমাকে কল করেছে কিন্তু কোনো কথা বলেনি”
  • “সে আমার ওপর গুপ্তচরবৃত্তি করেছে”
  • “সে আমার বন্ধুদের কাছে আমাকে খারাপ প্রমাণ করার চেষ্টা করেছে”
  • “সম্পর্ক ভেঙে যাওয়ার পর আমি সতর্ক অবস্থায় ছিলাম”
  • “সম্পর্ক ভেঙে যাওয়ার পর আমি আমার অভ্যাস পরিবর্তন করেছি”
  • “আমি আমার মোবাইল নম্বর পরিবর্তন করেছি”
####### ব্রেকিং রিলেশনশিপ ফ্যাক্টর হিসেবে (BRS):
# সম্পর্ক ভেঙে যাওয়ার পর সঙ্গীর সহিংস প্রতিক্রিয়া
stalk.ind <-cbind(
df[,'brs1'],
df[,'brs2'],
df[,'brs3'],
df[,'brs4'],
df[,'brs5'],
df[,'brs6'],
df[,'brs7'])
stalk.ind<-as.matrix(data.frame(stalk.ind))
df$stalk.ind<-rowSums(stalk.ind)

তৈরি করা চলকগুলোর সাথে উপাত্তগুলোকে সিএসভি (csv) বিন্যাসে রপ্তানি করা হচ্ছে:

df<-df[,275:287]
write.csv(df, file = "df.csv", row.names = F)

পাইথনে পূর্বাভাসমূলক মডেল তৈরি করা

[সম্পাদনা]

সম্পর্ক ভেঙে যাওয়ার পর সঙ্গীর সহিংস প্রতিক্রিয়ার (চলক stalk.ind) একটি পূর্বাভাসমূলক মডেলকে প্রশিক্ষণ দেওয়ার জন্য আমরা র্যান্ডমফরেস্ট (RandomForest) অ্যালগরিদম ব্যবহার করি। পূর্বে তৈরি করা পূর্বাভাসকগুলো ব্যবহার করে আমরা ৬১.২৩% নির্ভুলতা (accuracy) অর্জন করেছি।

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.compose import ColumnTransformer
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import OneHotEncoder
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import classification_report

# উপাত্ত লোড করি
data = pd.read_csv('df.csv')

# পূর্বাভাস দেওয়ার চলকটিকে int-এ এবং অন্যান্য চলককে object-এ রূপান্তর করি
data= data.astype(object)
data=data[data['stalk.ind'].notna()]
data['stalk.ind']=data['stalk.ind'].astype('int')


# পূর্বাভাসকগুলো থেকে লক্ষ্য চলকটি আলাদা করি
y = data['stalk.ind']
X = data.drop(['stalk.ind'], axis=1)

# উপাত্তগুলোকে ৭৫% ট্রেনিং সেট এবং ২৫% ভ্যালিডেশন সেটে ভাগ করি
X_train, X_valid, y_train, y_valid = train_test_split(X, y, train_size=0.75, test_size=0.25,
                                                      random_state=0)
categorical_cols = X_train.columns

# শ্রেণিবদ্ধ চলকগুলোর প্রি-প্রসেসিং করি
categorical_transformer = Pipeline(steps=[
    ('imputer', SimpleImputer(strategy='most_frequent')),
    ('onehot', OneHotEncoder(handle_unknown='ignore'))
])

preprocessor = ColumnTransformer(
    transformers=[
         ('cat', categorical_transformer, categorical_cols)
    ])

model = RandomForestClassifier()

# প্রি-প্রসেসিং এবং মডেলটিকে একটি পাইপলাইনে রাখি
my_pipeline = Pipeline(steps=[('preprocessor', preprocessor),
                              ('model', model)
                             ])

# ট্রেনিং সেটের ওপর মডেলটিকে প্রশিক্ষণ দিই
my_pipeline.fit(X_train, y_train)

# ভ্যালিডেশন সেটের ওপর পূর্বাভাস পাই
preds = my_pipeline.predict(X_valid)

print(classification_report(y_valid, preds))
              precision    recall  f1-score   support
           0       0.61      1.00      0.76        30
           1       0.00      0.00      0.00        13
           2       0.00      0.00      0.00         5
           3       0.00      0.00      0.00         1
    accuracy                           0.61        49
   macro avg       0.15      0.25      0.19        49
weighted avg       0.37      0.61      0.46        49


পূর্বাভাসের উদাহরণ

[সম্পাদনা]

নিচের উদাহরণস্বরূপ ব্যক্তির ক্ষেত্রে, মডেলটি ০ (শূন্য) পূর্বাভাস দেয়, যার অর্থ হলো সম্পর্ক ভেঙে যাওয়ার পর কোনো সহিংস প্রতিক্রিয়া নেই:

new_person= {
"detachment": 2,
"humiliation": 3,
"sexual_violence": 2,
"coercion": 4,
"physical_violence": 2,
"derision":1,
"emotional_punishment":1,
"instrumental_violence":0,
"epq.psy":2,
"epq.ext":0,
"epq.nev":1,
"epq.lie":0
}

new_person_df=pd.DataFrame([new_person])
my_pipeline.predict(new_person_df)
array([0])