전체 글 149

인구와 투자의 미래 확장판, 홍춘욱

인구와 투자의 미래 확장판한국의 출산율은 이미 세계 최저 수준으로 떨어졌다. 노령화 속도는 세계에서 가장 빠르게 진행돼 향후 50년도 못 가 65세 이상이 전체 인구의 절반까지 늘어날 것으로 전망된다. 국내 노동 공급의 큰 축을 맡아왔고 가장 부유한 세대인 베이비붐 세대의 은퇴가 겹치면서 “이러다간 나라 망하는 것 아니냐”는 우려의 목소리까지 나오고 있다. 현실로 닥친 인구절벽은 한국 경제에 어떤 영향을 미칠까? 투자자는 어떻게 판단해야 할까? ‘가장 신뢰받는 애널리스트’(조선일보·에프앤가이드 선정)로 명성을 쌓은 홍춘욱 박사(현 프리즘투자자문 대표)가 이 책에서 급격한 인구 구조 변화에 따른 자산시장 대변동에 대비하는 투자 지침을 제시한다. 베이비붐 세대가 은퇴하면 경제에 큰 충격을 주고 주식시장과 부..

독서/경제 2024.06.18

엑셀에서 tukey-kramer post hoc 검정(tukey-kramer post hoc Test) 하기

단 방향 ANOVA(one-way ANOVA)는 3개 이상의 독립적인 그룹의 평균 간에 유의미한 차이가 있는지 판별하는 검정 방법이다. 단 방향 ANOVA(one-way ANOVA)에서 사용된 가설은 귀무가설(null hypothesis), H0: μ1= μ2=μ3=...=μk (각각 그룹에 평균은 같다.)이다. 대립 가설(alternative hypothesis), Ha: 적어도 하나의 평균의 값이 다르다, 이다. ANOVA에서 구해진 p-value가 유의 수준(siginificance level)보다 작으면, 귀무가설(null hypothesis)을 기각할 수 있다. 그리고, 적어도 하나의 평균이 다르다고 볼 수 있는 충분한 통계적 근거가 있다고 말할 수 있다. 그러나, ANOVA로 어느 그룹에 평균..

파이썬에서 기하평균(Geometric Mean) 계산하기

파이썬에서 기하평균(geometric mean)을 구하는 방법은 2가지가 있다. 방법 1: Scipy 라이브러리를 이용한 기하평균(geometric mean) 구하기 from scipy.stats import gmean #기하평균(geometric mean) 구하기 gmean([value1, value2, value3, ...]) 방법 2: Numpy 라이브러리를 이용하여 기하평균(geometric mean) 구하기 import numpy as np #함수 생성 def g_mean(x): a = np.log(x) return np.exp(a.mean()) #기하평균(geometric mean) 구하기 g_mean)[value1, value2, value3, ...]) 두 방법은 동일한 값을 반환한다. 실..

엑셀에서 단 방향 ANOVA(One-Way ANOVA) 분석하기

단 방향 ANOVA(Analysis Of Variance)는 3개 이상의 독립적인 그룹에 평균값이 통계적으로 유의미한 차이가 있는지 판별할 때 사용한다. 이번 포스팅에서 단 방향 ANOVA(one-way ANOVA)를 해본다. 예시: 엑셀에서 단 방향 ANOVA(one-way ANOVA) 실습하기 30명의 학생이 연구에 참여한다고 가정해본다. 각각의 학생들은 무작위로 3개 중 하나의 그룹에 배치되었다. 각각의 그룹은 각기 다른 학습법으로 3주 동안 학생들을 학습시키고 3주 후에 동일한 시각에 시험을 본다. 시험 점수가 다음과 같이 나왔다. 실험 연구자들은 이제 시험 점수를 바탕으로 단 방향 ANOVA(one-way ANOVA)을 실시한다. 그리하여, 3개 그룹의 평균이 통계적으로 같다고 할 수 있는지 판..

파이썬에서 리스트 값 변경하기

한 번씩 파이썬에서 리스트(list)의 값을 변경해야 하는 경우가 있다. 다행히도, 파이썬은 이에대해 강력한 편리성을 제공하고 있다. 아래 예시와 함께 리스트(list)에 변수를 변경하는 다양한 방법을 실습해본다. 예시 1: 하나의 리스트(list) 값 변경하기 아래 문법은 하나의 리스트(list) 값을 변경한다. #4개 크기 리스트(list) 만들기 x = ['a', 'b', 'c', 'd'] #첫 번째 리스트 값 변경하기 x[0] = 'z' #업데이트된 값 확인 x ['z', 'b', 'c', 'd'] 예시 2: 하나 이상의 리스트(list) 값 변경하기 아래 문법은 하나 이상의 리스트(list) 값을 변경한다. #4 크기의 리스트(list) 생성 x = ['a', 'b', 'c', 'd'] # 첫 ..

