ডেটা এনালাইসিসের জগতে মাইক্রোসফট এক্সেল বা এসপিএসএস-এর পাশাপাশি Stata ও বেশ পরিচিত হয়ে উঠেছে। বিশেষ করে নন-প্রোগ্রামারদের মধ্যে Stata জনপ্রিয় হয়ে ওঠার অন্যতম কারণ হল এটিতে কমান্ড ব্যবহার করে যেমন কাজ করা যায়, আবার সেই একই কাজ কমান্ডের ব্যবহার ছাড়াই মেনু থেকে ক্লিক করেও করে ফেলা যায়। কমান্ডগুলোও এতটাই ব্যবহার-বান্ধব যে খুব সহজেই শিখে ফেলা যায়। বলা যায় স্ট্যাটা একটি পরিপূর্ণ স্ট্যাটিস্টিক্যাল প্যাকেজ, Reproducible research এর ক্ষেত্রে স্ট্যাটার জুড়ি নেই।
আপনি বিগিনার বা এডভান্স, যেই পর্যায়ের ব্যবহারকারীই হোন না কেন, নিচের পাঁচটি সহজ ও গুরুত্বপূর্ণ টিপস আশা করি সবার কাজে আসবে।
১। স্ট্রিং ভ্যারিয়েবলকে নিউমেরিক করাঃ
ধরা যাক, আপনার ডেটাসেটে এমন একটি ভ্যারিয়েবল আছে যেটি আসলে নিউমেরিক, অর্থাৎ সংখ্যা বোঝায়, কিন্তু স্ট্যাটাতে সেটি স্ট্রিং ভ্যারিয়েবল হিসেবে স্টোর হয়ে আছে। স্ট্রিং ভ্যারিয়েবলের ইনপুটগুলোর ফন্ট কালার লাল হয়ে থাকে। ডেটা ইনপুটের সময় স্ট্রিং হিসেবে ইনপুট দিলে অথবা সংখ্যার বামে অপ্রয়োজনীয় “শূন্য” দিলে নিউমেরিক ভ্যারিয়েবলও স্ট্রিং ফরম্যাটে স্টোর হতে পারে। নিচের ছবিতে age এমন একটি ভ্যারিয়েবল।
এক্ষেত্রে সমস্যাটা হল স্ট্রিং ভ্যারিয়েবলের ওপর আপনি কোনও ক্যালকুলেশন রান করতে পারবেন না, সেটাকে আগে নিউমেরিকে কনভার্ট করে নিতে হবে। খুব সহজ একটি কমান্ড ব্যবহার করে কাজটি করা যায়, যা হল destring:
destring age, replace
replace অপশনটি এখানে age এর স্ট্রিং ভ্যালুগুলিকে নিউমেরিক ভ্যালু দিয়ে রিপ্লেস করবে। রিপ্লেস না করে নতুন ভ্যারিয়েবল হিসেবে স্টোর করতে চাইলে generate অপশনটি ব্যবহার করতে পারেনঃ
destring age, generate(age2)
এখানে age2 হল নতুন ভ্যারিয়েবলটির নাম।
উল্টোভাবে, নিউমেরিক ভ্যারিয়েবলকে স্ট্রিং ফরম্যাটে নেয়ার জন্য ব্যবহার করা যায় tostring কমান্ড।
২। STATA আউটপুটকে মাইক্রোসফট ওয়ার্ডে নেয়াঃ
স্ট্যাটা ইন্টারফেসের রেজাল্ট উইন্ডোতে যে আউটপুট দেখায়, সেটি মোটেও প্রেজেন্টেবল ফরম্যাট নয়। চাইলে আপনি স্ক্রিনশট নিয়ে প্রেজেন্ট করতে পারেন, অথবা কপি পেস্ট করে কোনও টেক্সট এডিটরে নিয়ে যেতে পারেন, কিন্তু সেটি পাব্লিকেশন কোয়ালিটির হবে না। স্ট্যাটা আউটপুটকে মাইক্রোসফট ওয়ার্ডে প্রেজেন্ট করার জন্য ব্যবহার করতে পারেন asdoc কমান্ড। এটি একটি ইউজার-রিটেন প্যাকেজ, তাই ব্যবহারের পূর্বে ইন্সটল করে নিতে হবে এভাবেঃ
ssc install asdoc
একবার ইন্সটল করা হয়ে গেলে যেকোনও কমান্ডের শুরুতে asdoc যোগ করে দিলেই আউটপুট মাইক্রোসফট ওয়ার্ডের একটি ফাইলে সেভ হয়ে যাবে। যেমন উপরের ডেটাসেটের ক্ষেত্রে যদি কমান্ড উইন্ডোতে লিখিঃ
asdoc sum age2 sex income
age2, sex এবং income ভ্যারিয়েবল তিনটিকে summerize করছি, এখানে asdoc ব্যবহার করার কারণে summerize-এর আউটপুট একটি মাইক্রোসফট ওয়ার্ড ফাইলে সেভ হবে, যার ডিফল্ট নাম Myfile.doc। এছাড়াও এই ফাইলটি পুর্বনির্ধারিত ওয়ার্কিং ডিরেক্টরিতে খুঁজে পাবেন। ওয়ার্কিং ডিরেক্টরি সেট না করে থাকলে স্ট্যাটাতে ডিফল্ট ওয়ার্কিং ডিরেক্টরি হল Documents folder. ফাইলের নাম বা টেবিলের টাইটেল স্পেসিফাই করার জন্য save এবং title অপশন ব্যবহার করতে পারবেন। যেমনঃ
asdoc sum age2 sex income, save(summarized.doc) title(Summary Statistics of age, sex and income)
কমান্ডটি রান করলে summarized.doc ফাইলে এরকম আউটপুট পাওয়া যাবেঃ
asdoc ছাড়াও আরেকটি ইউজার রিটেন প্যাকেজ আছে যার নাম outreg2.এটি শুধুমাত্র স্ট্যাটার রিগ্রেশন রেজাল্টকে মাইক্রোসফট ওয়ার্ডে স্থানান্তর করার জন্য ব্যবহৃত হয়। outreg2 ব্যবহার করার জন্য সাথে regression কমান্ডটি রান করতে হয়ঃ
outreg2 using result.doc: reg income sex age2
তাহলে, ওয়ার্কিং ডিরেক্টরিতে result.doc নামে একটি ওয়ার্ড ফাইল তৈরি হবে যেখানে রিগ্রেশনটির আউটপুট থাকবে।
এখানেও title অপশন ব্যবহার করে টেবিলের টাইটেল দিতে পারেন এবং ctitle অপশনের মাধ্যমে কলামের ডিফল্ট টাইটেলও পরিবর্তন করতে পারেনঃ
outreg2 using result.doc, title(Regression analysis) ctitle(OLS): reg income sex age2
asdoc এবং outreg2 উভয়ক্ষেত্রেই replace এবং append অপশন ব্যবহার করে ডক ফাইলের কন্টেন্ট রিপ্লেস বা এপেন্ড করা করা যায়। আরও অপশন সম্পর্কে জানার জন্য help কমান্ড ব্যবহার করে দেখতে পারেনঃ
help asdoc
help outreg2
৩। ডুপ্লিকেট অবজারভেশন খুঁজে বের করাঃ
ডেটাসেটে যদি একই ডেটা একাধিক সারিতে এন্ট্রি করা থাকে তাহলে এনালাইসিসে বায়াস সৃষ্টি হতে পারে। এই ডুপ্লিকেট অবজারভেশন (দুই/ততোধিক অবজারভেশনে একই ভ্যালু) দুই ধরনের হতে পারে। একটি হল সবগুলো ভ্যারিয়েবলের ক্ষেত্রেই ডুপ্লিকেট অবজারভেশন, আরেকটি হল যেকোনো এক/একাধিক ভ্যারিয়েবলের (যেমনঃ id) ক্ষেত্রে ডুপ্লিকেট অবজারভেশন।
এখানে ১ম, ২য় ও ৩য় সারিতে একই id (R101) তিনবার ডুপ্লিকেট হয়েছে, তবে তাদের অন্য ভ্যারিয়েবলের (age, sex, income) ভ্যালুগুলিতে পার্থক্য রয়েছে। ৪র্থ ও ৫ম সারিতে সম্পূর্ণ সারিই ডুপ্লিকেট, এবং ৮ম ও ৯ম সারির ক্ষেত্রেও তাই। duplicates কমান্ড ব্যবহার করে সহজেই ডুপ্লিকেট ভ্যালু রিপোর্ট বা ড্রপ করা যায়।
সবগুলো ভ্যারিয়েবলের সাপেক্ষে ডুপ্লিকেট (সম্পূর্ণ সারির ডুপ্লিকেট) দেখতে চাইলে “duplicates report” কমান্ড দিলেই চলবে, তবে কোনও নির্দিষ্ট ভ্যারিয়েবলের সাপেক্ষে দেখতে চাইলে ভ্যারিয়েবলের নাম (এখানে “id”) উল্লেখ করতে হবে- “duplicates report id”
ডুপ্লিকেট অবজারভেশন ড্রপ করার জন্য “duplicates drop” কমান্ড দিলে শুধুমাত্র সেই অবজারভেশনগুলি ডিলিট হবে যাদের সম্পূর্ন সারিটি ডুপ্লিকেট ছিল।
id ভ্যারিয়েবলের সাপেক্ষে ডুপ্লিকেট ড্রপ করার জন্য কমান্ড লিখতে হবে “duplicates drop id, force”
force অপশনটি এখানে জরুরি, যেহেতু একটি ভ্যারিয়েবলের ডুপ্লিকেটের সাপেক্ষে ড্রপ করছি কাজেই অন্য ভ্যারিয়েবলগুলির ইনফরমেশন লস হবার সম্ভাবনা আছে, সেক্ষেত্রে forcefully ড্রপ করা force অপশনের কাজ।
৪। স্ট্যাটা ডেটাসেটকে এসপিএসএস-এ নেয়াঃ
ধরুন আপনি স্ট্যাটায় কাজ করতে স্বাচ্ছন্দ্যবোধ করেন, কিন্তু একই ডেটাসেটের কাজ আপনার কলিগ এসপিএসএস-এ করতে চায়। স্ট্যাটা ফাইলগুলোকে তাহলে বারবার এসপিএসএস-এ কনভার্ট করার প্রয়োজন পড়বে। এই কাজটি করার বেশ কয়েকটি উপায় আছে।
যেমন Stat/Transfer (https://stattransfer.com/) সফটওয়্যারটি ব্যবহার করে স্ট্যাটা ফাইলকে এসপিএসএস সহ অন্য স্ট্যাটিসটিক্যাল প্রোগ্রামেও কনভার্ট করা যায়। কিন্তু এটি একটি পেইড সফটওয়্যার। আবার Stat/Transfer এর পুরোনো কোনও ভার্সন স্ট্যাটার অপেক্ষাকৃত নতুন কোনও ভার্সনের ফাইল সাপোর্ট করবে না। যেমন Stat/Transfer 9 দিয়ে আপনি Stata 10-এ তৈরি কোনও ফাইল ট্রান্সফার করতে পারবেন, কিন্তু Stata 11 বা এর পরের কোনও ভার্সনের জন্য তা করতে পারবেন না।
আরেকটি উপায় হচ্ছে সরাসরি এসপিএসএস-এই স্ট্যাটা ফাইল ইম্পোর্ট করা।
এসপিএসএস ইন্টারফেসের মেনু থেকেঃ File>>Open>>Data

Files of type বক্সে Stata সিলেক্ট করে দিতে হবে। তবে ভার্সনজনিত সমস্যাটি এক্ষেত্রেও বিদ্যমান। এসপিএসএস -এর ইম্পোর্টের এই সুবিধাটি কেবল Stata 9 ভার্সন পর্যন্ত সাপোর্ট করে। আর আপনি যদি এসপিএসএস-এর আরও পুরোনো কোনো ভার্সন ব্যবহার করেন (SPSS 14 or older), তবে ইম্পোর্ট অপশনটিই পাবেন না।
এই সব সমস্যার সমাধান নিয়ে এসেছে সহজ একটি ইউজার রিটেন প্যাকেজ savespss (বিস্তারিতঃ http://radyakin.org/transfer/savespss/savespss.htm)। বিশ্বব্যাংকের অর্থনীতিবিদ Sergiy Radyakin তৈরি করেছেন এই প্যাকেজটি।
স্ট্যাটায় কমান্ডটি হবেঃ
ssc install savespss
savespss “filename.sav”
filename এর জায়গায় নতুন এসপিএসএস ফাইলটির জন্য পছন্দসই একটি নাম লিখতে হবে। এটি যেকোনো স্ট্যাটার ডেটাফাইলকে এসপিএসএস ফরম্যাটে (.sav) এক্সপোর্ট করবে ওয়ার্কিং ডিরেক্টরিতে। এতে করে স্ট্যাটার ভ্যারিয়েবল লেবেল বা ভ্যালু লেবেল এসপিএসএস-এও অক্ষুণ্ণ থাকবে, কোনো ইনফরমেশন হারানোর সম্ভাবনা নেই।
৫। (ত্রিমুখী) ফ্রিকুয়েন্সি টেবিল তৈরি এবং এক্সেলে স্থানান্তর করাঃ
tabulate কমান্ড ব্যবহার করে স্ট্যাটায় একমুখী বা দ্বিমুখী টেবিল (cross-tabulation) তৈরি করা যায়। তবে ত্রিমুখী বা তার চেয়ে বেশি ডাইমেনশনের টেবিল তৈরিতে tabulate (বা tab) কমান্ড ব্যবহার করা যায় না। যেমনঃ
প্রথম কমান্ডটি দিয়ে স্ট্যাটার একটি এক্সামপল ডেটাসেট nlsw88.dta ইম্পোর্ট করা হল। এরপর tab কমান্ড একটি error দেখায়, কারণ এখানে ভ্যারিয়েবল দুই-এর বেশি। এক্ষেত্রে, table কমান্ডের মাধ্যমে কাজটি করা সম্ভবঃ
table industry race married
যেমন এখানে তিনটি ভ্যারিয়েবলের (industry, race, married) একটি ত্রিমুখী ফ্রিকুয়েন্সি টেবিল তৈরি করা হল।
এভাবে, table কমান্ড দিয়ে একমুখী থেকে সাতমুখী পর্যন্ত টেবিল তৈরি করা সম্ভব। যদিও tabulation-এর মত এখানে পারসেন্টেজের হিসেব দেখানো সম্ভব নয়, তবে বিভিন্ন অপশন ব্যবহার করে সারি/কলাম এবং সুপারসারি/সুপারকলাম-এর মোট হিসাব দেখানো যায়। যেমনঃ
এখানে row, col ও sc অপশন তিনটি যথাক্রমে সারি, কলাম ও সুপার কলামের টোটাল দেখাচ্ছে।
টেবিল সরাসরি এক্সেলে নিতে চাইলে ব্যবহার করতে পারেন xtable কমান্ড, যা table এর পরিবর্তে বসেঃ
ssc install xtable
xtable industry race married, row col sc
এক্সেল ফাইল বা শীটের নাম নির্ধারণ করে দেয়ার জন্য filename এবং sheet অপশন ব্যবহার করতে হবে। যেমনঃ
xtable industry race married, row col sc filename(my_excel.xlsx) sheet(3waytable)
এতে করে টেবিল আউটপুটটি ওয়ার্কিং ডিরেক্টরিতে my_excel.xlsx নামের একটি এক্সেল ফাইলের 3waytable ওয়ার্কশীটে রিটেন হয়ে যাবে।
ডেটা ক্লিনিং, এনালাইসিস অথবা ভিজুয়ালাইজেশন, ডেটা নিয়ে সকল কাজে Stata হয়ে উঠুক আপনার পছন্দের সফটওয়্যার!
Thanks to share