تعریف و طبقه‌بندی

چگونه با داده‌ها مواجه شویم؟

مرور مفاهیم و ایده‌های اصلی در آمار

روایت‌گری با داده‌ها و انواع آن

آشنایی با داده‌های عمومی

تعریف پروژه و گزارش‌نویسی موثر

سازماندهی داده‌ها در قالب جدول

فهرست

وقتی می‌خواهیم با تکیه بر مجموعه‌ای از داده‌ و مشاهده به موضوعی بپردازیم یا به پرسشی پاسخ دهیم ممکن است در ابتدا هیچ داده‌ای در اختیار نداشته باشیم. در چنین شرایطی لازم است در اولین گام داده‌ها و اطلاعات مورد نظرمان را گردآوری و به نحو مطلوب سازماندهی کنیم. پرسش مهمی که در تمامی پروژه تحلیل داده وجود دارد این است که داده را در چه اشکالی سازماندهی کنم تا بیشترین کارایی را برای پردازش و تحلیل داشته باشد. 

این سوال از نظر عملیاتی برای تحلیل داده یک سوال کلیدی به حساب می‌آید، چون به تحلیلگر ذهنیت روشنی می‌دهد که از کجا باید شروع کند.  

عامل انسانی در اولویت

در علوم کامپیوتر در بحث «ساختمان داده‌ها» پاسخ‌های مشخصی برای این سوال وجود دارد. این پاسخ‌ها عموما ناظر بر بهینه کردن حجم پردازش و زمان آن است. اگر بخواهیم زمان تحلیلگر که یک عامل انسانی است را در نظر بگیریم موضوع کمی تفاوت پیدا می‌کند. برای اینکه کار با داده‌ها را برای تحلیلگر راحت و کارآمد کنیم باید از قالب‌های ساده و استانداردی استفاده کنیم که تحلیلگر بتواند با صرف کمترین زمان از داده‌ها سر در بیاورد، حتی اگر بار حافظه یا حجم پردازشی که برای کامپیوتر ایجاد می‌شود افزایش یابد و از حالت بهینه خارج شود. این امر در دیتاژورنالیسم اهمیت بیشتری نیز پیدا می‌کند، چون موتور محرک آن بیشتر از آن که کامپیوتر و امکانات پردازشی آن باشد، در حقیقت همان عامل انسانی یا به عبارت دقیق‌تر تحلیلگر داده است. با این حال، باید از ساختارهایی برای مدیریت داده‌ها استفاده کرد که پردازش و تحلیل داده‌ها با استفاده از کامپیوتر نه تنها امکان‌پذیر بلکه به راحتی قابل انجام باشد.

قالب جدول

برای سازماندهی داده‌ها با هدف پردازش و تحلیل، روش‌ها و قالب‌های مختلفی وجود دارد. یکی از پرطرفدارترین آن‌ها قالبِ جدول است. در این درس به معرفی قالب جدول و روش‌های استاندارد سازماندهی داده‌ها در یک جدول پرداخته می‌شود. 

پرطرفدار بودن قالب جدول و استانداردهای آن، نیز به خودی خود موضوعیت دارد، چرا که داده بین تحلیلگران زیاد دست‌به‌دست می‌شود. به همین دلیل استفاده از استانداردهایی که جامعه کاربران بزرگتری دارد با ایجاد هم‌افزایی، سرعت کار تحلیلگر و کیفیت کار تحلیل داده را به صورت عمومی افزایش می‌دهد.

روش‌های گردآوری داده‌ها و سازماندهی داده‌ها در قالب جدول با ارائه چند مثال توضیح داده خواهد شد‌.

بررسی وضعیت سلامت

فرض کنید به خاطر وضعیت آلودگی هوا کمی نسبت به وضعیت سلامت خود حساس شده‌اید و می‌خواهید ببینید برخی شاخص‌های سلامتتان مانند هموگلوبین، تعداد گلبول‌های سفید، تعداد گلبول‌های قرمز، کلسترول خوب و کلسترول بد در سال‌های اخیر چگونه تغییر کرده‌اند. برای این کار نتایج آزمایش خونی که در سال‌های اخیر از آزمایشگاه‌های مختلف دارید را جمع آوری می‌کنید و اعداد مربوطه را از آن‌ها استخراج می‌کنید تا در یک جدول وارد کنید. 

bloodtest | سازماندهی داده‌ها در قالب جدول

