Skill

Data Cleaning এবং Validation

স্যাস (SAS) - Big Data and Analytics

340

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


ডেটা ক্লিনিং (Data Cleaning)

ডেটা ক্লিনিং হল সেই প্রক্রিয়া, যেখানে ডেটার ত্রুটিগুলো সংশোধন করা হয়, যেমন মিসিং ভ্যালু পূরণ করা, অপ্রয়োজনীয় বা ভুল তথ্য সরিয়ে ফেলা, এবং ডেটার মান সঠিক করা। স্যাসে ডেটা ক্লিনিং এর জন্য কিছু সাধারণ পদ্ধতি নিচে বর্ণনা করা হলো।

১. মিসিং ভ্যালু (Missing Values) পূরণ করা

মিসিং ভ্যালু ডেটা বিশ্লেষণে গুরুত্বপূর্ণ সমস্যা তৈরি করতে পারে। স্যাসে মিসিং ভ্যালু শনাক্ত এবং পূরণ করতে if শর্ত ব্যবহার করা হয়।

উদাহরণ:

data clean_data;
  set work.raw_data;
  if Age = . then Age = 0; /* Age ভেরিয়েবলের মিসিং ভ্যালু ০ দিয়ে পূর্ণ */
run;

এখানে:

  • ., স্যাসে মিসিং ভ্যালু হিসেবে চিহ্নিত হয়।
  • if Age = . then Age = 0; নির্দেশটি মিসিং বয়সের মান ০ দিয়ে পূর্ণ করবে।

২. ডুপ্লিকেট রেকর্ড সরানো

ডেটাসেট থেকে ডুপ্লিকেট রেকর্ড সরাতে nodupkey বা nodup অপশন ব্যবহার করা যায়।

উদাহরণ:

proc sort data=work.raw_data nodupkey;
  by ID;
run;

এখানে:

  • nodupkey অপশনটি ডুপ্লিকেট রেকর্ডগুলো সরিয়ে ফেলবে, যেখানে ID ভেরিয়েবল ব্যবহার করে একমাত্র প্রথম রেকর্ড রাখা হবে।

৩. অপ্রয়োজনীয় ভেরিয়েবল সরানো

ডেটাসেট থেকে অপ্রয়োজনীয় ভেরিয়েবল সরাতে DROP বা KEEP স্টেটমেন্ট ব্যবহার করা হয়।

উদাহরণ:

data cleaned_data;
  set work.raw_data;
  drop Temp; /* Temp ভেরিয়েবলটি সরিয়ে ফেলা হবে */
run;

এখানে:

  • drop স্টেটমেন্টটি Temp নামক ভেরিয়েবলটি ডেটাসেট থেকে সরিয়ে দেবে।

ডেটা ভ্যালিডেশন (Data Validation)

ডেটা ভ্যালিডেশন হল সেই প্রক্রিয়া, যেখানে ডেটার সঠিকতা এবং পরিপূর্ণতা নিশ্চিত করা হয়। স্যাসে ডেটা ভ্যালিডেশন করার জন্য বিভিন্ন পদ্ধতি রয়েছে, যার মাধ্যমে ডেটার মান পরীক্ষা করা হয় এবং সেগুলোর ভুল ত্রুটি চিহ্নিত করা হয়।

১. ডেটার রেঞ্জ চেক করা

ভ্যালিডেশন প্রক্রিয়ার মধ্যে একটি গুরুত্বপূর্ণ কাজ হলো ভেরিয়েবলের মান সঠিক রেঞ্জের মধ্যে আছে কিনা তা পরীক্ষা করা।

উদাহরণ:

data validated_data;
  set work.raw_data;
  if Age < 18 or Age > 100 then Age = .; /* বয়সের রেঞ্জ চেক */
run;

এখানে:

  • if Age < 18 or Age > 100 then Age = .; নির্দেশটি যদি বয়স ১৮ এর নিচে বা ১০০ এর বেশি হয়, তবে তা মিসিং ভ্যালু হিসেবে চিহ্নিত করবে।

২. ক্যাটাগোরিক্যাল ভেরিয়েবলের ভ্যালিডেশন

ক্যাটাগোরিক্যাল ডেটা যেমন লিঙ্গ (Gender), শিক্ষা (Education) ইত্যাদি নির্দিষ্ট মানের মধ্যে থাকা উচিত। সেক্ষেত্রে সঠিক মান যাচাই করা হয়।

উদাহরণ:

data validated_data;
  set work.raw_data;
  if Gender not in ('Male', 'Female') then Gender = 'Unknown'; /* Gender ভ্যালিডেশন */
run;

