728x90
반응형

9. 평균 , 중위수 , 최빈값, 사분위수 , 백분위수

 

A= list(map(int, "25 28 22 34 26 21 38 21 22 26 30 28 40 28 22 39 35 22 29 38 40 23 39 23 29 35 31 34 33 23 33 36 23 35 27 38 32 32 32 38 38 31 33 39 35 25 31 33 32 22".split(" ")))

means = np.mean(A)
medians = np.median(A)
many = collections.Counter(A).most_common()
res =[]
i =0
while True:
    if many[i][1] == many[0][1] and i!= len(a)-1:
        i+=1
        res.append(many[i][1])
    else:
        break
print("평균 : {} , 중위수 : {} , 최빈값 : {}".format(means, medians, " ".join(map(str, res))))
A = pd.DataFrame(A)
Q1 = A.quantile(.25)
Q3 = A.quantile(.75)
ratio_30 = A.quantile(.3)
print("Q1 : {} , Q3 : {} , 30-백분위수 : {}".format(Q1[0], Q3[0] , ratio_30[0]))

평균 : 30.58 , 중위수 : 31.5 , 최빈값 : 5 4
Q1 : 25.25 , Q3 : 35.0 , 30-백분위수 : 26.7

 

10. 평균 , 중위수 , 최빈값, 사분위수 , 백분위수, 절사평균

 

A = list(map(float , "11.1 10.6 10.4 10.5 10.2 12.4 14.6 12.0 6.2 13.7 14.7 14.0 11.2 11.2 10.6 10.2 12.1 12.5 14.4 9.7 12.2 9.8 12.3 12.8 14.9 13.5 14.7 11.5 13.6 11.5 14.5 9.5 13.1 13.1 10.6 10.4 9.6 13.5 12.7 14.3 13.6 14.8 13.2 13.4 11.8 10.3 9.8 13.2 10.9 11.8".split(" ")))

means= np.mean(A)
medians = np.median(A)
many = collections.Counter(A).most_common()
i =0
res = []
while True:
    if many[i][1] == many[0][1] and i!= len(many)-1:
        i+=1
        res.append(many[i][0])
    else:
        break
print("평균 : {} , 중위수 : {} , 최빈값 : {}".format(means, medians, " ".join(map(str, res))))

i = int(len(A) *0.05)
j = int(len(A) - i)
Zulsa = np.mean(A[i:j])
print("5%-절사평균 : {}".format(Zulsa))
A = pd.DataFrame(A)
Q1 = A.quantile(.25)[0]
Q3 = A.quantile(.75)[0]
ratio_30 = A.quantile(.3)[0]
print("Q1 : {} Q3 : {} 30-백분위수 : {}".format(Q1 , Q3 , ratio_30))

평균 : 12.063999999999998 , 중위수 : 12.149999999999999 , 최빈값 : 10.4
5%-절사평균 : 12.14782608695652
Q1 : 10.6 Q3 : 13.5 30-백분위수 : 10.81

 

 

11. 줄기-잎-그림 평균 , 중위수 , 최빈값, 사분위수 , 백분위수, 절사평균

a = ["0 0 1 4 5 7" , "0 1 1 3 5 5 5 7 8 8" , "1 3 3 5 6 6 6 7 8 8 9 9 9", "0 1 1 2 2 3 3 3 4 4 5 7 7 7 9", "3 4 5 6 8 9"]
b = []
for i in range(len(a)):
    a[i] = (list(map(int, a[i].split(" "))))
    a[i] = list(map(lambda x : x+(i+1)*10, a[i])) #기억하자
    #a[i] = b(a[i])
    b.append(a[i])
a = list(itertools.chain.from_iterable(b)) #기억하자!!
a

a = [[0,0,1,4,5,7] , · · · · · · · · · · · ·]

==> lambda 식은 계속 보면서 기억하는 수밖에..

==> itertools.chain.from_iterable() ==> 2중 리스트 1개의 리스트로 변환!!!!

b = [[ [10, 10, 11, 14, 15] , ···············] 

a = [10, 10, 11, 14, 15, ···············]

 

means = np.mean(a)
medians = np.median(a)
print('평균 : {} , 중위값 : {}'.format(means , medians))
many = collections.Counter(a).most_common()
print(many)

most = len(list(filter(lambda i: i[1] == many[0][1],many)))
print(most)
print("최빈값 :" , end = '')
for x,y in many[:most]:
     print('{}'.format(x) , end = ' ')
a = pd.DataFrame(a)
Q1 = a.quantile(.25)[0]
Q3 = a.quantile(.75)[0]
print('\nQ1 : {} , Q3 : {}'.format(Q1, Q3))

==> Filter() ==> lambda 식 안에 있는 값들의 조건 맞는 것들 반환한다. 

 

평균 : 35.66 , 중위값 : 38.0
[(25, 3), (36, 3), (39, 3), (43, 3), (47, 3), (10, 2), (21, 2), (28, 2), (33, 2), (38, 2), (41, 2), (42, 2), (44, 2), (11, 1), (14, 1), (15, 1), (17, 1), (20, 1), (23, 1), (27, 1), (31, 1), (35, 1), (37, 1), (40, 1), (45, 1), (49, 1), (53, 1), (54, 1), (55, 1), (56, 1), (58, 1), (59, 1)]
5
최빈값 :25 36 39 43 47 
Q1 : 25.5 , Q3 : 43.75

 

12. z-점수 구하기

girl = list(map(int,"120 120 150 100 210 110 150 180 135 180 100 190 180 150 160 120 160 170 155 120 150 180 120 100 110 180 150 120 170 100".split(" ")))
man = list(map(int, "100 120 180 150 120 160 180 150 140 110 100 0 120 140 120 155 180 120 60 100 115 140 120 130 100 180 180 200 100 75".split(" ")))
freshman_nm = ["여자" , "남자"]
freshman = [girl , man]
for i in range(2):
    print("{} 평균 공부시간 : {}".format(freshman_nm[i] , round(np.mean(freshman[i]),2)))
    print("{} 공부시간의 표준편차 : {}" .format(freshman_nm[i] , round(np.std(freshman[i] , ddof=1) ,2)))
    print("{}의 120분에 대한 z-점수 : {}".format(freshman_nm[i] , round((120-np.mean(freshman[i]))/ np.std(freshman[i] , ddof=1) ,2)     ))

==> z점수(표준편차) : (x- |x) /s 

https://knowallworld.tistory.com/220

 

annotate★IQR★boxplot★z-점수와 분위수★기초통계학-[Chapter03 - 09]

1. z-점수(표준점수_ Standardized score) 산포도 : 자료 중심위치를 나타내는 척도와 밀집 정도 또는 흩어진 정도를 나타낸다. ==> 수능을 치르게 되면 상대적인 위치 관계 이용 ==> ex) 원점수, 표준점수

knowallworld.tistory.com

 

여자 평균 공부시간 : 144.67
여자 공부시간의 표준편차 : 31.46
여자의 120분에 대한 z-점수 : -0.78
남자 평균 공부시간 : 128.17
남자 공부시간의 표준편차 : 41.72
남자의 120분에 대한 z-점수 : -0.2

 

 

출처 :  [쉽게 배우는 생활속의 통계학]  [북스힐 , 이재원] 

※혼자 공부 정리용

728x90
반응형

+ Recent posts