
در آمار شاخصهای شکل (Shape Measures) بازتابدهنده طرح کلی توزیع دادهها است. شاخصهای شکل بهویژه برای متغیرهای پیوسته بکار میرود. دو شاخص مهم شکل، چولگی (Skewness) و کشیدگی (Kurtosis) هستند.
چولگی
چولگی میزان متقارن بودن توزیع را میسنجد. یک توزیع متقارن مانند توزیع نرمال (Normal Distribution) دارای چولگی صفر است. توزیعی که یک دنباله بلند در سمت راست آن دارد، دارای چولگی مثبت است. در مقابل، چولگی توزیعی که یک دم بلند در سمت چپ دارد، منفی است (شکل-۱).

برای محاسبه چولگی، گشتاور دوم و سوم توزیع بکار میرود. گشتاور r ام یک توزیع، میانگین انحراف توزیع نسبت به میانگین () به توان r ام را میسنجد. گشتاور r ام یک توزیع از رابطه زیر به دست میآید:
چولگی جامعه نسبت گشتاور سوم به واریانس به توان ۱٫۵ است و از رابطه زیر محاسبه میگردد:
در رابطه بالا، و
به ترتیب گشتاور دوم و سوم توزیع هستند. توجه کنید گشتاور دوم، همان واریانس توزیع است. چولگی توزیع نرمال صفر است. برای چنین توزیع متقارنی، میانگین، میانه و مد دادهها با یکدیگر برابر است. درحالیکه برای دادههای دارای چولگی، چنین نیست. برای نمونه، در یک توزیع با چولگی مثبت ازآنجاکه میانگین بیشترین تأثیر را از دادههای پرت (دادههای واقع در انتهای دنباله سمت راست) میگیرد، بیشتر از میانه و مد به سمت راست متمایل میشود (شکل-۲).

برای فهم بهتر مفهوم چولگی، میتوان فرمول چولگی را به شکل زیر بازنویسی کرد:
در عبارت بالا، میانگین جامعه،
انحراف معیار و
امید ریاضی است. در رابطه بالا، استاندارد کردن دادهها در قالب
باعث میشود که دادهها دارای میانگین صفر و انحراف معیار شوند. به این ترتیب اثر مرکزیت و پراکندگی توزیع خنثی میشود و میتوانیم چولگی توزیعها با میانگین و انحراف معیار مختلف را مقایسه کنیم.
استاندارد کردن دادهها همچنین باعث میشود دادهها حول صفر توزیع شوند. وقتی اعداد نزدیک به صفر به توان سوم میرسند کوچکتر میشوند و نقش کمی در محاسبه چولگی بازی کنند، مگر آنکه فاصله بسیار زیادی از مرکز دادهها (میانگین) داشته باشند. به عبارت دیگر دادههایی که در دمهای بلند توزیع قرار میگیرند، نقش مهمی در محاسبه چولگی بازی میکنند.
توان سوم در محاسبه چولگی علامت مثبت و منفی را حفظ میکند. بنابراین هنگام محاسبه چولگی ، اگر یک توزیع متقارن باشد (یعنی دادهها در دمهای دو طرف، شبیه هم توزیع شده باشند) اعداد مثبت و منفی در دمهای بلند اثر هم را خنثی میکنند و مقدار چولگی صفر میشود. به همین دلیل چولگی توزیع نرمال صفر است. پس هر توزیع متقارن دارای چولگی صفر است. ولی لزوماً برعکس آن درست نیست یعنی اگر چولگی یک توزیع صفر باشد، میتواند آن توزیع متقارن نباشد.
با این توضیحات، وقتی یک توزیع دم بلندتری در سمت راست دارد، چولگی را مثبت و وقتی دم بلندتری در سمت چپ دارد، چولگی را منفی میکند.
کشیدگی
کشیدگی میزان قلهگی (Peakedness) نسبی توزیع را سنجش میکند. بهعنوان یک ملاک مقایسه، توزیع نرمال دارای کشیدگی متوسط (Mesokurtic) است. توزیع متقارنی که قله منحنی آن بالاتر از منحنی نرمال است و دنبالههای پهنتری از توزیع نرمال دارد، در اصطلاح کشیده (Leptokurtic) نامیده میشود. در مقابل، توزیع متقارن که قله منحنی آن پایینتر از منحنی نرمال است و دنبالههای نازکتری از توزیع نرمال دارد، در اصطلاح پخ (Platykurtic) نامیده میشود (شکل-۳).

