S 언어는 미국 최대의 전화 통신 회사인 AT&T의 벨 연구소 (Bell Laboratories)에서 존 챔버스 (John Chambers), 릭 베커 (Rick Becker), 앨런 윌크스 (Allan Wilks)에 의해 개발된 프로그래밍 언어입니다. 프로그래밍 언어는 사용 목적에 따라서 수십 가지가 존재합니다. S 언어는 특별히 통계 연산의 연구 목적으로 개발된 프로그래밍 언어 입니다.


S 언어 개발에 참여했던 존 챔버스가 "S 언어의 목적은 아이디어를 빠르고 충실하게 소프트웨어로 전환하는 것이다." 라고 했을 정도로 S 언어는 매우 유연한 자료 조작 및 변환 환경을 제공하며, 매우 뛰어난 그래픽 구현능력도 가지고 있습니다. 참고로 우리가 흔히 알고있는 유닉스 (UNIX) 운영체제와 프로그래밍 언어인 C, C++ 또한 벨연구소에서 개발된 것들입니다.

S 언어는 (S 시스템) 이후 R과 S- Plus로 나뉘어 졌는데, R과 S-Plus는 모두 S 언어를 기반으로 작성된 프로그램이라는 점에서 공통점을 가집니다. 따라서 두 프로그램은 상당 부분 상호 호환이 가능하며 R에서 사용하는 대부분의 기능, 구문들이 S-Plus 에서도 적용 가능합니다.

 


그러나 S-Plus는 상업용 소프트웨어로 그 저작권(license)이 현재 TIBCO software사에 있는 반면에 , R은 GNU 프로젝트의 GPL (General Public License)을 따르는 공개 소스 소프트웨어로 발전하였다는 점에서 차이가 있습니다. GNU 프로젝트란 무료 소프트웨어 재단 (Free Software Foundation, FSF)에서 유닉스 호환의 소프트웨어를 개발하여 무료로 배포하는 프로젝트는 의미하며, GPL은 GNU 프로젝트가 부여하는 일반 공중 사용 허가서 입니다. 따라서 GPL이 부여된 소프트웨어는 무료이며, 프로그램의 사용이나 수정, 재배포에 제약이 없을 뿐만 아니라 수정이나 재배포된 프로그램은 다시 GPL을 부여받게 됩니다. 그렇기 때문에 GPL을 따르는 R을 GNU R이라고 하며, R은 수많은 프로그래밍 기술자들과, 수학자, 통계학자 및 다양한 분야들의 전문가들에 의해 기능이 개선되고 무료로 계속 재배포되면서 발전하고 있습니다.

보통 우리는 투자를 하는데 있어서 위험, 리스크를 최소화 하려고 합니다. 이러한 위험 및 리스크를 관리하기 위해서 주로 분산 투자를 진행합니다. 실제로 한 종목을 사는 것보다 여러 종목으로 나누어 사는 것이 변동성이 작기 때문입니다. 비슷한 성질 및 매력을 가진 종목이 여러 개 있으면 한 종목을 사는 것이나 여러 종목을 사는 것이나 산술 평균 수익의 기대치는 같습니다. 

 

 

하지만 여러 종목으로 나누어 사게 되면 변동성이 더 작아지게 됩니다. 주로 산술평균은 같은데 변동성이 더 작으면 기하 수익(복리 수익)이 더 높기 때문에 수익이 더 커지게 됩니다. 이러한 분산 투자와 관련된 변동성 이외에 또 한가지 중요한 변동성이 있습니다. 그것은 바로 시간에 따른 변동성입니다. 분산 투자를 하는 일반인 투자자들도 시간에 대한 변동성을 제대로 이해하고 있는 사람은 많지 않습니다. 

 

 

주로 한 종목을 사더라도 하루에 다 사는 것보다 여러 날에 걸쳐서 사는 것이 변동성이 더 작습니다. 이평선을 고려하였을 때, 매일 매일의 주가보다 이평선이 훨씬 더 부드럽습니다. 이것은 1년에 한 번 주식을 사는 것보다 오랫동안 나누어서 사는 것이 변동성이 작다는 시사점을 지니고 있습니다. 

 

이평선은 최고점에 있어서는 개별 주가보다 낮고, 최저점에 있어서는 개별 주가보다 높습니다. 개별 주가의 전체 평균과 이평선의 전체 평균은 거의 일치합니다. 산술평균의 수익은 둘이 같은데 변동성은 이평선이 훨씬 더 작습니다. 이러한 성질이 복리 수익을 높여주는 것입니다.

