Python๐Ÿ“ˆ์„ ์‚ฌ์šฉํ•œ ๊ธฐ๋ณธ ํ†ต๊ณ„

10205 ๋‹จ์–ด statisticstutorialpythonbeginners

"ํ†ต๊ณ„๋Š” ๊ณ ์„ฑ๋Šฅ ๋ฌด๊ธฐ์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์‚ฌ์šฉํ•˜๋ฉด ๋„์›€์ด ๋˜์ง€๋งŒ ์ž˜๋ชป ์‚ฌ์šฉํ•˜๋ฉด ์žฌ์•™์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค."



ํ†ต๊ณ„๋Š” DNA ๊ฒ€์‚ฌ ๋˜๋Š” ์•”์ด๋‚˜ ์‹ฌ์žฅ๋ณ‘๊ณผ ๊ฐ™์€ ์งˆ๋ณ‘๊ณผ ๊ด€๋ จ๋œ ์š”์ธ ๋˜๋Š” ๋ณต๊ถŒ ๊ฒŒ์ž„์˜ ์–ด๋ฆฌ์„์Œ๊ณผ ๊ฐ™์€ ๋งŽ์€ ๊ฒƒ์„ ์„ค๋ช…ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ†ต๊ณ„๋Š” ํฌ๋ฆฌ์ผ“์˜ ํƒ€์œจ์—์„œ ๋ฏธ๊ตญ ๋Œ€ํ†ต๋ น ์„ ๊ฑฐ ์—ฌ๋ก  ์กฐ์‚ฌ, ๋‚ ์”จ ์˜ˆ์ธก ํ™•๋ฅ ์—์„œ ๋ฐ์ดํ„ฐ ๊ณผํ•™ ๋ฐ ๊ธฐ๊ณ„ ํ•™์Šต์— ์ด๋ฅด๊ธฐ๊นŒ์ง€ ์ผ์ƒ ์ƒํ™œ์˜ ๋ชจ๋“  ๊ณณ์— ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ํ†ต๊ณ„๋Š” ๋ฐ์ดํ„ฐ์˜ ์ˆ˜์ง‘, ๊ตฌ์„ฑ, ๋ถ„์„, ํ•ด์„ ๋ฐ ํ‘œํ˜„์„ ๋‹ค๋ฃจ๋Š” ์ˆ˜ํ•™์˜ ํ•œ ๋ถ„์•ผ์ž…๋‹ˆ๋‹ค.

ํ˜„์žฌ ๊ฐ€์žฅ ๋งŽ์ด ์ฐพ๋Š” ๊ธฐ์ˆ ์ธ ๊ธฐ๊ณ„ ํ•™์Šต์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ์—์„œ ๋ฐœ๊ฒฌ๋˜๋Š” ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ ํŠน์„ฑ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ปดํ“จํ„ฐ๊ฐ€ ์˜์‚ฌ ๊ฒฐ์ •์„ ๋‚ด๋ฆฌ๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ํ†ต๊ณ„ ๋ถ„์„์ž…๋‹ˆ๋‹ค.



์ด ๊ฒŒ์‹œ๋ฌผ์—์„œ๋Š” Python์˜ ๋„์›€์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ํ‰๊ท , ์ค‘์•™๊ฐ’, ๋ชจ๋“œ ๋ฐ ํ‘œ์ค€ ํŽธ์ฐจ์™€ ๊ฐ™์€ ํ†ต๊ณ„์˜ ๊ธฐ๋ณธ ์‚ฌํ•ญ์„ ๋ณผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํ‰๊ท 



์—ฌ๊ธฐ์—์„œ ํ‰๊ท ์€ ์ˆซ์ž์˜ ํ‰๊ท ์„ ์˜๋ฏธํ•˜๋ฉฐ ์ˆซ์ž๋ฅผ ๋”ํ•˜๊ณ  ์กด์žฌํ•˜๋Š” ์ด ํ•ญ๋ชฉ ์ˆ˜๋กœ ๋‚˜๋ˆ•๋‹ˆ๋‹ค. ์•„๋ž˜์— ์ฃผ์–ด์ง„ ์ฝ”๋“œ.

a=[11,21,34,22,27,11,23,21]
mean = sum(a)/len(a)
print (mean)


๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฝ”๋“œnumpy๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ‰๊ท ์„ ๊ณ„์‚ฐํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

import numpy as np
mean = np.mean(a)
print (mean)


์ค‘์•™๊ฐ’



์ค‘์•™๊ฐ’์€ ์ •๋ ฌ๋œ ๋ฐฐ์—ด์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์ค‘๊ฐ„ ์šฉ์–ด์ž…๋‹ˆ๋‹ค. ์š”์†Œ ์ˆ˜๊ฐ€ ํ™€์ˆ˜์ธ ๊ฒฝ์šฐ ์ค‘๊ฐ„ ํ•ญ์ด๊ณ , ์š”์†Œ ์ˆ˜๊ฐ€ ์ง์ˆ˜์ธ ๊ฒฝ์šฐ ์ค‘๊ฐ„์— ์žˆ๋Š” ๋‘ ํ•ญ์˜ ํ‰๊ท ์ž…๋‹ˆ๋‹ค. ์•„๋ž˜์— ์ œ๊ณต๋œ ๊ตฌํ˜„์—์„œ ์‚ฌ์šฉ๋œ ๋ฐฐ์—ด์€ ์ด์ „๊ณผ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.

