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 |
|
|
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.
Təşəkkürlər Şahin m!
ReplyDeleteAllah cansağlığı və uzun ömür qismət eləsin.
Təşəkkür edirəm.
DeleteCox sagolun muellim
ReplyDeleteTəşəkkür edirəm.
Delete