강화학습에서는 보상과 벌칙이란 상태값이 주어져 있습니다. 직접적으로 정답을 처음에 주는 것이 아니라, 어떤 상태에서 취한 행동이 잘된 행동이면 보상을 주고, 잘못된 행동이라면 벌칙을 부여합니다.

 

학습 대상은 시행착오를 통해 스스로 벌칙을 최소화하고 보상을 최대화하도록 행동을 학습하게 됩니다. 학습대상이 이용할 수 있는 정보는 보상 뿐이기 때문에, 학습목적에 알맞는 보상을 설정하는 것이 제일 중요한 task가 되겠습니다.

 

 

비디오 게임을 예로 들었을때, 강화학습에서는 학습하는 객체를 에이전트(Agent)라고 부릅니다.  위 그림의 마리오를 보면 에이전트(사람)는 동전을 넣고 레버를 조작하면서 마리오를 움직여서 버섯 몬스터를 없애서 게임이 끝났을 때 최종 점수를 받게됩니다. 처음에는 게임에 익숙하지 않은 에이전트가 버섯과 부딪혀서 죽거나, 뛰어가다 점프를 안하고 구덩이에 빠져서 죽는경우가 있습니다. 계속해서 투입되는 동전을 보면서 부딪혀서 죽거나, 장애물을 피해야 안 죽는 것을 인식하게 됩니다. 따라서 먼저 계속 투입되는 동전을 아까워하며 점점 조작에 익숙해집니다. 조작이 익숙해지면 최대한 죽지않고 빠르게 스테이지를 클리어 하는 법을 터득하게 됩니다. 에이전트는 동전(벌칙)의 투입을 최소화하면서, 점수(보상)을 최대화하도록 레버 조작이라는 행동을 학습하게 되는 것입니다. 

 

이처럼 강화학습은 직접적으로 정답을 주지는 않지만 주어진 보상을 최대화할 수 있도록 시행착오를 통해 행동을 최적화할 수 있습니다.

지난 5월 달에는 학기 중에 공부도 많이하면서 시간이 날때마다 버스에서 많이 독서를 하였습니다. 그래서 이번 달에도 효율적으로 시간을 보내면서 지적으로도 성장을 원하여서 매달 2권의 책의 독서를 계획 중입니다.

 

 

 

이번 달에는 S&P 지수 상승률이 47%에 못미치는 1970년대에 4200%의 수익률을 기록한 퀀텀펀드의 공동 창업가 짐 로저스가 집필한 책에 대하여 독서를 해보았습니다. 기존에 4차 산업혁명을 맞아서 IT 개발의 기술적인 요소 관심이 많지만 저의 제일 주된 관심분야는 자산관리 및 운용입니다. 이러한 저의 주요 관심분야에서의 유의미한 결과와 역사에 한 획을 남긴 짐 로저스의 생활 철학 및 인생을 사는데 더 나은 삶을 살기 위해 팁을 얻기 위해 이 책은

많은 인사이트를 남겨주었습니다.

어떻게 보면 책에서는 누구에게는 당연한 이야기를 할 수 있다고 느껴질 수 있습니다. 하지만 안다는 것과 실천하는 것과는 엄청난 차이점을 가지고 있습니다. 더불어서 성공을 향하여 달려가는데 있어 자신의 색깔을 뚜렷히 하고 남을 존중하는 것에 많은 시사점을 준 책 이였습니다.

책의 구성을 간단하게 설명을 해드리면

1) 학창시절

2) 절대로 하지 말아야 할 일

3) 성공적인 인생

4) 재능 발견하기

5) 여성의 힘

6) 마음에 관한 문제

7) 품위 있는 삶에 관해

8) 모험을 좇아서

9) 돈에 대한 이해

등 전반적인 인생을 어떻게 살아야 하고 자기계발을 어떻게 이어나가는 것이 중요한지 강조하고 있습니다. 이 책을 몇 번씩 더 읽어보면서 나중에 저의 자식에게도 쉽게 이러한 이야기를 옆에서 해주면 좋을 것 같다는 생각이 들었습니다.

마지막으로 이 책을 읽게 기회를 주신 이레미디어에 감사하다는 말씀을 전하고 싶습니다.

'금융 > 자산운용' 카테고리의 다른 글

[자산운용] 랩어카운트의 종류  (0) 2019.10.27
[자산운용] 랩어카운트란?  (0) 2019.10.16
[자산운용] 랩어카운트의 유래  (0) 2019.10.16

 

 

