«

»

মার্চ 18

স্যাস পরিচিতি – লেকচার ২ – উপাত্ত আমদানি

 

[নিবন্ধনের লিংক] [কোর্সের মূল পাতা] [আগের পর্ব]

উপক্রমণিকা:

স্যাস বিষয়ক ছোট এই বাংলা কোর্সটি  চালু করার কথা ভাবি এই বছরের জানুয়ারির শেষে। আমার ধারণা ছিল অন্তত ৪-৫ জন বোধহয় এই কোর্সটি অনুসরণ করতে আগ্রহী হবেন। কয়েকদিন সময় নিয়ে প্রেজি দিয়ে লেকচারগুলো বানাই। কোর্সের প্রথম লেকচার প্রকাশের দিন আগ্রহীদের ইমেইল করে প্রথম লেকচারের ঘোষণা দেয়ার কথা। কোর্সের নিবন্ধন ফর্ম থেকে আগ্রহীদের ইমেইল ঠিকানা জোগাড় করতে গিয়ে আমার চক্ষু চড়ক গাছ: চুরানব্বই জন নিবন্ধন করেছেন! প্রথম লেকচার প্রকাশের কয়েক ঘণ্টার মধ্যে নিবন্ধন সংখ্যা শত ছাড়িয়ে গেল, দিন-কে-দিন যা ক্রমাগত বাড়ছেই। শিক্ষক ডট কমের জনপ্রিয়তার কথা জানতাম, কিন্তু অতি সাধারণ কোর্সে এত মানুষের আগ্রহ দেখে আমি মুগ্ধ। সবাইকে আন্তরিকভাবে ধন্যবাদ। মাতৃভাষায় শিক্ষার জয় হোক। শিক্ষক ডট কমের উদ্যোগের সার্বিক সফলতা কামনা করছি।

 

এই পর্বের ভূমিকা: 

স্যাসের কাজ হচ্ছে উপাত্ত নিয়ে। সেই জন্য উপাত্ত স্যাসে নিয়ে আসা নিয়ে আমাদের এই পর্ব। এইখানে তিনভাবে আমরা উপাত্ত সংরক্ষণ ও আমদানি করবো।

বহিঃস্থ ফাইলে উপাত্ত

 

এই পর্বে ব্যবহৃত সমস্ত উপাত্ত এই লিংক থেকে ডাউন-লোড করা যাবে।

 

শুরুর আগের কথা: গত পর্বের অমীমাংসিত প্রশ্নমালার ব্যাখ্যা ও সমাধান

বর্তমান পর্ব শুরুর আগে, আসুন আমরা আগের পর্বের অমীমাংসিত প্রশ্নগুলো নিয়ে একটু আলোচনা করি। আশা করি সেই প্রশ্নগুলো আপনার নির্ঘুম রাতের ব্যাকুলতার কারণ হয়ে দাড়ায়নি  😉

 

  • গত পর্বের (পর্ব ১) এসো নিজে করি ১-এর সমাধান: আমরা জানি, ১  কেজি = ২.২০৪৬২ পাউন্ড। তাহলে, ৯০ কেজিকে পাউন্ড হিসেবে পরিবর্তন করলে কত পাউন্ড হবে? স্যাসে এর উত্তর পেতে হলে, নিম্ন লিখিত প্রোগ্রামটি লিখতে হবে।

* kg lb problem;
DATA Weight;
kg = 90;
lb = kg*2.20462;
PROC PRINT DATA = Weight;
RUN;

  • গত পর্বের (পর্ব ১) এসো নিজে করি ২-এর সমাধান: সারণীর শিরোনাম দিতে হলে PROC PRINT-এ “TITLE” কমান্ড ব্যবহার করতে হয়। ‘উপাত্ত প্রদর্শন’ পর্বে আমরা আরও বিস্তারিত দেখব।

TITLE কমান্ডের মাধ্যমে টেবিলে শিরোনাম সন্নিবেশন

 

নতুন লেকচারের ভিডিও – পর্ব ২: উপাত্ত আমদানি

আমার ইউটিউবের চ্যানেলের মাধ্যমে এইখানে ভিডিও অনুবিদ্ধ করলাম, আগ্রহীরা গ্রাহকশ্রেণিভুক্ত হতে পারেন।

আপনার অঞ্চলে ইউটিউব অবরুদ্ধ থাকলে সাথে দিলাম স্ক্রিনকাস্ট মিরর আর ভিডিও ডাউন-লোড (২৪১ মেগা) লিঙ্ক। সাথে ড্রপবক্স মিরর। সর্বশেষে আমার ওয়েবসাইটে মিরর

 

লেকচার সারসংক্ষেপ