এখানে:

  • Gender ভেরিয়েবলের মান যদি "Male" বা "Female" না হয়, তবে সেটি Unknown হিসেবে চিহ্নিত হবে।

৩. ডেটার সামঞ্জস্য চেক করা

একটি ভেরিয়েবলের মান অন্য ভেরিয়েবলের সাথে সামঞ্জস্যপূর্ণ কিনা তা যাচাই করা হয়।

উদাহরণ:

data validated_data;
  set work.raw_data;
  if Age < 18 and MaritalStatus = 'Married' then MaritalStatus = 'Unknown'; /* বয়স এবং বৈবাহিক অবস্থা যাচাই */
run;

এখানে:

  • যদি Age ১৮ বছরের কম হয় এবং MaritalStatus "Married" থাকে, তাহলে সেটি Unknown হিসাবে চিহ্নিত হবে।

ডেটা ক্লিনিং এবং ভ্যালিডেশন সম্পর্কিত অন্যান্য টুলস

SAS-এ ডেটা ক্লিনিং এবং ভ্যালিডেশন আরো কিছু টুলের মাধ্যমে করা যায়:

PROC FORMAT: ডেটার ভ্যালিডেশন এবং কাস্টম ফরম্যাট তৈরি করা।

উদাহরণ:

proc format;
  value $genderfmt
    'M' = 'Male'
    'F' = 'Female'
    'U' = 'Unknown';
run;
  • এই ফরম্যাটটি M, F, এবং U মানগুলিকে যথাক্রমে "Male", "Female", এবং "Unknown" হিসেবে কনভার্ট করবে।

PROC CHECK: ডেটা সঠিকভাবে প্রক্রিয়া হয়েছে কি না তা যাচাই করতে ব্যবহার করা হয়।


সারাংশ

SAS-এ ডেটা ক্লিনিং এবং ভ্যালিডেশন খুবই গুরুত্বপূর্ণ পদক্ষেপ, যা ডেটার গুণগত মান নিশ্চিত করতে সহায়তা করে। মিসিং ভ্যালু পূর্ণ করা, ডুপ্লিকেট রেকর্ড সরানো, অপ্রয়োজনীয় ভেরিয়েবল অপসারণ, ডেটার মান যাচাই করা এবং রেঞ্জ চেকিং—এসব পদ্ধতি ডেটার বিশুদ্ধতা নিশ্চিত করতে ব্যবহার করা হয়। সঠিক ডেটা ক্লিনিং এবং ভ্যালিডেশন প্রক্রিয়ার মাধ্যমে বিশ্লেষণ এবং রিপোর্ট তৈরির জন্য উচ্চমানের ডেটা পাওয়া যায়।

Content added By

SAS (Statistical Analysis System) ডেটা বিশ্লেষণে একটি গুরুত্বপূর্ণ দিক হল মিসিং ভ্যালু (Missing Values) ম্যানেজমেন্ট। মিসিং ভ্যালু থাকা ডেটা বিশ্লেষণ এবং মডেলিংয়ে সমস্যা সৃষ্টি করতে পারে, তাই সঠিকভাবে মিসিং ভ্যালু হ্যান্ডেল করা গুরুত্বপূর্ণ। SAS-এ মিসিং ভ্যালু ম্যানেজ করতে বিভিন্ন পদ্ধতি রয়েছে, যেমন ডেটা ক্লিনিং, মিসিং ভ্যালুর জন্য শর্ত সৃষ্টি করা, এবং রিকোডিং বা ইম্পুটেশন (imputation) করা।


মিসিং ভ্যালু চিহ্নিত করা

SAS-এ মিসিং ভ্যালু চিহ্নিত করা অত্যন্ত সহজ। যদি কোন ভেরিয়েবলের মান মিসিং থাকে, তবে সেটি SAS-এর মধ্যে একটি বিশেষ চিহ্ন দিয়ে প্রদর্শিত হয়: . (ডট)। সংখ্যা এবং ক্যারেক্টার ভেরিয়েবলগুলির জন্য ভিন্ন ধরনের মিসিং মান থাকতে পারে, কিন্তু সাধারণভাবে, SAS এটি ডট . দিয়ে চিহ্নিত করে।

উদাহরণ: মিসিং ভ্যালু চিহ্নিত করা

data mydata;
   input name $ age salary;
   datalines;
John 25 50000
Jane . 55000
Mike 30 .
;
run;

এখানে, Jane এর age এবং Mike এর salary মিসিং ভ্যালু রয়েছে এবং তা ডট . দিয়ে চিহ্নিত হয়েছে।


মিসিং ভ্যালু ম্যানেজমেন্টের পদ্ধতি