스마트 베타는 사람마다 바라보거나 받아들이는 관점이 다릅니다. 그러므로 정의하는데 있어서 차이점들이 존재할 수 있습니다. 가장 일반적으로 받아들여지는 정의는 '장기적으로 주가지수 이상의 성과를 낼 수 있는 체계적이고 투명한 운용방식'입니다.  예를 들면 규칙 기반의 과학적인 운용 프로세스와 투명성이 뛰어난 합리적인 운용 방식이라고도 표현합니다.

 


 

 

 

기존의 알파와 베타의 교집합으로 볼 수 있으며,

 

1) 베타는 주가지수 혹은 특정 지수를 추종하는 운용방식

2) 알파는 벤치마크인 지수 대비 초과 수익 또는 초과 수익을 얻기 위한 운용방식

 

등을 의미합니다.

 

운용이란 꾸준하게 양의 알파를 창출하는 것이 목적이지만, 지속적으로 시장을 이기는 것은 매우 어려운 일입니다. 과거에는 시장을 꾸준히 이겨왔던 초과수익이 매니저의 능력이나 전략에 의해 평가되었습니다. 그러나 금융의 발전과 여러 연구를 통하여, 이러한 초과 수익이 배당, 소형주, 가치, 성장 등 특정한 팩터에 의해 발생하며, 사전에 정해진 규칙을 통해 이러한 요인에 팩터에 대한 노출이 투명하게 운용될 수 있다는 사실이 밝혀졌습니다. 과거에는 알파로 여겨졌던 것들이 최근에는 베타화되며, 스마트 베타라고 불립니다. 

 

스마트 베타는 시장 베타(Market Beta)에 대비되는 의미로 사용되며, 대안적 베타(Alternative Beta), 어드밴스드 베타(Advanced Beta), 전략적 베타(Strategic Beta)로도 불리기도 합니다. 스마트 베타는 규칙에 기반한 운용 방식이므로 주가지수를 만드는 것처럼 지수화할 수 있으며, 시가총액 방식의 주가지수와 대비하여 강화된 지수화(Enhanced Indexation)이라고도 불립니다. 

 

 

 

 

 

원가란 제품을 생산 및 판매하고 서비스를 제공하기 위해 소비한 모든 비용을 말합니다. 반면에 이익은 일정 기간 매출에서 소요된 원가를 뺀 것입니다. 식으로 표현하면 '이익 = 매출 - 원가'가 됩니다.

 

따라서 이익을 얻기 위한 방법은 매출의 양을 늘리거나 제품의 가격을 높여 매출을 높이는 것, 혹은 원가를 낮추는 것 두 가지등이 있습니다. 그러나 매출을 늘리는 것은 간단한 문제가 아니며, 시장 경쟁 원리로 정해지는 가격은 임의로 결정할 수 없습니다.

 

그래서 기업들은 내부 노력만으로 가능한 원가 절감 조치를 강구해 매출이 줄더라도 이익을 확보할 수 있도록 회사 차원에서 노력합니다.

 

 

 

회사 전체의 이익에 관해 설명할 때 회사가 보유한 자산 대비 이익률을 나타내는 '총자산 이익률(ROA: Return On Asset)'이 자주 사용됩니다. 이는 수익을 내기 위해 회사의 자산을 얼마나 효율적으로 운영하는지 표현하는 방법입니다.

 

ROA는 매출 이익률과 자산 회전율 곱셈으로 나타냅니다. 달리기에 비교한다면 매출 이익률은 보폭, 자산 회전율은 발의 회전으로, 그 둘을 곱한 값이 달리는 속도라고 생각하면 알기 쉬울 것입니다.

 

대표적인 판매 수익 관리 방법은 매출액에 연동되는 구매 원가와 같은 변동 비용과 토지, 건물과 같은 고정 비용 구분해 원가를 관리하는 방법입니다. 그림에서 보듯이 공장에서의 판매 수익을 높이는 방법은 변동 비용의 단가를 낮추는 방법과 고정 비용을 낮추는 방법이 있습니다.

 

한편, 자산 회전율 향상이라고 하는 관점에서 제조의 역할은 재고 삭감입니다. 재료, 중간품, 완성품 뿐만 아니라 공정 내의 제작품을 포함한 모든 재고를 관리 대상으로 하고, 적절한 개선책을 강구함으로써 생산 리드 타임을 단축하는 것이 중요합니다.

 

공장에서 관리하는 비용은 크게 '재료비', '노무비', '경비' 로 나눕니다. 이것들을 관리하기 위해 1) 매년 예산 관리와 연동된 부서별 원가 목표 수립과 제품 개발 원가 기획, 2) 원가 개선 활동 실적 수집과 보고를 실행합니다.

 

 