یک روش مناسب برای ذخیره این داده‌ها در یک جدول این است که مجموعه داده‌های هر آزمایش را در یک سطر مجزا بیاوریم. به جدول زیر نگاه کنید:

تاریخهموگلوبینتعداد گلبول‌های سفیدتعداد گلبول‌های قرمزکلسترول خوبکلسترول بد
1392/12/0317.17.85.444110
1394/05/2116.47.35.142112
1395/08/0216.97.15.545113
1398/07/1517.77.65.447118
1400/02/2718.58.25.946114
1401/05/1817.98.16.145118

در این ساختار، آرایش‌ آن‌ها به گونه‌ای است که هر سطر نشان‌دهندۀ یک مشاهده، هر ستون نشان‌دهندۀ یک متغیر و هر خانه از جدول نشان‌دهندۀ تنها یک مقدار است. 

سطر: مشاهده

هر یک از سطرها در جدول بالا، معرّف مقادیر مربوط به نتایج یکی از آزمایش‌هاست که اصطلاحاً به هر یک از آن‌ها یک مشاهده (Observation) گفته می‌شود. مشاهده‌ها با استفاده از یکدیگر قابل محاسبه نیستند؛ مثلا اگر مقدار متوسط شاخص‌ها در تمامی آزمایش‌ها را در یک سطر به انتهای جدول اضافه کنیم، این سطر دیگر یک مشاهده قلمداد نمی‌شود چون با استفاده از دیگر سطرها می‌توان مقدار آن را تعیین کرد. 

ستون: ویژگی (متغیر)

اگر سطرهای جدول نشانگرِ یک مشاهده باشند، می‌توانیم هر یک از ستون‌های آن را از نقطه‌نظر آماری یک ویژگی (Feature) قلمداد کنیم. ستون تاریخ در اینجا حکم شناسه مشاهدات را دارد و آن‌ها را از یکدیگر متمایز می‌کند و می‌توان آن‌ را به عنوان نام مشاهدات در نظر گرفت نه یک متغیر یا ویژگی. 

مقدارهایی که در هر یک از ستون‌ها آمده همگی از یک جنس هستند یعنی همه به یک پدیده اشاره می‌کنند به همین دلیل به آن متغیر (Variable) نیز می‌گویند، اما مقدارهایی که در هر یک از سطرها می‌آیند این گونه نیستند و به شاخص‌های متنوعی اشاره می‌کنند. اگر به کوچکی و بزرگی اعداد نیز نگاه کنید نیز اعداد داخل هر یک از ستون‌‌ها از نظر بزرگی و کوچکی کم و بیش به یکدیگر نزدیکند اما اعداد درج‌شده در هر یک از سطرها ممکن است تفاوت زیادی با یکدیگر داشته باشند، چراکه به شاخص‌های مختلفی اشاره می‌کنند. 

در این روش سازماندهی داده‌ها، هیچ دو خانه‌ای با یکدیگر ادغام (merge) نمی‌شود و جدول ساختاری ساده شبیه به یک ماتریس دارد تا هر خانه تنها با صدا کردن سطر و ستون آن قابل فراخوانی باشد. ادغام خانه‌های جدول با یکدیگر تنها زمانی کاربرد دارد که هیچ هدفی غیر از ارائه بصری جدول یا چاپ آن نداشته باشیم.

ساختار عرضی (Wide Format)

به ساختار ذخیره‌سازی داده در جدول اصطلاحاً ساختار عرضی نیز می‌گویند. وقتی داده‌ها را در یک جدول با ساختار عرضی سازماندهی می‌کنیم، جدول با افزودن ویژگی‌های بیشتر در عرض رشد می‌کند. شاید مهم‌ترین مزیت ساختار عرضی این باشد که مقادیر ستون‌ها همگن است و می‌توان با آن‌ها به عنوان مجموعه‌ای از مقدارهای یک‌دست یا به بیان دیگر یک بردار برخورد کرد، مثلا مقدارهای یک ستون را جمع کرد یا میانگین گرفت یا ستونی را بر ستون دیگر تقسیم کرد. به عبارت دیگر این ساختار انجام اعمال ریاضی را برای کامپیوتر ممکن می‌کند و تحلیلگر می‌تواند با یک فرمان ساده مقدار مورد نظرش را محاسبه کند. 

به عنوان مثال، یکی از شاخص‌هایی که برای سنجش سلامت فرد کاربرد دارد، نسبت کلسترول بد به کلسترول خوب است که برای محاسبه آن می‌توان به سادگی ستون کلسترول بد را به ستون کلسترول خوب به صورت نظیر به نظیر تقسیم کرد. این دستور برای کامپیوتر خوش‌تعریف و قابل فهم است.