সম্পূর্ণ ভিডিও দেখার পরে সারসংক্ষেপ দেখুন। নীচে বর্ণিত আলোচনাটি ভিডিওর অবিকল অনুলিখন নয়, সারসংক্ষেপ মাত্র। সম্পূর্ণ ভিডিও লেকচার না দেখলে সারসংক্ষেপ আলোচনা বুঝতে অসুবিধা হতে পারে।

 

উপাত্ত ও পরিসংখ্যান

পরিসংখ্যানের উদ্দেশ্য হল উপাত্তের বিশ্লেষণ, ব্যাখ্যা, ও পরিবেশন এবং সেই ভিত্তিতে সিদ্ধান্ত গ্রহণে সাহায্য করা। খেয়াল করুন, আমরা কিন্তু এই সংজ্ঞায় সব কিছুই বলছি উপাত্ত নিয়ে। উপাত্ত ছাড়া পরিসংখ্যান অর্থহীন। তাই যে কোন পরিসংখ্যান গবেষণায় আমাদের প্রথম দরকার উপাত্ত। তাই, স্যাসে PROC অংশ লিখার আগে DATA অংশ লিখতে হয়।

 

কাজের আগে স্যাসে উপাত্ত আমদানি করা দরকার, বুঝলাম। কিন্তু করবো কিভাবে?

ক্ষেত্র ১: অল্প কিছু উপাত্ত নিয়ে ঝটপট কাজ করতে চাই

আগের পর্বে আমরা শিখেছি DATA অংশে DATALINES কমান্ডের মাধ্যমে আমরা উপাত্ত স্যাসে আনতে পারি, যা পরবর্তীতে PROC অংশে কাজে লাগাতে পারি। কিন্তু চলকের সংখ্যা অনেক হলে এইভাবে উপাত্ত লিখা কঠিন হতে পারে। এক্সেলের মতন কোন ফর্ম থাকলে কাজটি অনেক সহজ হত। সৌভাগ্যক্রমে, স্যাসে View Table নামে এক্সেলের মতন একটি ইন্টারফেস আছে। উপাত্ত কোথায় সংরক্ষণ করতে চান, তাও চাইলে নির্ধারণ করে দিলে পারেন।

আমদানি বিষয়ক বিড়ম্বনা (ছবি স্বত্ব cartoonstock.com)

 

আগের পর্বে আমরা শিখেছি, DATA অংশে DATALINES কমান্ডের পরে তথ্যের সারিসমূহ উল্লেখ করে স্যাসে উপাত্ত সংরক্ষণ করতে পারি। কিন্তু মোট উপাত্তের সংখ্যা বেশী হলে একটি একটি করে তথ্য টাইপ করা কষ্টসাধ্য হতে পারে।

উদাহরণ ১ – 

* MS data example;
Data MS;
INPUT id trt gender $ age rel1 rel2 rel3;
DATALINES;
1 1 M 29 1 1 1
2 0 M 20 1 0 1
3 1 F 39 0 0 0
4 0 M 19 1 1 1
5 1 M 28 1 0 0
6 0 F 33 0 0 1
7 1 M 20 1 1 0
8 0 M 29 1 0 1
9 1 F 18 0 0 .
;
proc print data = MS;
run;

  • এসো নিজে করি ১: DATA অংশে DATALINES কমান্ডের বদলে মাঝেমাঝে অন্য আরেকটি কমান্ড CARDS ব্যবহার করা হয়। উপরের উদাহরণে DATALINES কমান্ডের বদলে CARDS লিখে দেখুন তো কোন পরিবর্তন দেখতে পান কিনা?

 

ক্ষেত্র ২: উপাত্ত বহিঃস্থ একটি ফাইলে আছে, আবার নতুন করে টাইপ করতে চাই না। কোন কি উপায় আছে সরাসরি DATA অংশে সেই উপাত্ত আমদানি করার?

বহিঃস্থ কোন ফাইলে উপাত্ত আগে থেকে সংরক্ষিত থাকলে তা থেকে উপাত্ত সরাসরি স্যাসে আমদানি করতে চেষ্টা করবো। এটি করতে হলে, DATA অংশে DATALINES কমান্ডের বদলে INFILE কমান্ডের মাধ্যমে আমরা স্যাস কে বলে দিলে পারি বহিঃস্থ ফাইলটির ঠিকানা বলে দিলে পারি। তখন স্যাস সরাসরি বহিঃস্থ ফাইলটি থেকে তথ্য পড়ে নিতে পারে। চলকের নামগুলি আমরা আগের মতই INPUT কমান্ডের মাধ্যমে বলে দিতে পারি।

উদাহরণ ২ – 

উপাত্ত ফাইল ১

* MS data importing from external file;
* Get datafiles from http://tinyurl.com/sasdatafiles2013
Data MSspace;
INFILE ‘C:UserssasMSspace.txt’;
INPUT id trt gender $ age rel1 rel2 rel3;