کشیدگی جامعه از نسبت گشتاور چهارم به واریانس به توان ۲ است و از رابطه زیر محاسبه میگردد:
در رابطه بالا، و
به ترتیب گشتاور دوم و چهارم توزیع هستند. توجه کنید کشیدگی توزیع نرمال ۳ است.
برای فهم بهتر مفهوم کشیدگی، میتوان فرمول بالا را به شکل زیر بازنویسی کرد:
دوباره مانند حالت قبل، استاندارد کردن دادهها در قالب باعث میشود که دادهها دارای میانگین صفر و انحراف معیار شوند. به این ترتیب اثر مرکزیت و پراکندگی توزیع خنثی شود تا بتوان کشیدگی توزیعهای مختلف با میانگین و انحراف معیار مختلف را مقایسه کرد.
کشیدگی اثر ترکیبی دمهای توزیع نسبت به کل توزیع را میسنجد. کشیدگی برخلاف چولگی چون دارای توان چهارم است، مقادیر مثبت و منفی یکدیگر را خنثی نمیکنند. همچنین دادههایی که کمتر از یک انحراف معیار از میانگین فاصله دارند (دادههای نزدیک به قله توزیع) نقش بسیار کوچکی در محاسبه کشیدگی پیدا میکنند و آنهایی که در دمها هستند و فاصله زیادی از میانگین دارند نقش بسیار پررنگی در محاسبه کشیدگی پیدا میکنند.
کشیدگی میزان دمهای هر دو طرف توزیع را کمّی میکند. وقتی یک توزیع نسبت به توزیع نرمال، دمهای کلفتتری دارد و قله تیزتری دارد (مانند توزیع t) کشیدگی آن بزرگتر از توزیع نرمال میشود. به همین خاطر احتمال آنکه شما مقادیری با فاصله زیاد از مرکز دادهها ببینید در توزیع t بیشتر از توزیع نرمال است. پدیدهای که در بازارهای مالی آشنا است. معمولاً توزیع بازدهی روزانه سهام در بیشتر بازارهای مالی دنیا از توزیع نرمال پیروی نمیکند و به توزیع t نزدیکتر است. دلالت کاربردی آن در بازارهای مالی این میشود که نباید احتمال آن را که در یک روز قیمت سهام افت شدید کند یا افزایش زیاد داشته باشد، دست کم گرفت.
محاسبه چولگی و کشیدگی در R
در این مثال من برداری مانند x با ۲۰۰ درایه ایجاد کردم که درایههای آن بهصورت تصادفی از توزیع ویبول (Weibull) با پارامترهای shape = 1.5 و scale = 3 بهدستآمدهاند. توجه کنید x میتواند هر نمونه دادهای باشد. هیستوگرام دادهها در شکل-۴ آمده است. برای محاسبه چولگی و کشیدگی در زبان R، یک تابع به اسم moments_func نوشتم، تا بتوانم گشتاور r ام را محاسبه کنم و سپس از آن برمبنای روابط بالا، برای محاسبه شاخصهای شکل استفاده کردم.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | > #Create Synthetic Data > set.seed(123) > x <- rweibull(200, shape = 1.5, scale = 3) > #Histogram of Data > hist(x, breaks = 25) > #Calculate Moments > moments_func <- function(x, r = 2) sum((x-mean(x)) ^ r) / length(x) > #Skewness > moments_func(x, r = 3) / moments_func(x, r = 2) ^ 1.5 [1] 1.237006 > #Kurtosis > moments_func(x, r = 4) / moments_func(x, r = 2) ^ 2 [1] 6.377893 |

راه حل دیگر، استفاده از کتابخانه moments است. توابع skewness و kurtosis برای محاسبه چولگی و کشیدگی بکار می روند.
1 2 3 4 5 6 7 8 | > #Call Moments Library > library('moments') > #Calculate Skewness and Kurtosis > skewness(x) [1] 1.237006 > kurtosis(x) [1] 6.377893 |
محاسبه چولگی و کشیدگی در پایتون
در پایتون من آرایهای مانند x با ۲۰۰ درایه ایجاد کردم که درایههای آن بهصورت تصادفی از توزیع ویبول (Weibull) با پارامترهای shape = 1.5 و scale = 3 بهدستآمدهاند. توجه کنید x میتواند هر نمونه دادهای باشد. برای محاسبه چولگی و کشیدگی در نرم افزار پایتون، یک تابع به اسم moments_func نوشتم، تا بتوانم گشتاور r ام را محاسبه کنم و سپس از روابط بالا، برای محاسبه شاخصهای شکل استفاده کردم.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | #Required Libraries import numpy as np import matplotlib.pyplot as plt #Create Synthetic Data np.random.seed(123) x = 3 * np.random.weibull(1.5, size = 200) #scale = 3, shape = 1.5 #Histogram of Data plt.hist(x, bins = 25) #Calculate Moments def moments_func(x, r = 2): return(sum((x - x.mean()) ** r) / len(x)) #Skewness moments_func(x, r = 3) / moments_func(x, r = 2) ** 1.5 1.1228409503894643 #Kurtosis moments_func(x, r = 4) / moments_func(x, r = 2) ** 2 4.7557234298978885 |
راه حل دیگر، استفاده از کتابخانه scipy در پایتون است. در این کتابخانه، ماژول stats حاوی توابع skew و kurtosis است که برای محاسبه چولگی و کشیدگی بکار می روند.
1 2 3 4 5 6 7 8 9 10 | #Calculate Skewness and Kurtosis from scipy.stats import skew, kurtosis print(skew(x, bias = True)) 1.122840950389464 print(kurtosis(x, fisher = False, bias = True)) 4.755723429897887 |
منابع:
Levine, D. M., Berenson, M. L., & Stephan, D. (1999). “Statistics for Managers Using Microsoft Excel”, Upper Saddle River, NJ: Prentice Hall
Weiers, R. M. (2010). “Introduction to Business Statistics”, Cengage Learning