def median(nums):
    if len(nums)%2 == 0:

        return int(nums[len(nums)//2-1]+nums[len(nums)//2])//2
    else:
        return nums[len(nums)//2]
print (median(a))


์ค‘์•™๊ฐ’์„ ๊ตฌํ•˜๋Š” ์ฝ”๋“œnumpy๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

import numpy as np
print(np.median(a))


๋ฐฉ๋ฒ•



๋ชจ๋“œ๋Š” ์š”์†Œ ๋ชฉ๋ก์—์„œ ๋นˆ๋„๊ฐ€ ๊ฐ€์žฅ ๋†’์€ ์š”์†Œ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ๊ฐ€์žฅ ๋งŽ์ด ๋ฐœ์ƒํ•˜๋Š” ์š”์†Œ์ž…๋‹ˆ๋‹ค. ๋ชจ๋“œ๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•œ ํŒŒ์ด์ฌ ๊ตฌํ˜„์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

from collections import Counter 
data = dict(Counter(a))
mode = [k for k, v in data.items() if v == max(list(data.values()))]
print (mode)

Scipy์—์„œ๋Š” ๋ฐฐ์—ด ๋˜๋Š” ์š”์†Œ ๋ชฉ๋ก์˜ ๋ชจ๋“œ๋ฅผ ์ฐพ๋Š” ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฐฉ๋ฒ•์˜ ํ•œ ๊ฐ€์ง€ ๋‹จ์ ์€ ๋ฐ์ดํ„ฐ๊ฐ€ ๋‹ค์ค‘ ๋ชจ๋“œ์ธ ๊ฒฝ์šฐ์—๋„ ํ•˜๋‚˜์˜ ์†”๋ฃจ์…˜๋งŒ ์ œ๊ณตํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

from scipy import stats
print (stats.mode(a)[0][0])


์‚ฌ๋ถ„์œ„์ˆ˜



์‚ฌ๋ถ„์œ„์ˆ˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋„ค ๋ถ€๋ถ„์œผ๋กœ ๋‚˜๋ˆ•๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ๋ถ€๋ถ„์€ ์‹œ์ž‘์—์„œ 1์‚ฌ๋ถ„์œ„์ˆ˜(Q1), ๋‘ ๋ฒˆ์งธ ๋ถ€๋ถ„์€ 1์‚ฌ๋ถ„์œ„์—์„œ 2๋ถ„์œ„์ˆ˜(Q2), ์„ธ ๋ฒˆ์งธ ๋ถ€๋ถ„์€ Q2์—์„œ Q3๊นŒ์ง€, ๋„ค ๋ฒˆ์งธ ๋ถ€๋ถ„์€ Q3์—์„œ ๋๊นŒ์ง€์ž…๋‹ˆ๋‹ค. ์‚ฌ๋ถ„์œ„์ˆ˜๋ฅผ ์ฐพ์œผ๋ ค๋ฉด ๋ฐ์ดํ„ฐ๋ฅผ ์ •๋ ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ๋ถ„์œ„์ˆ˜๋ฅผ ์ฐพ๋Š” ์ฝ”๋“œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์œผ๋ฉฐ, median ํ•จ์ˆ˜๋Š” ์œ„์˜ ์ค‘์•™๊ฐ’ ์„น์…˜์—์„œ ์‚ฌ์šฉ๋œ ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค.

def quartiles(nums):
    nums=sorted(nums)
    Q1 = median(nums[:len(nums)//2])
    Q2 = median(nums)
    if len(nums)%2 == 0:
        Q3 = median(nums[len(nums)//2:])
    else:
        Q3 = median(nums[len(nums)//2+1:])
    return Q1,Q2,Q3

print (quartiles(a))


ํ‘œ์ค€ ํŽธ์ฐจ



ํ‘œ์ค€ํŽธ์ฐจ๋Š” ๋ฐ์ดํ„ฐ์˜ ์‚ฐํฌ ๋˜๋Š” ํผ์ง์„ ์ธก์ •ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ถ„์‚ฐ์˜ ์ œ๊ณฑ๊ทผ์ž…๋‹ˆ๋‹ค. ํ‘œ์ค€ ํŽธ์ฐจ๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•œ ๊ฐ„๋‹จํ•œ ํŒŒ์ด์ฌ ๊ตฌํ˜„์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

n=len(a)
std=(sum(map(lambda x: (x-sum(a)/n)**2,a))/n )**0.5
print(std)


ํ‘œ์ค€ ํŽธ์ฐจ๋ฅผ ์ฐพ๋Š” numpy ํ•จ์ˆ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

import numpy as np 
print (np.std(a))

์ข‹์€ ์›นํŽ˜์ด์ง€ ์ฆ๊ฒจ์ฐพ๊ธฐ