SAS-এ মিসিং ভ্যালু ম্যানেজ করার জন্য বেশ কিছু পদ্ধতি রয়েছে, যেমন:

১. মিসিং ভ্যালু চেক করা

মিসিং ভ্যালু চেক করার জন্য if বা where শর্ত ব্যবহার করা হয়।

উদাহরণ: মিসিং ভ্যালু চেক করা

data missing_check;
   set mydata;
   if age = . then status = 'Missing Age';
   if salary = . then status = 'Missing Salary';
run;

এখানে:

  • age = . এবং salary = . শর্ত দিয়ে মিসিং ভ্যালু চিহ্নিত করা হচ্ছে এবং সেই অনুযায়ী নতুন ভেরিয়েবল status তৈরি হচ্ছে।

২. মিসিং ভ্যালুর জন্য রিকোডিং (Recode Missing Values)

কখনও কখনও মিসিং ভ্যালু রিকোড করা প্রয়োজন হতে পারে। SAS-এ if-then স্টেটমেন্ট ব্যবহার করে মিসিং ভ্যালু রিকোড করা যায়।

উদাহরণ: মিসিং ভ্যালু রিকোড করা

data recoded_data;
   set mydata;
   if age = . then age = 30;  /* age ভেরিয়েবলের মিসিং ভ্যালু ৩০ দিয়ে রিকোড করা */
   if salary = . then salary = 40000;  /* salary ভেরিয়েবলের মিসিং ভ্যালু ৪০০০০ দিয়ে রিকোড করা */
run;

এখানে:

  • if age = . then age = 30; মিসিং age ভেরিয়েবলগুলির জন্য ৩০ মান দিয়ে রিকোড করা হয়েছে।
  • if salary = . then salary = 40000; মিসিং salary ভেরিয়েবলগুলির জন্য ৪০০০০ মান দিয়ে রিকোড করা হয়েছে।

৩. মিসিং ভ্যালুর জন্য ইম্পুটেশন (Imputation)

ইম্পুটেশন হল একটি পদ্ধতি যেখানে মিসিং ভ্যালুর জন্য কোন মান নির্ধারণ করা হয়, যাতে বিশ্লেষণের মধ্যে ডেটার অসম্পূর্ণতা কমানো যায়। এখানে কিছু পদ্ধতি রয়েছে যা ব্যবহার করে মিসিং ভ্যালুর জন্য ইম্পুটেশন করা যায়:

  • মধ্যমান (Mean) বা গড় (Average) দিয়ে ইম্পুটেশন
  • মিডিয়ান (Median) দিয়ে ইম্পুটেশন
  • ফরওয়ার্ড বা ব্যাকওয়ার্ড ভ্যালু ইম্পুটেশন

উদাহরণ: গড় দিয়ে ইম্পুটেশন

proc means data=mydata noprint;
   var salary;
   output out=mean_salary mean=mean_salary;
run;

data imputed_data;
   set mydata;
   if salary = . then set mean_salary;
   if salary = . then salary = mean_salary;
run;

এখানে:

  • প্রথমে proc means ব্যবহার করে salary ভেরিয়েবলের গড় নির্ণয় করা হয়েছে এবং সেটি mean_salary ডেটাসেটে সংরক্ষণ করা হয়েছে।
  • তারপর, salary ভেরিয়েবলটির মিসিং মানগুলিকে গড় দিয়ে ইম্পুটেশন করা হয়েছে।

৪. মিসিং ভ্যালু মুছে ফেলা

অন্য একটি পদ্ধতি হল মিসিং ভ্যালু থাকা রেকর্ডগুলো মুছে ফেলা। এটি বিশেষভাবে তখন কার্যকরী হতে পারে যখন মিসিং ভ্যালু খুব কম থাকে এবং তা বিশ্লেষণের উপর প্রভাব ফেলবে না।

উদাহরণ: মিসিং ভ্যালু মুছে ফেলা

data no_missing;
   set mydata;
   if salary ne .;  /* যেসব রেকর্ডে salary মিসিং নয়, কেবলমাত্র তা রাখা হবে */
run;

এখানে:

  • if salary ne .; শর্ত ব্যবহার করে শুধুমাত্র সেই রেকর্ডগুলো রাখা হচ্ছে, যেখানে salary ভেরিয়েবলটি মিসিং নয়।

