SQL-də istifadə olunan STDDEV funksiyasının addım-addım izahı
STDDEV (Standard Deviation – Standart kənarlaşma) funksiyası SQL-in qrup funksiyaları bölümündə göstərilir.
Adətən, təlimlərdə tələbələrimə digər daha çox istifadə olunan (məs: COUNT, SUM və s.) funksiyalardan fərqli olaraq, “bu funksiya (STDDEV) çox istifadə olunmur, lazım olanda mənasını öyrənib, tətbiq edərsiniz” deyirdim.
Ancaq son zamanlar bəzi tələbələrin üstündə dayanıb maraqlanmasını nəzərə alaraq, bacardığım qədər sadə şəkildə bu funksiyanın hesablama alqoritmini izah etmək qərarına gəldim.
Beləliklə:
STDDEV funksiyasının elmi hesablanma düsturu aşağıdakı kimidir:
Σ – cəm
x – qiymətlər
ẋ – bütün qiymətlər üzrə ədədi orta
n – qiymətlərin sayı
Nümunə üçün qəbul edilmiş ədədlər üzrə düsturun tətbiqini addımlar şəklində aşağıda göstərirəm.
Qiymətlərimiz:
{10, 15, 21, 32, 45, 59, 63}
Addım1:
ẋ– bütün qiymətlər üzrə ədədi ortanın tapılması
cəmi tapırıq
10 + 15 + 21 + 32 + 45 + 59 + 63 = 245
alınmış cəmi qiymətlərin sayına bölərək ədədi ortanı təyin edirik
245 / 7 = 35
ẋ = 35
Addım2:
(x- ẋ)2 fərqlərin tapılıb kvadrata yüksəldilməsi
hər qiymət ilə addım1-də tapdığımız ədədi ortanın fərqini tapaq
{10 – 35 = -25, 15 – 35 = -20, 21 – 35 = -14, 32 – 35 = -3, 45 – 35 = 10, 59 – 35 = 24, 63 – 35 = 28}
alınan fərqlərin kvadratlarını hesablayaq
{625, 400, 196, 9, 100, 576, 784}
Addım3:
∑(x- ẋ)2 cəmini hesablayaq
625 + 400 + 196 + 9 + 100 + 576 + 784 = 2690
Addım4:
∑(x- ẋ)2 / (n-1) – alınmış cəmin qiymətlərin saylarının 1 vahid azına nisbətini tapaq
2690 / (7-1) = 2690 / 6 = 448.333333(3)
Bu qiymət VARIANCE funksiyasının qiymətidir. STDDEV = VARIANCE–ın kvadrt kökünə bərabərdir.
Addım5:
Alınmış qiymətdən kvadrat kökün alınması
Yuxarıdakı hesablama addımlarını cədvəl şəklində ompaktlaşdırsaq, növbəti şəkildə görə bilərik:
Qiymətlər |
Addım1 |
Addım2 |
Addım3 və Addım4 |
Addım5 |
|
x |
ẋ |
x- ẋ |
(x- ẋ)2 |
∑(x- ẋ)2 / (n-1) və yaxud VARIANCE |
STDDEV |
10 |
35 |
-15 |
625 |
2690 / 6 = 448.(3) |
|
15 |
35 |
-20 |
400 |
||
21 |
35 |
-14 |
193 |
||
32 |
35 |
-3 |
9 |
||
45 |
35 |
10 |
100 |
||
59 |
35 |
24 |
576 |
||
63 |
35 |
28 |
784 |
||
Cəm: 245 |
Ədədi orta: 245/7=35 |
|
Cəm: 2690 |
İndi isə misal olaraq aşağıdakı SQL sətrini icra etsək, nəticənin hesablamadan aldığımız ədədlə üst-üstə düşdüyünü görərik:
with
tmp as (
select 10 as x from dual union all
select 15 from dual union all
select 21 from dual union all
select 32 from dual union all
select 45 from dual union all
select 59 from dual union all
select 63 from dual
)
select variance(x), stddev(x) from tmp;
Əziz dostlar, ümid edirəm ki, müəyyən qədər aydınlıq gətirərək faydalı ola bildim.
Comments: 6
Təşəkkürlər Şahin m!
Allah cansağlığı və uzun ömür qismət eləsin.
Təşəkkür edirəm.
Cox sagolun muellim
Təşəkkür edirəm.
Ətraflı və başa düşülən izah üçün təşəkkür edirəm müəllim!
Cox gozel izah olunub. Teshekkurler muellim.