[Python] 통계 기초

kkkey·2022년 9월 20일
0

statistics

목록 보기
1/2

통계에 필요한 정보들

1) 중심경향성

데이터의 표준적인 값 찾기.

  1. mean 평균
    표본 전체의 합/표본 전체의 길이
#mean
mean = sum(num_friends) / len(num_friends)
print(f"mean:{mean}")
  1. median 중앙값
    정렬이 되어있는 표본의 길이/2 에 해당하는 값
#median
num_friends_sorted = sorted(num_friends)
median = num_friends_sorted[len(num_friends_sorted)//2]
print(f"median: {median}")
  1. mode 최빈값
    표본내에서 가장 자주 나온 값
#mode
cnt = Counter(num_friends)
mode = cnt.most_common(1)[0][0]
print(f"mode:{mode}")
  1. quantile 분위
    quantile은 4분위. 정렬된 표본의 25%,50%,75% 지점의 값
#quantile
q25 = num_friends_sorted[int(len(num_friends_sorted)*0.25)]
q50 = num_friends_sorted[int(len(num_friends_sorted)*0.5)]
q75 = num_friends_sorted[int(len(num_friends_sorted)*0.75)]

print(f"quantile:{q25},{q50},{q75}")

2) 산포도

데이터가 퍼져있는 정도

  1. max-min 최댓값-최솟값
    말그대로 최댓값 - 최솟값
#min,max
minval = min(num_friends)
maxval = max(num_friends)
print(f"min:{minval}")
print(f"max:{maxval}")
  1. variance 분산
    분산을 이용하면 데이터의 퍼짐정도에 대해 알 수 있다.
    또한 표준편차는 분산의 ^0.5 로 표현할 수 있다.
    (표본의 값 - 표본의 평균)^2 / 표본의 길이
#variance
var = sum ((x-mean)**2 for x in num_friends)/len(num_friends)
print(f"var:{var}")
print(f"stddev:{var**0.5}")
  1. interquartile range 상위 25%와 하위 25%차이
#iqr
print(f"iqr:{q75-q25}")

상관계수

두가지의 확률변수의 상관관계를 나타내는 값.

  1. covariance 공분산
    공분산은 두가지 확률변수의 선형관계를 나타낸다.
    두가지변수중 한가지가 상승할때 다른 한가지도 상승하는 경향성이 있으면 양수
    한가지가 상승할때 나머지 하나가 하강하는 경향을 보이면 음수가 된다.
    두가지 확률변수가 x,y라고 할때
    (x의 값 - x의 평균)*(y의 값 - y의 평균)의 합들 / x or y의 길이
#cov
cov = sum((k - meanx)*(l - meany) for k,l in zip(x,y))/len(x)
print(cov)
  1. coefficient of correlation 상관계수
    상관계수는 공분산을 두가지 확률변수의 표준편차의 곱으로 나누어 나타낸다.
#corr
corr = cov/stdx/stdy
print(corr)
profile
주니어 백엔드 개발자입니당

0개의 댓글