파이썬에서 부동소수점은 float로 나타내며 int와 같이 불변형입니다. 단정도(single precision) 방식에서 32비트 부동소수점을 나타낼 때 1비트는 부호 sign (1:양수, 0:음수), 23비트는 유효 숫자 자릿수 (significant digits), 8비트는 지수(exponent)입니다.

 

 

 

 

예를 들어 십진수 -118.625(10) 를 32비트 단정도로 표현해 보았을때, 먼저 숫자의 절댓값을 이진수로 변환합니다. 부호는 음수이므로 1입니다.

 

118 / 2 = 59 ... 0

59 / 2 = 29 ... 1

29 / 2 = 14 ... 1

14 / 2 = 7 ... 0

7 / 2 = 14 ... 1

3 / 2 = 1 ... 1

0.625 * 2 = 1.250

0.250 * 2 = 0.500

0.500 * 2 = 1.000

 

즉, 1110110.101(2) = 1.110110101(2) * 2^6 입니다.

 

그 다음 변환된 이진수를 다음과 같이 정규화합니다.

 

위의 숫자를 가수부(23비트)에 넣습니다. 부족한 자릿수는 0으로 채웁니다.

 

지수는 6이므로 바이어스(bias)를 더합니다. 즉, 지수 6에 127(0111 1111(2)) 더합니다.

 

6(10) + 127(10) = 133(10) = 10000101(2)

 

이상의 결과를 종합하여 -118.625(10)를 32비트 단정도로 표현한 결과는 다음과 같습니다.

 

 

 

 

배정도(double precision) 방식에서는 64비트 부동소수점을 나타낼 때 1비트는 부호, 52비트는 가수, 11비트는 지수로 나타냅니다. (단정도 방식이때 127(2^7-1)을 더하고, 배정도 방식일 때 1023(2^10 - 1) 을 더합니다.)

 

'프로그래밍 > 자료구조' 카테고리의 다른 글

[자료구조 / 파이썬] 정수, int  (0) 2019.11.14

 

 

파이썬에서 정수는 int로 나타내며 불변(immutable)형입니다. 불변형 객체는 변수와 객체 참조 간에 차이가 없습니다. 파이썬 정수 크기는 컴퓨터 메모리에 의해 제한됩니다.

 

파이썬 정수 크기는 적어도 32비트 (4바이트) 입니다. 정수를 나타내는 데 필요한 수를 확인하려면 파이썬 3.1 이상에서 int.bit_length() 메서드를 사용할 수 있습니다.

 

 

 

어떤 문자열을 정수로 변환하거나, 다른 진법의 문자열을 정수(10진법)으로 변환하려면 int(string, base) 메서드를 이용하면 됩니다.

 

 

 

int 메서드의 밑은 2에서 36사이의 선택적 인수(optional argument)입니다. 문자열 s에서 base 범위의 숫자를 벗어나는 값을 입력하면, int 메서드에서 ValueError 예외가 발생하게 됩니다. 

 

품질은 JIS 정의에서 '상품 또는 서비스가 사용 목적을 충족시키는지 아닌지를 결정하기 위한 고유의 성질 및 성능 전체' 라고 기술되어 있습니다.

 

제조 산업 초기에는 '제품의 품질이 얼마나 규격에 맞는지'가 품질을 판단하는 기준이었지만, 현재는 '제품을 포함한 모든 서비스의 품질이 얼마나 고객의 요구' 에 맞는지로 판단을 합니다. 이를 충족하려면 '제품이나 서비스 그 자체의 질'로 눈을 돌려서 '일하는 방법과 구조의 질'을 높여갈 필요가 있습니다.

 

 

'품질관리(Quality Control)'란 제품이나 서비스를 대상으로 고객이 원하는 좋은 것을 더 싸고 필요한 시점에 안전하게 사용할 수 있도록 PDCA 사이클을 통해 제품과 서비스의 품질을 종합적으로 유지하고 개선하는 활동을 의미합니다.

 

품질 관리 활동에는 

 

1) 일상업무 중 품질 목표에서 벗어나지 않도록 유지/관리하는 활동

 

2) 고객에 대해 품질을 보증하고 만족도를 향상시키기 위한 개선 활동

 

위와 같이 의 2 가지 목적이 있습니다. 이 2가지를 잘 조합해 개선하고 유지하는 것을 착실하게 반복해야 합니다.

 

 

품질 문제가 발생했을 경우에는 즉시 대응해야 하며, 고객이나 거래처, 시장에 대해서는 '임시 조치를 신속히 실행'하고 사내에서는 '원인을 분석' 하는 것이 제일 중요합니다. 

 

원인 규명과 분석 과정에는 사내의 모든 관련 부서과 참여해 해결책을 이끌어냅니다.

 

 

 

 