اگر بخواهیم روند تغییرات هر یک از ویژگی‌ها را مشاهده کنیم نیز می‌توانیم تنها با فراخوانی ستون مربوطه آن را روی نمودار ببریم و روند تغییرات را مشاهده کنیم.

hemoglobin trend | سازماندهی داده‌ها در قالب جدول

ساختار طولی (Long Format)

در مقابل ساختار عرضی یک ساختار طولی برای سازماندهی داده‌ها در جداول نیز وجود دارد. در ساختار طولی، با افزودن تعداد ویژگی‌ها، جدول در عرض رشد نمی‌کند بلکه به تعداد سطرهای آن اضافه می‌شود و در طول رشد می‌کند یا اصطلاحاً دراز می‌شود. اگر همین داده‌هایی که برای نتایج آزمایش‌های خون گردآوری کرده بودیم را در ساختار طولی سازماندهی کنیم نتیجه به صورت زیر می‌شود:

تاریخویژگیمقدار
1392/12/03 هموگلوبین 17.1
1392/12/03تعداد گلبول‌های سفید7.8
1392/12/03تعداد گلبول‌های قرمز5.4
1392/12/03کلسترول خوب44
1392/12/03کلسترول بد110
1394/05/21 هموگلوبین 16.4
1394/05/21تعداد گلبول‌های سفید7.3
1394/05/21تعداد گلبول‌های قرمز5.1
1394/05/21کلسترول خوب42
1394/05/21کلسترول بد112
1395/08/02 هموگلوبین 16.9
1395/08/02تعداد گلبول‌های سفید7.1
1395/08/02تعداد گلبول‌های قرمز5.5
1395/08/02کلسترول خوب45
1395/08/02کلسترول بد113
1398/07/15 هموگلوبین 17.7
1398/07/15تعداد گلبول‌های سفید7.6
1398/07/15تعداد گلبول‌های قرمز5.4
1398/07/15کلسترول خوب47
1398/07/15کلسترول بد118
1400/02/27 هموگلوبین 18.5
1400/02/27تعداد گلبول‌های سفید8.2
1400/02/27تعداد گلبول‌های قرمز5.9
1400/02/27کلسترول خوب46
1400/02/27کلسترول بد114
1401/05/18 هموگلوبین 17.9
1401/05/18تعداد گلبول‌های سفید8.1
1401/05/18تعداد گلبول‌های قرمز6.1
1401/05/18کلسترول خوب45
1401/05/18کلسترول بد118

این جدول عینا همان داده‌هایی را که در ساختار عرضی ارائه شده بود در بر می‌گیرد. در ساختار طولی به جای اینکه مقدارها در ساختاری شبیه ماتریس ذخیره شوند، در طول یک ستون مرتب می‌شوند. در جدول فوق که با ساختار طولی تنظیم شده، شناسۀ مشاهدات (تاریخ) و نام هر یک از ویژگی‌ها تکرار شده‌اند تا پیدا کردن هر یک از مقدارها از طریق‌ آن‌ها امکان‌پذیر باشد. 

در ساختار طولی هم می‌توانیم هر سطر را به عنوان یک مشاهده در نظر بگیریم، اگرچه تمام مشاهدات در آن مانند ساختار عرضی از یک جنس نیستند. 

فیلتر کردن جدول

ساختار طولی نیز مشابه ساختار عرضی منطق مشخص و ساده‌‌ای برای فراخوانی مقدارها دارد. به همین دلیل پردازش و تحلیل آن به خوبی امکان‌پذیر است. مثلا اگر بخواهیم ببینیم در تاریخ 1398/07/15، تعداد گلبول‌های سفید چقدر بوده کافی است جدول را در ستون‌های مربوطه اصطلاحاً روی این موارد فیلتر کنیم. منظور از فیلتر کردن جدول روی این موارد این است که سطرهایی از جدول را فراخوانی کنیم که در آن‌ها مقدار ستون تاریخ برابر 1398/07/15 و مقدار ستون ویژگی برابر تعداد گلبول‌های سفید باشد تا به مقدار مورد نظر خود دست‌ یابیم. 

long wide transformation | سازماندهی داده‌ها در قالب جدول
تبدیل جداول عرضی به طولی و برعکس همیشه امکان‌پذیر است. در ابزارها و زبان‌های مختلف از نام‌هایی مانند melt و pivot یا dcast استفاده می‌شود. در پردازش و تحلیل داده زیاد از این تبدیل‌ها استفاده می‌شود.