মিসিং ভ্যালু হ্যান্ডলিংয়ের উপকারিতা

  • ডেটার পূর্ণতা: মিসিং ভ্যালু ম্যানেজমেন্ট ডেটার পূর্ণতা নিশ্চিত করতে সাহায্য করে।
  • বিশ্লেষণের সঠিকতা: মিসিং ভ্যালু হ্যান্ডলিং ডেটা বিশ্লেষণের সঠিকতা বৃদ্ধি করে।
  • মডেলিং প্রক্রিয়া: মিসিং ভ্যালুর কারণে মডেলিংয়ের গুণগত মান কমে যেতে পারে, তাই ইম্পুটেশন বা রিকোডিং করা অত্যন্ত গুরুত্বপূর্ণ।

সারাংশ

SAS-এ মিসিং ভ্যালু ম্যানেজমেন্ট একটি গুরুত্বপূর্ণ দিক, যা ডেটার সঠিকতা এবং বিশ্লেষণের মান বজায় রাখতে সহায়তা করে। মিসিং ভ্যালু চিহ্নিত করা, রিকোড করা, ইম্পুটেশন এবং মুছে ফেলা সব পদ্ধতিই ডেটা বিশ্লেষণ প্রক্রিয়াকে আরও কার্যকরী এবং নির্ভুল করে তোলে।

Content added By

SAS (Statistical Analysis System) একটি শক্তিশালী টুল, যা ডেটা বিশ্লেষণ, ম্যানিপুলেশন এবং রিপোর্ট তৈরিতে ব্যবহৃত হয়। তবে, সঠিক বিশ্লেষণ করার জন্য ডেটার গুণগত মান (data quality) নিশ্চিত করা অত্যন্ত গুরুত্বপূর্ণ। ডেটা ভ্যালিডেশন এবং এরর চেকিং একটি গুরুত্বপূর্ণ প্রক্রিয়া, যা নিশ্চিত করে যে ডেটার মধ্যে কোনো ভুল বা অনিচ্ছাকৃত তথ্য নেই এবং তা বিশ্লেষণের জন্য প্রস্তুত।


ডেটা ভ্যালিডেশন (Data Validation)

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

ডেটা ভ্যালিডেশনের জন্য সাধারণ কৌশল:

  • ডেটার ধরন চেক করা: নিশ্চিত করা যে প্রতিটি ভেরিয়েবল তার সঠিক ডেটা টাইপের (যেমন, নামের জন্য ক্যারেক্টার টাইপ, বয়সের জন্য নিউমেরিক টাইপ) অন্তর্ভুক্ত রয়েছে।
  • সীমা চেক করা: ভেরিয়েবলের মান নির্দিষ্ট সীমার মধ্যে থাকা উচিত, যেমন বয়সের জন্য ১ থেকে ১০০ এর মধ্যে, বা পার্সেন্টেজ ০% থেকে ১০০% এর মধ্যে।
  • ডুপ্লিকেট চেক করা: ডেটাসেটে কোনো ডুপ্লিকেট রেকর্ড থাকলে তা চিহ্নিত করা।

উদাহরণ: ডেটা ভ্যালিডেশন

DATA validated_data;
   SET original_data;
   /* বয়স ১৮ এর নিচে না হলে */
   IF Age < 18 OR Age > 100 THEN 
      PUT 'Invalid Age: ' Age=;
   /* পার্সেন্টেজ ০ থেকে ১০০ এর মধ্যে */
   IF Percentage < 0 OR Percentage > 100 THEN
      PUT 'Invalid Percentage: ' Percentage=;
RUN;

এখানে:

  • প্রথম শর্তে, Age ভেরিয়েবলের মান ১৮ থেকে ১০০ এর মধ্যে থাকতে হবে। অন্যথায় এটি একটি ত্রুটি বার্তা প্রিন্ট করবে।
  • দ্বিতীয় শর্তে, Percentage ভেরিয়েবলের মান ০ থেকে ১০০ এর মধ্যে থাকতে হবে।

এরর চেকিং (Error Checking)

SAS-এ এরর চেকিং হল ডেটাসেটের মধ্যে অস্বাভাবিক বা ভুল ডেটা চিহ্নিত করা এবং সে সম্পর্কে বার্তা প্রদানের প্রক্রিয়া। এটি ডেটার গুণগত মান নিশ্চিত করতে সহায়তা করে এবং পরবর্তী বিশ্লেষণে ভুল ফলাফল এড়াতে সাহায্য করে।

SAS-এ এরর চেকিং করার জন্য বিভিন্ন পদ্ধতি:

  • PUT স্টেটমেন্ট: এটি ত্রুটি বার্তা আউটপুট ফাইল বা লগে প্রদর্শন করতে ব্যবহৃত হয়।
  • IF-THEN শর্ত: সুনির্দিষ্ট শর্ত পূর্ণ হলে ত্রুটি বার্তা প্রদান করা হয়।
  • ERROR এবং WARNING: SAS লোগে স্বয়ংক্রিয়ভাবে ত্রুটি বা সতর্কবার্তা দেয় যদি কোন ভুল থাকে।

উদাহরণ: এরর চেকিং

DATA error_check_data;
   SET original_data;
   /* যদি Age ভেরিয়েবল ফাঁকা থাকে, ত্রুটি বার্তা */
   IF Age = . THEN PUT 'ERROR: Age is missing';
   /* যদি Salary ০ এর নিচে থাকে, সতর্কবার্তা */
   IF Salary < 0 THEN PUT 'WARNING: Negative Salary value: ' Salary=;
RUN;

এখানে:

  • যদি Age ফাঁকা (missing) থাকে, তাহলে একটি ত্রুটি বার্তা প্রিন্ট হবে।
  • যদি Salary ভেরিয়েবলের মান ০ এর নিচে থাকে, তাহলে একটি সতর্কবার্তা প্রদর্শিত হবে।

স্যাসে ডেটা ভ্যালিডেশন এবং এরর চেকিংয়ের গুরুত্বপূর্ণ টুলস

১. PROC CONTENTS:

PROC CONTENTS স্টেটমেন্ট ব্যবহার করে আপনি ডেটাসেটের সমস্ত ভেরিয়েবল এবং তাদের বৈশিষ্ট্য যাচাই করতে পারেন, যেমন ভেরিয়েবলের টাইপ, দৈর্ঘ্য, এবং ফরম্যাট।

PROC CONTENTS DATA=original_data;
RUN;

২. PROC FREQ:

PROC FREQ কমান্ড ব্যবহার করে ডেটাসেটে ক্যাটাগরিক্যাল ভেরিয়েবলগুলোর ফ্রিকোয়েন্সি চেক করতে পারেন। এর মাধ্যমে আপনি ভ্যালিডেশন চেক করতে পারেন যেমন কোন ভেরিয়েবলে অনুপস্থিত মান আছে কিনা।

PROC FREQ DATA=original_data;
   TABLES Age Gender;
RUN;

এখানে, PROC FREQ Age এবং Gender ভেরিয়েবলের ফ্রিকোয়েন্সি টেবিল তৈরি করবে এবং অনুপস্থিত বা অস্বাভাবিক মান চিহ্নিত করতে সহায়তা করবে।


সারাংশ

SAS-এ ডেটা ভ্যালিডেশন এবং এরর চেকিং ডেটা বিশ্লেষণের জন্য অত্যন্ত গুরুত্বপূর্ণ। এটি ডেটার সঠিকতা এবং মান নিশ্চিত করতে সাহায্য করে এবং পরবর্তী বিশ্লেষণ বা রিপোর্ট তৈরিতে ভুল ফলাফল থেকে রক্ষা করে। IF-THEN, PUT স্টেটমেন্ট, এবং অন্যান্য টুলস যেমন PROC CONTENTS এবং PROC FREQ ব্যবহার করে ডেটা ভ্যালিডেশন এবং এরর চেকিং কার্যকরভাবে করা যায়। এর মাধ্যমে আপনি ডেটাসেটে যে কোনো ভুল বা অস্বাভাবিক তথ্য সহজেই চিহ্নিত করতে পারবেন।

Content added By

SAS (Statistical Analysis System) প্রোগ্রামিং ভাষায় Character Data এবং Numeric Data উভয়ের জন্য বিভিন্ন ম্যানিপুলেশন টেকনিক রয়েছে। এই টেকনিকগুলো ডেটার উপস্থাপন, পরিবর্তন, এবং বিশ্লেষণে ব্যবহৃত হয়। সেক্ষেত্রে character এবং numeric ডেটা নিয়ে বিভিন্ন ক্রিয়াকলাপ (manipulation) করা হয় যেমন নতুন ভেরিয়েবল তৈরি, ডেটার রূপান্তর, ম্যানিপুলেশন বা বিশ্লেষণ ইত্যাদি।


Character Data Manipulation Techniques

Character Data এমন ডেটা যা অক্ষর (letters), সংখ্যা, স্পেস, এবং অন্যান্য চিহ্নের সমষ্টি হয়ে থাকে। স্যাসে character ডেটার সাথে বিভিন্ন ধরনের ম্যানিপুলেশন করা যায়।

১. LENGTH Function

LENGTH ফাংশন ব্যবহার করে একটি character ভেরিয়েবলের দৈর্ঘ্য (length) বের করা হয়।

উদাহরণ:

data work.example;
   input name $;
   length_name = length(name); /* length() function to find the length */
   datalines;
John
Sara
Alexander
;
run;

proc print data=work.example;
run;

