SAS (سیستم تحلیل آماری) یک مجموعه نرمافزاری است که برای تحلیلهای پیشرفته، هوش تجاری، مدیریت دادهها و تحلیلهای پیشبینی استفاده میشود. این نرمافزار در ابتدا برای دستکاری دادهها و تحلیلهای آماری توسعه یافته بود و به تدریج به مجموعهای از قابلیتهای گسترده، از جمله دادهکاوی، پیشبینی و تحقیق در عملیات، گسترش یافته است. SAS به دلیل قابلیتهای تحلیلی قدرتمند و رابط کاربری آسان خود، در صنایع مختلف—بهویژه بهداشت و درمان، مالی و دانشگاهی—بهطور گستردهای مورد استفاده قرار میگیرد.
SAS در دهه ۱۹۶۰ در دانشگاه ایالت کارولینای شمالی توسط گروهی از محققان به رهبری آنتونی جیمز بار توسعه یافت. هدف اولیه، تحلیل دادههای کشاورزی برای حمایت از پروژههای آماری بود. نسخه اول SAS به زبان اسمبلی نوشته شد و بعداً به یک رابط کاربری دوستانهتر در قالب یک بسته آماری منتقل شد.
در دهه ۱۹۷۰، SAS شروع به جذب توجه خارج از دانشگاهها کرد زیرا شرکتها پتانسیل آن را برای کاربردهای تجاری شناسایی کردند. اولین موسسه SAS در سال ۱۹۷۶ تأسیس شد که از آن زمان به یک شرکت جهانی ارائهدهنده راهحلهای نرمافزاری و خدمات تحلیلی تبدیل شده است. با افزایش تقاضا برای تحلیل دادهها، SAS پیشنهادات خود را متنوع کرده و ابزارهای هوش تجاری، راهحلهای یکپارچهسازی دادهها و قابلیتهای تحلیل پیشرفته را شامل شد.
امروز، SAS یک پیشرو در زمینه تحلیل است و مجموعه نرمافزاری جامعی را ارائه میدهد که شامل طیف وسیعی از تکنیکها و روشهای آماری است. با ظهور دادههای کلان و یادگیری ماشین، SAS با گنجاندن قابلیتهای هوش مصنوعی (AI) و یادگیری ماشین (ML) در پلتفرم خود سازگار شده است. نرمافزار آن بهطور گستردهای برای انطباق و مدیریت ریسک در صنایع با مقررات سخت، مانند داروسازی و مالی، مورد استفاده قرار میگیرد.
هسته برنامهنویسی SAS بر اساس مراحل داده و مراحل رویه (PROC) است. مراحل داده برای دستکاری دادهها استفاده میشوند، در حالی که مراحل PROC برای تحلیل به کار میروند.
data mydata;
input name $ age salary;
datalines;
John 30 50000
Jane 25 60000
;
run;
SAS از دو نوع متغیر پشتیبانی میکند: عددی و کاراکتری. متغیرهای عددی میتوانند اعداد را ذخیره کنند، در حالی که متغیرهای کاراکتری میتوانند رشتههای متنی را ذخیره کنند.
data example;
name = "Alice";
age = 28;
run;
SAS اجازه استفاده از آرایهها را برای دستکاری کارآمد دادهها میدهد.
data array_example;
array nums(3) x1 x2 x3;
do i = 1 to 3;
nums(i) = i * 10;
end;
run;
SAS مجموعهای از توابع داخلی برای تبدیل دادهها، آمار و دستکاری رشتهها ارائه میدهد.
data example;
x = abs(-5); /* مقدار مطلق */
y = length("SAS"); /* طول رشته */
run;
SAS اجازه فرمتدهی به مقادیر دادهها را با استفاده از فرمتها میدهد که ارائه خروجی را بهبود میبخشد.
data formatted;
value = 12345.678;
formatted_value = put(value, dollar8.2); /* فرمت به صورت $12,345.68 */
run;
اضافه کردن برچسب به متغیرها میتواند خوانایی خروجی را بهبود بخشد.
data labeled;
x = 1;
label x = "برچسب متغیر X";
run;
SAS از عبارات شرطی برای دستکاری دادهها پشتیبانی میکند.
data conditional;
set mydata;
if age > 30 then status = "سالمند";
else status = "جوان";
run;
SAS نحوی برای ادغام چندین مجموعه داده بر اساس کلیدهای مشترک ارائه میدهد.
data merged;
merge dataset1 dataset2;
by ID;
run;
SAS شامل قابلیتهای برنامهنویسی ماکرو برای تولید کد دینامیک است.
%macro example(data);
data &data;
set &data;
run;
%mend example;
SAS رویههای داخلی برای ایجاد نمایشهای گرافیکی از دادهها ارائه میدهد.
proc sgplot data=mydata;
scatter x=age y=salary;
run;
SAS Enterprise Guide یک رابط کاربری گرافیکی (GUI) است که بهطور گستردهای برای SAS استفاده میشود و به کاربران اجازه میدهد پروژهها را با استفاده از روش نقطه و کلیک بسازند. محیطهای محبوب دیگر شامل SAS Studio و Base SAS هستند که رویکردی بیشتر کدمحور ارائه میدهند. SAS Viya یک پلتفرم تحلیلی جدید مبتنی بر ابر است که همچنین از برنامهنویسی SAS پشتیبانی میکند.
برای ساخت یک پروژه SAS، کاربران معمولاً اسکریپتهایی را در یک IDE یا ویرایشگر متن مینویسند که سپس برای انجام تبدیلها و تحلیلهای داده اجرا میشوند. روند کاری معمول شامل نوشتن مرحله داده، به دنبال یک یا چند مرحله PROC برای تحلیل یا تجسم دادهها است. خروجی میتواند به فرمتهای مختلفی از جمله CSV، Excel و RTF صادر شود.
SAS عمدتاً در صنایعی که نیاز به تحلیل دقیق دادهها دارند، استفاده میشود، از جمله:
هنگام مقایسه SAS با زبانهای برنامهنویسی مرتبط:
از نظر ترجمه منبع به منبع، ابزارهایی مانند "SASTransformer" وجود دارند که میتوانند تبدیل کد SAS به R، Python یا SQL را تسهیل کنند. با این حال، هر زبان دارای نحو و کتابخانههای منحصر به فردی است که ممکن است معادلهای مستقیم نداشته باشند و نیاز به بررسی دقیق در حین ترجمه دارند.