많은 제조 기업에서 QCD 개선에 PDCA 개선 프로세스를 이용합니다. PDCA는 'Plan', 'Do', 'Check', 'Action'의 머리 글자를 딴 약어입니다.

 

 

 

* Plan (계획)

-  QCD의 개선을 위한 현실적이고 실행 가능한 계획 수립

 

* Do (실행)

-  계획 실행

 

* Check (평가)

- 결과를 확인하고 계획 미달의 경우 계획 달성을 위한 개선책 수립

 

* Action (개선)

- 개선책을 실행하고 계획대로 효과 확인 후 개선책 구조화

 

 


 

PDCA 프로세스는 QCD의 추가 개선을 위해 지속해서 실시합니다. 이 반복적인 개선 활동을 PDCA 사이클이라고 부릅니다.

 

QCD를 개선하기 위해서는 목표 설정이 필요하고, 목표를 향한 개선 활동의 효과를 확인하려면 '주요 관리 항목 (KPI: Key Performance Indicator)'이 필요합니다. PDCA 개선 활동 성과를 주요 관리 항목으로 관리하기는 하지만, 단순히 결과를 수치로 나타내는 것만으로는 의미가 없습니다. 수치 결과를 다음 개선 활동으로 연결하는 것이 중요합니다.

 

 

예를 들어서 납품 물량 또는 납기 관리를 위한 관리 항목에 납기 준수율이 있다고 가정을 합니다.

 

전체 회사 또는 전체 제품 납기 준수율이 80% 라는 결과 수치도 중요하지만, 이것만으로는 다음 개선을 위한 분석이 어렵습니다. '어디가 어떻게 잘못됐는가?' 를 구체적으로 파악하는 것이 중요합니다.

 

전체 회사 또는 전체 제품을 한 단계 더 구체화해 제품별, 공장별 월별로 출하 수치를 파악할 수 있으면 납기 준수율 문제의 영향 요인 대상 범위를 좁힐 수 있습니다. 또한 다음 단계로 합계 데이터를 (제품별 > 공장별), (공장별 > 기간별) 로 세부 단위를 나누고 합계 기준을 바꾸어 결과를 확인해 보면 보다 구체적인 개선 팁을 얻을 수 있습니다.

 

공장의 생산 활동 중에서 납품한 제품 안에 불량품이 섞여 있거나 제품 가격이 적절하지 않거나 약속한 납기일에 약속한 수량을 공급하지 못하면 고객의 신뢰를 잃고 주문이 줄어들게 될 것입니다.

 

 

 

공장에는 생산관리가 필요하며, '정의된 품질 및 사양(Quality)'의 제품을 '정의된 비용(Cost)'으로 '정의된 수량/납기(Delivery)'대로 생산할 수 있도록 'QCD 관리'가 필요합니다.

 

* QCD 관리를 효율적으로 실시하는 것이 생산관리의 주 목적입니다.

 

QCD 관리는 Q만 하거나 C만 하는 등 개별적으로 달성하는 것이 아니라 QCD를 동시에 균형 있게 달성하는 것이 중요합니다.

 


 

품질관리(Q) 도입 초기에는 출하 검사에서 불량품을 검사해 불량품 출고를 막았지만, 현재는 제품의 설계 및 제조 단계에서부터 품질 목표를 달성하는 활동으로 변화하고 있습니다. 즉, 검사에서 불량품을 '찾아낸다' 라는 생각에서 '품질을 만들어간다' 라는 생각으로 변화하고 있습니다.

 

 

원가관리(C) 를 생각할 때 제품 원가는 '재료비', '노무비', '경비'로 구성됩니다. 예를 들어 빵 제조에서의 재료비는 밀가루, 설탕, 기름, 달걀, 팥을 사는 데 들어가며, 노무비는 제빵원이나 사무원의 급여, 경비는 점포나 공장 임대료, 전기료, 제빵 기계 등 설비 기기의 감가상각 비용입니다. 제품 원가에는 재료비 이외에도 노무비와 경비가 포함되는 것이 핵심입니다.

 

 

납품 수량 및 납기 관리(D)는 제조 공정에서의 관리가 중요합니다. 출하 단계에서는 납기 지연이나 수량 부족이 확인되더라도 이에 대응하기 어렵습니다. 최종 공정인 출하 단계가 아니라 제조 공정 초기부터 진행 상황을 확인해 공정 납기 지연이나 납품 수량 부족이 예측되면 신속하게 대책을 강구하고 고객과 약속한 납기와 수량을 지킬 수 있도록 최선의 노력을 하는 것이 중요합니다.

 

+ Recent posts