এখানে, length_name ভেরিয়েবলটি name ভেরিয়েবলের দৈর্ঘ্য (character count) রেকর্ড করবে।

২. SUBSTR Function

SUBSTR ফাংশন দিয়ে একটি character স্ট্রিং এর নির্দিষ্ট অংশ বের করা যায়।

উদাহরণ:

data work.example;
   input name $;
   first_three = substr(name, 1, 3); /* Extract first 3 characters */
   datalines;
John
Sara
Alexander
;
run;

proc print data=work.example;
run;

এখানে, substr(name, 1, 3) name থেকে প্রথম তিনটি অক্ষর বের করবে।

৩. UPCASE এবং LOWCASE Functions

UPCASE এবং LOWCASE ফাংশন ব্যবহার করে character ডেটাকে যথাক্রমে বড় হাতের এবং ছোট হাতের অক্ষরে রূপান্তর করা যায়।

উদাহরণ:

data work.example;
   input name $;
   upper_name = upcase(name); /* Convert to uppercase */
   lower_name = lowcase(name); /* Convert to lowercase */
   datalines;
John
Sara
Alexander
;
run;

proc print data=work.example;
run;

এখানে, upper_name তে নামের বড় হাতের অক্ষর এবং lower_name তে ছোট হাতের অক্ষর রূপান্তরিত হবে।

৪. TRIM Function

TRIM ফাংশনটি একটি character ভেরিয়েবল থেকে অতিরিক্ত স্পেস (spaces) মুছে ফেলতে ব্যবহৃত হয়।

উদাহরণ:

data work.example;
   input name $;
   trimmed_name = trim(name); /* Remove trailing spaces */
   datalines;
John     
Sara     
Alexander
;
run;

proc print data=work.example;
run;

এখানে, trim(name) শেষের অতিরিক্ত স্পেসগুলি মুছে ফেলবে।

৫. TRANSLATE Function

TRANSLATE ফাংশন ব্যবহার করে একটি character স্ট্রিং-এর অক্ষর পরিবর্তন করা যায়।

উদাহরণ:

data work.example;
   input name $;
   new_name = translate(name, "X", "a"); /* Replace 'a' with 'X' */
   datalines;
John
Sara
Alexander
;
run;

proc print data=work.example;
run;

এখানে, translate(name, "X", "a") সমস্ত a অক্ষরকে X দিয়ে প্রতিস্থাপন করবে।


Numeric Data Manipulation Techniques

Numeric Data হলো এমন ডেটা যা কেবলমাত্র সংখ্যা ধারণ করে এবং গণনা বা গাণিতিক অপারেশন করতে ব্যবহৃত হয়। SAS-এ numeric ডেটা ম্যানিপুলেশনের জন্য বিভিন্ন ফাংশন এবং টেকনিক ব্যবহৃত হয়।

১. SUM Function

SUM ফাংশন দিয়ে একটি ভেরিয়েবলের মোট যোগফল (sum) বের করা হয়।

উদাহরণ:

data work.example;
   input sales;
   total_sales + sales; /* Calculate total sales */
   datalines;
100
200
300
;
run;

proc print data=work.example;
run;

এখানে, total_sales + sales; প্রতিটি রেকর্ডে sales ভেরিয়েবলের মান যোগ করবে এবং total_sales এর যোগফল তৈরি করবে।

২. MEAN Function

MEAN ফাংশন দিয়ে এক বা একাধিক numeric ভেরিয়েবলের গড় (mean) বের করা যায়।

উদাহরণ:

data work.example;
   input score1 score2 score3;
   avg_score = mean(score1, score2, score3); /* Calculate the mean */
   datalines;
80 90 85
70 85 78
90 88 92
;
run;

proc print data=work.example;
run;

এখানে, mean(score1, score2, score3) তিনটি স্কোরের গড় বের করবে।

৩. ROUND Function

ROUND ফাংশন ব্যবহার করে একটি numeric ভেরিয়েবলকে নির্দিষ্ট সংখ্যার ঘূর্ণন (rounding) করা যায়।

উদাহরণ:

data work.example;
   input price;
   rounded_price = round(price, 5); /* Round price to nearest multiple of 5 */
   datalines;
23
17
42
;
run;

proc print data=work.example;
run;

এখানে, round(price, 5) প্রতিটি price মানকে ৫ এর গুণে ঘূর্ণন করবে।

৪. INT Function

INT ফাংশন দিয়ে একটি সংখ্যা থেকে দশমিক স্থান বাদ দেওয়া হয় এবং শুধু পূর্ণসংখ্যা (integer) পাওয়া যায়।

উদাহরণ:

data work.example;
   input value;
   int_value = int(value); /* Get the integer part */
   datalines;
23.45
78.99
45.33
;
run;

proc print data=work.example;
run;

এখানে, int(value) প্রতিটি value থেকে দশমিক অংশ মুছে পূর্ণসংখ্যা তৈরি করবে।

৫. ABS Function

ABS ফাংশনটি একটি সংখ্যার অভ্যন্তরীণ মান বের করতে ব্যবহৃত হয়, অর্থাৎ এটি কোন সংখ্যার নেতিবাচক মান থেকে ইতিবাচক মান তৈরি করে।

উদাহরণ:

data work.example;
   input value;
   absolute_value = abs(value); /* Get the absolute value */
   datalines;
-25
-100
50
;
run;

proc print data=work.example;
run;

এখানে, abs(value) নেতিবাচক মানগুলিকে ইতিবাচক মানে রূপান্তর করবে।


সারাংশ

SAS-এ Character এবং Numeric Data ম্যানিপুলেশনের জন্য বিভিন্ন শক্তিশালী টেকনিক ও ফাংশন রয়েছে। Character Data এর জন্য length(), substr(), upcase(), trim() এবং translate() ফাংশন ব্যবহৃত হয়। অপরদিকে, Numeric Data এর জন্য sum(), mean(), round(), int(), এবং abs() ফাংশনগুলি ব্যবহার করে ডেটার ওপর গাণিতিক বা গাণিতিকভাবে সংশোধন করা যায়। এই ম্যানিপুলেশন টেকনিকগুলির মাধ্যমে আপনি ডেটা বিশ্লেষণ, ম্যানিপুলেশন এবং রিপোর্ট তৈরির কাজ সহজেই করতে পারবেন।

Content added By

ডেটা বিশ্লেষণের অন্যতম গুরুত্বপূর্ণ কাজ হল ডেটার duplication (ডুপ্লিকেশন) এবং inconsistency (অসংগতি) সনাক্ত এবং পরিচালনা করা। সঠিক ডেটা বিশ্লেষণ নিশ্চিত করার জন্য এই ধরনের সমস্যাগুলি দূর করা খুবই গুরুত্বপূর্ণ। SAS এই সমস্যাগুলি মোকাবেলা করার জন্য বেশ কিছু শক্তিশালী টুল এবং স্টেটমেন্ট সরবরাহ করে, যা ডেটা ক্লিনিং প্রক্রিয়াকে সহজ করে তোলে।


Data Duplication Handling (ডেটা ডুপ্লিকেশন পরিচালনা)

ডেটা ডুপ্লিকেশন হল একে অপরের অনুরূপ বা একই রেকর্ড বার বার থাকা। যখন একটি ডেটাসেটে একই রেকর্ড একাধিকবার থাকে, তখন তা বিশ্লেষণের ভুল ফলাফল সৃষ্টি করতে পারে। SAS এ ডুপ্লিকেট রেকর্ড চিহ্নিত এবং সরানোর জন্য কিছু পদ্ধতি রয়েছে।

১. ডুপ্লিকেশন সনাক্ত করা

ডুপ্লিকেট রেকর্ড চিহ্নিত করার জন্য PROC SORT এবং NODUPLICATES অপশন ব্যবহার করা যায়। এটি ডেটাসেটের ডুপ্লিকেট রেকর্ডগুলো সরিয়ে ফেলবে এবং একটি ইউনিক ডেটাসেট তৈরি করবে।

উদাহরণ: ডুপ্লিকেট রেকর্ড সরানো

proc sort data=mydata nodupkey;
   by name age; /* নির্দিষ্ট ভেরিয়েবলের উপর ভিত্তি করে ডুপ্লিকেট সরানো */
run;

এখানে:

  • nodupkey অপশন ব্যবহার করা হয়েছে, যা একই কিজ ভেরিয়েবলের জন্য ডুপ্লিকেট রেকর্ডগুলো সরিয়ে ফেলবে।
  • by name age; দ্বারা name এবং age ভেরিয়েবলগুলির উপর ভিত্তি করে ডুপ্লিকেট রেকর্ড সরানো হবে।

২. ডুপ্লিকেট রেকর্ড চিহ্নিত করা

ডুপ্লিকেট রেকর্ড চিহ্নিত করতে FIRST. এবং LAST. ব্যবহার করা হয়। এই পদ্ধতিতে আপনি ডুপ্লিকেট রেকর্ডের প্রথম এবং শেষ রেকর্ড চিহ্নিত করতে পারেন।

উদাহরণ: ডুপ্লিকেট রেকর্ড চিহ্নিত করা