Numpy: 넘파이(Numpy)에서 최소자승법(least squares method) 실행하기

회귀분석(regression analysis)에서 최소자승법(meothod of least squares)은 이용하여 데이터에 가장 적합한 직선을 찾아내는 데 사용한다. 넘파이(Numpy)에 linalg.lstsq() 함수를 사용하여 최소자승법(meothod of least squares)을 실행할 수 있다. 아래 순차적 예시에서 최소자승법(meothod of least squares)을 실행 해본다. 단계 1: 독립변수(independent variables)와 종속변수(dependent variables)를 입력한다. 첫째로, 넘파이(Numpy) 배열로 데이터를 생성한다. import numpy as np #x,y 변수 배열 변수 생성 x = np.array([6, 7, 7, 8, 12, 14, 15..

Pandas: 넘파이(Numpy) where() 함수 Pandas에서 사용하기

넘파이(Numpy)에서 if-else 로직을 이용하여 배열(array)에 빠르게 값을 업데이트할 수 있었다. 예를 들어, 아래코드와 같이 넘파이(Numpy) where() 함수를 사용하여 배열(array)을 업데이트한다. import numpy as np #Numpy 배열 값 x = np.arraY([1,3,3,6,7,9]) #새로운 값 배열에 넣기 x = np.where((x 8), x/2, x) #새로운 배열 값 보기 array([0.5, 1.5, 1.5, 6. , 7. , 4.5]) If, 기존 배열에 값이 5보다 작거나 8보다 크면, 그 값을 2로 나눈 값을 새로 저장한다. Else, 나머지는 그대로 둔다. 판다스 데이터 프레임(pandas DataFrame)에서도 판다스(p..

Pandas: 문자열에서 판다스 데이터프레임(pandas DataFrame) 생성하기

문자열(string)에서 아래 간단한 코드로 판다스 데이터프레임을 생성할 수 있다. import pandas as pd import io df = pd.read_csv(io.StringIO(string_data),sep=",") 위의 문법은 'string_data'라는 문자열에서 입력된 값(value)으로 판다스 데이터프레임을 생성한다. 아래 예시에서 어떻게 문법을 사용하는 지 알아본다. 예시 1: 콤마로 문자열 값 나눠 데이터 프레임 생성하기 아래 코드에서 문자열(string)에 입력된 값으로부터 어떻게 ','로 구분하여 판다스 데이터프레임을 생성하는지 보여 준다. import pandas as pd import io #define string string_data="""points, assists, ..

NumPy: np.linspace 와 np.arange의 차이점

시퀀스(sequence)를 생성하는 NumPy에 linspace와 arange가 가장 널리 사용되는 함수다. 두 함수 사이에 조금 다른 점이 있다. linspace: 간격의 크기를 결정할 수 있다. arange: 간격 안에서 생성되는 수의 개수를 결정할 수 있다. 아래 예제를 통해서 함수들이 어떻게 작동하는지 알 수 있다. 예시 1: np.linspace 사용하기 np.linspace()의 함수는 아래 기본 신텍스(syntax)로 구성된다. np.linspace(start, stop, num,...) start: 시작하는 수 stop: 마지막 수 num: 생성하는 수 아래 코드에 np.inspace()를 이용해서 0~20까지 11개 변수를 생성하는 코드를 입력했다. import numpy as np # ..

Numpy mean() vs average(): 차이점

파이썬에서 np.mean(), np.average()로 배열(array)에 평균을 구할 수 있다. 두 함수에서는 작은 차이가 있다. np.mean(): 산술평균을 계산한다. np.average(): 가중치가 옵션으로 추가 입력할 수 있어 가중평균을 구할 수 있다. 예시 1: np.mean(), np.average() 가중치 옵션 없이 사용하기 아래의 배열이 있다. # 배열 생성 data = [1, 4, 5, 7, 8, 8, 10] np.mean()과 np.average()를 사용하여 평균을 구해본다. import numpy as np # 평균 구하기 np.mean(data) 6.142857142857143 # 평균 구하기 2 np.average(data) 6.142857142857143 두 함수가 같은 ..