proc print data = MSspace;
run;

  • এসো নিজে করি ২: আগের উদাহরণে, প্রতিটি তথ্যের মাঝে একটি করে space দেয়া ছিল। যদি space-এর বদলে প্রতিটি তথ্যের মাঝে একটি করে কমা (comma) থাকতো, সেক্ষেত্রে উল্লেখিত কমান্ডের সাথে আর কি অপশন (option) যোগ করতে হবে? (আভাস: নিচে স্যাস সাপোর্ট সূত্র দ্রষ্টব্য)

বহিঃস্থ ফাইলটিতে ক্ষেত্র বিশেষে নির্দিষ্ট কিছু কলামে প্রতিটি চলকের তথ্য সংরক্ষণ করা থাকতে পারে। সেক্ষেত্রে, INPUT কমান্ডের পরে চলকের নাম উল্লেখের পর সেই কলাম সংখ্যা বলে দিতে হয়।

উদাহরণ ৩ – 

উপাত্ত ফাইল ২

* MS fixed format data importing from external file;
Data MSfix;
INFILE ‘C:UserssasMSfix.txt’ firstobs=2;
INPUT id 1-5 trt 6-10 gender $ 15-20 age 21-30 rel1 30-40 rel2 40-45 rel3 45-50;
proc print data = MSfix;
run;

  • এসো নিজে করি ৩: উপরের উদাহরণে যদি মাত্র পাঁচটি লাইন (১-৫) স্যাসকে পড়াতে চাই, তাহলে উল্লেখিত কমান্ডের সাথে আর কি অপশন (option) যোগ করতে হবে? (আভাস: নিচে স্যাস সাপোর্ট সূত্র দ্রষ্টব্য)

বার ও তারিখ চলক পড়াতে হলে INPUT কমান্ডের সাথে MMDDYY10. ফরম্যাট উল্লেখ করতে হয়।

উদাহরণ ৪ – 

উপাত্ত ফাইল ৩

* MS data importing from external file (with Date);
Data MSdate;
INFILE ‘C:UserssasMSdate.txt’ firstobs=2;
INPUT id 1. +7 trt 1. +7 gender $1. +7 age 2. +7 rel1 1. +7 rel2 1. +7 rel3 1. +4 onset MMDDYY10.;

proc print data = MSdate;
run;

  • এসো নিজে করি ৪: উপরের প্রোগ্রামে MMDDYY10. না লিখে MMDDYY8. লিখলে ফলাফল কি হয়?

 

ক্ষেত্র ৩: DATA অংশে প্রোগ্রাম লিখে বহিঃস্থ ফাইলের উপাত্ত আমদানি করা দেখছি অনেক ঝামেলার। মেনু ক্লিক ধরনের সহজ উপায়  কি নাই? 

তৃতীয় উপাত্ত আমদানি করার প্রক্রিয়া হল আমদানি কুহকের (import wizard) দ্বারা। ভিডিওটি খেয়াল করুন, বিস্তারিত বর্ণনা দেয়া আছে। এই ক্ষেত্রে মেনু ক্লিক করে উপাত্ত আমদানি করা যায়।

 

পরবর্তী পর্বে আমি সব “এসো নিজে করি” প্রশ্নের উত্তর দেব। কিন্তু নিজে থেকে একটু চেষ্টা করে দেখুন না কি হয়?

 

কি শিখলাম, সামনে কি শিখতে যাচ্ছি

এই পর্বে আমরা শিখলাম কিভাবে উপাত্ত আমদানি করা যায়। পরবর্তী পর্বে আমরা শিখবো কিভাবে DATA অংশে প্রদত্ত চলকের সমন্বয়ে নতুন চলক তৈরি করা যায়।

 

আজ এ পর্যন্তই। প্রশ্ন থাকলে মন্তব্যের মাধ্যমে জানান; এইখানে অথবা পরবর্তী পর্বে জবাব দেয়ার চেষ্টা করব। আগে যেমন বলেছি, আপনার অন্য কোন কোর্সের বাড়ির কাজের সমাধান দেব না। আশা করি সাথে থাকবেন।

 

সূত্র:

www.ats.ucla.edu/stat/sas/

স্যাস সাপোর্ট

উইকি  পরিসংখ্যান ও সম্ভাবনা পরিভাষা

 

আগের লেকচারের লিঙ্ক:

ভূমিকা

স্যাস পরিচিতি – লেকচার ১ – বেইজ স্যাস খুঁটিনাটি

 

 

Comments

comments

About the author

এহসান করিম

ঢাকা বিশ্ববিদ্যালয় থেকে ফলিত পরিসংখ্যানে পড়াশুনা করেছি এবং পরবর্তীতে পরিসংখ্যানে উচ্চশিক্ষার জন্য ব্রিটিশ কলাম্বিয়া বিশ্ববিদ্যালয়ে আসি। মূলত গবেষণার বিষয় কারণিক সিদ্ধান্ত।

Leave a Reply