data flagged_data;
   set mydata;
   by name;
   if first.name then dup_flag = 0;
   else dup_flag = 1;
run;

এখানে:

  • first.name এবং last.name ব্যবহার করা হয়েছে, যা একটি ভেরিয়েবলের প্রথম এবং শেষ রেকর্ড চিহ্নিত করে।
  • dup_flag একটি নতুন ভেরিয়েবল হিসেবে যুক্ত করা হয়েছে, যা ডুপ্লিকেট রেকর্ডকে চিহ্নিত করবে।

Data Inconsistency Handling (ডেটা অসম্পূর্ণতা পরিচালনা)

ডেটা ইনকনসিস্টেন্সি হল এমন সমস্যা যেখানে ডেটার মধ্যে অস্বাভাবিকতা বা ভুল তথ্য থাকে। এটি ডেটা অ্যাকুরেসি এবং বিশ্লেষণের উপর প্রভাব ফেলতে পারে। ইনকনসিস্টেন্সি দূর করতে ডেটা ক্লিনিং এবং ভেরিফিকেশন প্রয়োজন।

১. মিসিং ভ্যালু ফিল করা

ডেটাসেটে মিসিং ভ্যালু থাকলে, তা ডেটার অসঙ্গতি সৃষ্টি করতে পারে। SAS এ মিসিং ভ্যালু ফিল করার জন্য বিভিন্ন পদ্ধতি রয়েছে, যেমন মিডিয়ান, গড়, বা মুছে ফেলা।

উদাহরণ: মিসিং ভ্যালু ফিল করা

data cleaned_data;
   set mydata;
   if age = . then age = 30; /* age ভেরিয়েবলের মিসিং মান ৩০ দিয়ে ফিল করা */
run;

এখানে:

  • ., SAS এ মিসিং মান বোঝাতে ব্যবহৃত হয়।
  • যদি age ভেরিয়েবলটি মিসিং থাকে, তবে তার মান ৩০ দিয়ে ফিল করা হবে।

২. ডেটা রেঞ্জ যাচাই করা

কখনও কখনও ডেটাসেটে কিছু অস্বাভাবিক মান থাকে যা বিশ্লেষণে সমস্যা তৈরি করতে পারে। IF শর্ত ব্যবহার করে আপনি এই ধরনের ডেটা যাচাই করতে পারেন এবং সেগুলি ঠিক করতে পারেন।

উদাহরণ: ডেটা রেঞ্জ যাচাই

data valid_data;
   set mydata;
   if age < 0 or age > 120 then age = .; /* অস্বাভাবিক বয়স মান মুছে ফেলা */
run;

এখানে:

  • age ভেরিয়েবলের মান ০ এর কম বা ১২০ এর বেশি হলে তা মুছে দেওয়া হবে।

৩. স্ট্যান্ডার্ডাইজেশন

কখনও কখনও ডেটাসেটে বিভিন্ন স্টাইল বা ফরম্যাটে তথ্য থাকে (যেমন, নামের ক্ষেত্রে বড় হাতের অক্ষর এবং ছোট হাতের অক্ষর)। এই ধরনের ইনকনসিস্টেন্সি দূর করার জন্য স্ট্যান্ডার্ডাইজেশন প্রয়োজন।

উদাহরণ: টেক্সট স্ট্যান্ডার্ডাইজেশন

data standardized_data;
   set mydata;
   name = upcase(name); /* নামকে বড় হাতের অক্ষরে পরিবর্তন করা */
run;

এখানে:

  • upcase(name) ব্যবহার করে name ভেরিয়েবলটির সকল অক্ষর বড় হাতের অক্ষরে রূপান্তরিত করা হয়েছে।

সারাংশ

SAS-এ ডেটা ডুপ্লিকেশন এবং ডেটা ইনকনসিস্টেন্সি মোকাবেলা করার জন্য বিভিন্ন শক্তিশালী টুল এবং স্টেটমেন্ট রয়েছে। আপনি PROC SORT, NODUPLICATES, এবং FIRST./LAST. ব্যবহার করে ডেটাসেটের ডুপ্লিকেট রেকর্ড সরাতে পারেন। একইভাবে, মিসিং ভ্যালু ফিল করা, ডেটা রেঞ্জ যাচাই করা এবং স্ট্যান্ডার্ডাইজেশন পদ্ধতি ব্যবহার করে ডেটার ইনকনসিস্টেন্সি দূর করা যায়। এই ধরনের ডেটা ক্লিনিং প্রক্রিয়া ডেটা বিশ্লেষণের সঠিকতা এবং কার্যকারিতা নিশ্চিত করতে সহায়ক।

Content added By
Promotion

Are you sure to start over?

Loading...