تلفیق ساختار طولی و عرضی

بسیاری از جداولی که با آن‌ها سر و کار داریم در حقیقت تلفیقی از ساختار طولی و ساختار عرضی هستند. به عنوان مثال فرض کنید به جای نتایج آزمایش یک نفر، نتایج آزمایش سه نفر را در اختیار داریم: شخص A و B و C. اگر بخواهیم داده‌های این سه نفر را در یک جدول داشته باشیم، علاوه بر استفاده از ساختارهای طولی و عرضی، یکی از روش‌های پرکاربرد در پردازش و تحلیل داده این است که با تکرار نام‌ها در هر سطر از تلفیقی از ساختار طولی و عرضی به صورت زیر استفاده کنیم.

نامتاریخهموگلوبینتعداد گلبول‌های سفیدتعداد گلبول‌های قرمزکلسترول خوبکلسترول بد
A1392/12/0317.17.85.444110
A1394/05/2116.47.35.142112
A1395/08/0216.97.15.545113
A1398/07/1517.77.65.447118
A1400/02/2718.58.25.946114
A1401/05/1817.98.16.145118
B1391/02/1416.17.1648108
B1393/11/1215.96.9549110
B1394/07/1316.46.95.141112
B1399/09/18177.35.24.2110
B1400/01/1918.58.15.749119
B1400/05/2717.17.95.146114
B1401/03/1217.98.1644108
B1401/04/0117.48641115
C1392/07/1216.77.35.241108
C1396/05/2316.27.1540110
C1398/07/1417.37.75.149101

چنانچه مشاهده می‌کنید تعداد مشاهدات مربوط به هر یک از نفرات در جدول بالا برابر نیست. با این حال این تفاوت اشکالی در شیوه ذخیره کردن داده‌ها در جدول ایجاد نکرده است. در این ساختار اگر لازم باشد می‌توانیم ویژگی‌های اشخاص مانند سن و جنسیت آن‌ها را هم مشابه نام آن‌ها در سطرها تکرار و به جدول اضافه کنیم. 

نامجنسیتسال تولدتاریخهموگلوبینتعداد گلبول‌های سفیدتعداد گلبول‌های قرمزکلسترول خوبکلسترول بد
Aمذکر13741392/12/0317.17.85.444110
Aمذکر13741394/05/2116.47.35.142112
Aمذکر13741395/08/0216.97.15.545113
Aمذکر13741398/07/1517.77.65.447118
Aمذکر13741400/02/2718.58.25.946114
Aمذکر13741401/05/1817.98.16.145118
Bمونث13581391/02/1416.17.1648108
Bمونث13581393/11/1215.96.9549110
Bمونث13581394/07/1316.46.95.141112
Bمونث13581399/09/18177.35.24.2110
Bمونث13581400/01/1918.58.15.749119
Bمونث13581400/05/2717.17.95.146114
Bمونث13581401/03/1217.98.1644108
Bمونث13581401/04/0117.48641115
Cمذکر13691392/07/1216.77.35.241108
Cمذکر13691396/05/2316.27.1540110
Cمذکر13691398/07/1417.37.75.149101

این ساختار جدول بالا را به مجموعه‌ای از ویژگی‌ها که در سطرها تکرار می‌شوند (۴ ستون اول) و مجموعه‌ای شاخص‌ها (۵ ستون آخر) برای توصیف هر یک از مشاهدات تقسیم می‌کند. در ادبیات هوش تجاری (Business Intelligence) که برای مدیریت و تحلیل داده در کسب‌وکارها و سازمان‌ها مورد استفاده قرار می‌گیرد، به ویژگی‌ها بُعد (Dimension) و به شاخص‌ها اندازه (Measure) نیز گفته می‌شود. 

خلاصه

در این درس دیدیم چگونه داده‌هایی را که برای بررسی لازم داریم، در قالب یک جدول سازماندهی کنیم. برای این کار لازم است مشخص کنیم چه چیزی را به عنوان یک مشاهده در نظر می‌گیریم و چه ویژگی‌ها یا متغیرهایی را در ارتباط با آن می‌خواهیم ثبت کنیم. در ضمن با ساختار عرضی و ساختار طولی و تلفیقی از هر دو برای ذخیره و نگهداری داده‌ها در قالب جدول آشنا شدیم.

Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors