2020년 코로나바이러스로 인한 경기둔화로 유발되는 원유수요감소와 감산합의 실패에 따른, 원유가격은 베럴당 19달러까지 이르는 모습을 보여주었다. 석유수출기구(OPEC)와 동맹국사이에 있었던 감산합의가 2020년 3월을 기점으로 종료되고 합의에 실패했다. 그러면서, 선물상품들의 가격도 크게 하락했다.

이어, 투자자들의 관심이 오히려 원유 선물상품에 관심이 많았는데, 그중에 대표적인게 WTI원유선물 ETF, WTI 레버리지 원유 ETN이다. 위의 차트는 원유선물 ETF의 차트인데 2월들어 크게 하락한것을 볼 수 있다. 아래의 차트는 ETN인 레버리지 WTI 원유 선물이다. 즉, 레버리지기 때문에 X2로, 기초자산에 해당하는 WTI(서부텍사스유)의 가격이 1%오를 때, 해당 ETN은 2%씩 오를 수 있다. 그래서, 굉장히 많은 인기를 끌었다.



이쯤에서 드는 생각은 같은 WTI 원유 선물인데 1배짜리인 ETF이며, 2배짜리는 ETN이다. 이유는 무엇이며, ETF와 ETN의 차이는 어떤것일까? 이 물음에 대한 포스팅을 해보았다.


ETF(Exchange Traded Fund)의 약자로 일종의 펀드와 같다. '펀드와 같다'라고 설명한 이유는 펀드를 거래소에 상장시켜 주식과 동일하게 매매를 통해서 만든 상품이기 때문이다. 즉, 펀드의 1좌씩 사야하는 단위를 1주로 바꾸어 거래소에 상장시킨 것을 의미한다. 따라서, ETF는 펀드의 특성을 고스란히 가지고 있다.


ETF (Exchange Traded Fund)


1. 펀드와 같이 기준가격이 산정이 된다. 이 말은, 기초자산을 추정하는 가격으로 매일 가격이 변동하는 것을 의미한다.

펀드와의 추가적인 차이는 펀드는 가격이 일별로 변화되지만, ETF은 말그대로 주식이기때문이 실시간으로 가격이 산정된다.


2. ETF의 거래는 증권사계좌를 이용해 거래를 해야한다. ETF는 펀드의 성격이 있지만, 정확히 펀드는 아니므로 은행이나 증권사 창구에서 매매할 환매/설정이 불가능하다.


3. 투명성Portfolio Deposit File. 

펀드 설정(매매)를 해본 사람은 매번 한국예탁결제원으로부터, 사후(분기 당) 펀드의 운용보고서를 받아볼 수 있다. 이 운용보고서에는 자산의 구성내역 및 펀드 운용에 대한 모든 사항이 포함되어있는데, 실시간이 아닌 사후에나 알 수 있다. 하지만, ETF은 납입자산구성내역(PDF, Portfolio File)을 공시제도를 통해 해당 펀드의 포트폴리오(자산구성)을 매일 확인할 수 있다. 즉, 어떤 자산들이 얼마만큼 들어가있는지 운용사 홈페이지 투명히 에 공시된다.


4. 유동성 보강(LP, Liquidity provider): 유동성공급자라고, 일정시간 동안 일정 범위내에 호가가 없는 경우 의무적으로 ,매수 매도의 호과를 제시함으로써 부족한 유동성으로 거래 체결이 안되는 일을 막기위해 도입된 것이다. LP 입장에서는 호가를 제시하는 의무를 부담하지만, 호가가 없는 만큼 ,낮은 가격에 사서 높은 가격에 팔 수 있는 스프레드 이익을 얻을 수 있다. 즉, 사고자하는 사람의 가격이 너무 낮으며, 팔고자하는 사람의 가격이 너무 높으면 호가가 너무차이가 나는데, 이 중간의 호가를 틈틈히 채워주는 역할을 한다. LP은 매수와 매도에 최소 100주의 호가를 깔아두어야하는 의무가 있다. ETF은 이러한 LP제도를 통해 거래가 잘 되도록 유동성을 보강하고 있다. 


5. ETF의 가격: ETF의 가격은 발행시장의 가격과 유통시장의 가격이 있긴하다. 그러나, 거래하면서 보는 가격은 아마 시장가격만을 볼것이다. 시장가격은 ETF가 상장되면서, 시장에서 결정되는 가격을 의미한다. 흔히들, ETF의 가격이 오차없이 기초지수를 따라가는 상품이 좋은 상품이다. ETF의 순자산총액은 (ETF의 자산 - ETF의 부채)로 계산이 되는데, 이 순자산총액을/ ETF발행주수로 나눈 것이 ETF 1주당 가치이다. 이는 NAV(Net Asset Value) 라고도 부른다. 이 NAV는 쉽게 생각하면, '권장소비자가'에 해당하며, 발생시장가격은 마트에서 판매하는 유통가격이다. 즉, NAV보다 시장가가 비싼경우도 있고, 싼 경우도 있다. 이를 '괴리' 라고 한다. (레드 코딩할만큼 중요한 개념이다). 즉, ETF의 괴리율은 'ETF의 현재 시장가격 대비 NAV의 가격의 차이를 의미'한다. 즉, 기초자산을 얼마나 잘 추정하는지를 볼 수 있다. 

예를 들어, HTS나 MTS에서 '괴리율' +0.15% 라는 것은 현재 시장가격이 기초자산 대비해서 +0.15% 만큼 높게 형성되어있다는 것을 얘기하는 것이고, '괴리 +30'은 주당 가격이 30씩 프리미엄이 붙었다는 것을 의미한다.

* 참고로 발생시장에서는 ETF의 상장수를 줄이거나 늘리거나하는 역할을 한다.


6. ETF의 운용보수도 존재한다: ETF도 결국에 Fund이기때문에, 펀드에 대한 운용보수의 비용이 있다. 이는, 증권사 HTS나 MTS, 또는 네이버의 ETF정보 등을 이용해서 운용보수를 확인할 수 있다. 



ETN (Exchange Traded Note)


ETN은 국문으로는 상징지수채권 또는 상장지수증권이라고 부른다. 위에서 설명한 ETF와 굉장히 유사해보인다. 실제로 MTS나 HTS에서도 실시간으로 거래도 가능하기에 같은 것으로 착각할 수 있다. 

가장 큰 핵심은 'ETN은 파생결합증권'의 성격을 갖는다는 것이다. 펀드의 경우는 실제 자산을 운용해주는 '자산운용사'가 발행을하고 운용을 한다. 그러나, ETN은 '증권사'가 자기 신용으로 발행하는 파생상품이다. 극한의 상황에서는 운용사가 파산해도 실제, 발행한 증권을 갖고있는 ETF은 일부를 건질 수 있지만, ENT은 실물이 없는 파생상품이기 때문에 자산을 되찾기 어렵다.


1. ETN은 기초자산의 범위가 넓다. ETF은 특정 시장지수를 추정하게 설계되었지만, ETN은 파생결합이다보니, 추정할 수 있는 상품들이 훨씬 많다. 채권, 인프라, 통화 옵션등 다양한 편이다. 

2. ETN의 괴리율이 매우 적다. ETN은 기초자산이 원래 파생상품인 것을 상장시킨 것이기 때문에, 기초자산의 움직임과 같이 움직인다.

* 그러나, 이론적으로 그렇다는 것이며, 최근 오일시장의 경우는 괴리율이 큰 모습도 관찰할 수 있다. 아래는 삼성 레버리지 WTI 원유선물의 괴리율을 보여준다. 괴리율이 46%에서 88%까지 치솟았다. 이는 실제, LP이나 발행시장쪽에서 수급을 조정해서 괴리율을 낮춰보고자하지만 이미 그 물량까지 다쓸어가서 시장에 유통되고잇기에 자산가격을 추정하지 못한 것으로 파악된다.



3. ETN은 만기가 존재한다. 기초자산이 파생상품이기 때문에, 현물인 원자재, 지수, 인프라, 금은 등의 선물 또는 옵션등이다. 따라서 이러한 상품들은 만기가 존재하므로, ETN도 만기가 존재한다. 





* 투자주의


Roll-over 비용: 투자할 때, 운용보수 외에, 반드시 확인해야할 것이 "롤오버 비용"이다. 아래의 KODEX WTI 원유 선물의 상품정보를 보면, "단기 변화를 더 잘 반영하는 기초지수를 추종"한다고 되어있다. 이 말이 되게 무서운 말이다. 왜냐하면, 그 아래의 "-최근 월물로만 월물을 교체하는 지수(ER index)" 라고 되어있는데, 이 최근 월물로만 교체하는 비용에서 롤오버 비용이 매달 발생하기 때문이다.


쉽게 설명하면, 아래와 같다. 투자시점은 2020년 4월 17일의 현물가격은 19.87이고 5월만기의 선물(5월물)은 18.24이다. 현재, 투자시점은 5월물을 들고있는 것이다. 근데, 만일 투자시점이 5월이 지나면, 매수포지션을 연장을 해야한다 이를 '롤오버'라고 한다.. 이 말은 6월물을 또 사야한다는 것과 동일하다. 따라서, (시장가격이 변동이없다면), 5월물인 18.24을 처분하고 다시, 25.22을 사야한다. 따라서 (25.22 - 18.24)만큼의 비율로 투자손해가 발생한다. 이를 '롤오버 비용'이라 한다. 


최근, 유가가 급격하게 빠졌기 때문에 (아래 차트), 시장 참여자들이 '나중에 오르겠지'라는 생각은 이미 만연해 있다. 그렇기에, 원월물(나중의 선물)가격이 이미 올라있다(위의 차트). 그렇기에, 2020년 6월물이나 7월물이나 8월물이나 이미 32달러에 근접해있는 시장가격을 볼 수 있다.  


KODEX 홈페이지에도 이는 이미 안내가 되어있다. 아래에 보는 것처럼 이미, "현재의 원유시장이 1개월 기준 콘탱고(Contango) 시장"이라고 안내가 되어있는데, 이미 이는 원월물시장이 근월물시장보다 가격이 높은 것을 의미한다. 따라서, 투자자는 해당 ETF을 장기적으로 보유한다면, 아래와 같이 계좌가 1년만에 27%나 털리는 마법을 볼 수 있다.




기타 읽을 거리

응용 전략:

https://www.hankyung.com/finance/article/202004017590i


참고: http://www.kosef.co.kr/etf/

한화자산운용 : http://www.arirangetf.com/html/info/story08.jsp


반응형

TypeError: ufunc 'isnan' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe''


아래와 같이 numpy 배열의 데이터타입이 object 인 경우. numpy 내에 object로 스트링으로 숫자나 글자들이 들어가있을 수도 있다. 추출한 행,열의 dtype을 확인하여라.


np
.isnan(np.array([np.nan, 0], dtype=object)) TypeError: ufunc 'isnan' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe''


반응형

Built in Type in Python

- NoneType: None . 실수형도아니고 정수형도 아니고,..

- Int : 컴퓨터 메모리에서는 2진수로 표현되고있는데, 10진수를 2진수로 표현하고있음. -inf ~ int로 표현할 수 없다.

- Float: 실수조차도 메모리에서는 2진수로 표현하기하는데, 0과 1사이의 무수히 많은 수가 있는데, 이를 표현하긴 불가능하다. 즉, 표현할수 있는 실수가 정해져있다. 유효숫자가 16자리가 이상이면 정확도가 떨어진다.

- Complex: 복소수를 표현

- Bool: True, False


조금 복잡한 구조: str, list (아직 만들지 않은 타입도 저장할 수 있다), tuple, dict, set <- Data structure: 한번에 여러개를 저장할 수 있게한다. 


Algorithm


입력을 받아 출력으로 변환하는 계산 과정.

Correct: 모든 입력에 대해 항상 올바른 출력을 내토 끝남. 어떤숫자든.

Solve: 타당한 알고리즘은 문자를 푼다.


Theta, Big-O, Omega Noation


Theta noat : f(n)으로 표현한 수식으로 표햔한 것같으로... g(n)으로. 정확하게 알고있는 것을 세타임. 양측 바운더리를 알고 있을 때 표기

이미 대표적으로 알고있는 함수들 g(n)이라고 할 떄, log n 

내가 만든 알고리즘은 f(n) = theta(g(n))

Big-O: g(n)에 대표적인 함수를 알고있을 떄, 상한을 알고있을 때. 최악의 경우의 표기법

Omega: g(n)에 대표적인 함수를 알고있을 떄, 상한을 알고있을 때


Approach


Incremental approach: 

Divide and conquer Approach (분할/정복/결합): 예, 왼쪽 반과 오른쪽과 따로따로 나눠서 생각해보자, 또 왼쪽반을 1/2, 1/2으로 나눠보자. 2개로 나눴을 때는 해결하기가 쉽다, 이를 정복(Conquer)한다고 한다. 예) Mergeg sort



Doubly Linked list



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
Doubly Linked list
def delete(self, data):
    here = self.search(data) # 어디 있는지 찾아야함. bool으로 받음.
    if here:
        if here.prev != None: # 맨앞에 노드가 잇으면
            here.prev.next = here.next  # 나보다 전노드가 잇으면교체
        else:
            self.head = here.next
        if here.next != None: # Tail node
            here.next.prev = here.prev 
        else# tail인경우
            here.next
            
    
    
cs



Ciruclar lists 


Stack (LIFO:last in First Out ) vs Queue (FIFO)


stack은 파이썬의 list 을 쓰면된다. 굳이 구현할 필요 없다. 

원소를 넣는 것은 push한다고하고, 원소를 뺼떄는 pop하면된다.

스텍예제)

infix notation: 수식은 operand, opertor가 필요한데, 파이써든 C언어든 오퍼랜드 사이에 오퍼레이터를 넣어서 작성한다. 이를 infix natation이라 한다. 

그러나, 예를 들어서 CPU을 동작시키려면 postfix-expression줘야한다. 이렇게 만들면 괄호가 필요가 없다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# postfix expression 
 
def eval_post(e);
    'e: string. operand : 1자리수, operator:4칙연산'
    stack = []
    for k in e:
        if k not in ('+''-''*''/'):
            stack.append(int(k))
        else:
            op2 = stack.pop()
            op1 = stack.pop()
            if k == '+':
                stack.append(op1 + op2)
    return stack.pop()
    
cs


Queue:  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# Queue
 
class ListQueue:
    def __init__(self):
        self.size = 0
        self.items = []
 
    def enqueue(self, data):
        self.items.insert(0, data)
        self.size += 1
    
    def dequeue(self, data):
        data = self.items.pop()
        self.size -= 1
        return 
 
    def __str__(self):
        return str(self.items)
 
 
cs



Tree


Hierachical form of data strucutres (<->sequential form)

- Parent-child relationship between the items

- Root: the ancestor of all other nodes in the tree. (최상위 조상)

- Application: Parsing expression, Sorting, Searches, Document(XML, HTML)


Parent Node: 부모 노드

Root node:최상위 노드

Subtree: tree내 그 하위 트리,

Degree: children node의 수

Leaf Node: children이 없는 노드

Edge: 노드-노드의 연결선

Sibling: 부모가 같은 노드. 형제노드

Level: root에서 몇개 내려왔는가? (e.g root level = 0임)

Height of tree: 트리의 길이. 가장 긴 노드의 (e.g. A-B-F-L : height 4이다)

Depth: 루트로부터 몇개내려왔는지?


Binary: 각 노드의 children이 최대 2개이다. children이 없을수도있고(leaf), 하나 있을수도있고 2개있을 수도 있다.


Quick-sort

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
def partition(A, first, last):
'마지막 원소보다 큰애들은 뒤로 작은애들은 앞으로 보내는 함수'
    x = A[last]
    i = first - 1
    for j in range(first, last): # last 전까지만 봄. last 은 이미 어사인함
         if A[j] <= x:
            i += 1
            A[i], A[j] = A[j], A[i]
    A[i+1] ,A[last] = A[last], A[i+1]
    return i+1
 
 
def quicksort(A, first, last):
    'first, last : int. index number'
 
    if last - first > 0
        p = partiion(A, first, last)
        quicksort(A, first, p-1)
        quicksort(A, p+1, last)
 
 
cs



반응형


 산업/주제 분류

 질문

 비고

 예상응답
 산업공통

Support / Confidence / Lift 을 설명하여라

 여름용모델... 겨울용모델로 따로 만들수도;; 
  장바구니 알고리즘 단점에 대한 해결법을 제시하여라. 모든 상품에 대해서 추천이 나오지 않을 수 있다. 어떻게 할 것인가?    1. 자주사는 상품만 

2. Rule이 안나오는 상품에 대해서는 어떤 p(A)->P(A) 해당 카테고리 내 베스트 상품을 넣기도 함.

 

딥러닝에서 부스팅 방법을 활용하지 않는 이유가 무엇이라고 생각하나? 

  
 

당신은 왜 데이터 사이언티스트인가요? 

  SKT 전무가 물어봄

3가지를 잘해야하는데...
데이터 사이언티스트라고 얘기하기보단 소신을 갖고 얘기하는 편이.. 

  다른 경쟁자에 비해서, 어떤 우월점을 가지고 있죠? 압박이 아니라..  
 

 최근에 딥러닝은 ROI가 안좋아

  
  당신을 왜 뽑아야하나요?  
 

 데이터 엔지니어

 

1. 대용량 인프라구축

2. 로그 플로우 디자인

3. 실제 서비스 인프라의 베이스라인을 잡음 

  머신러닝 엔지니어 

빅데이터 인프라 활용

현실 서비스에 유용한 feature를 적용 및 서비스 개선

연구의 현실성/타당성을 검증한 뒤 실제적용 

  선행연구 엔지니어

 계속 갈 수는 없을듯? 예) 네이버렙스->분사. 카카오AI도 마찬가지.

논문이나 선행 획득해야하는 기술을 follow up

가장 관심이 높은 분야

모두 살아남기 어렵다 

 CRM

모든 고객의 가치는 동일한가? 악플을 다는 사람은 어떤 가치인가?

1. 돈을 많이 쓰는 고객

2. 일반고객

3, 불량고객 

Background: 본인이 잘 아는 부분에 대해, 악플을 많이 달긴 하더라. 전체서비스에 대해 불만이 다 있는 것은 아니고, 특정 컨텐츠에 대해서만 불만이 있거나 

 

 비용관점 vs 모객 관점?

유지비용보다 더 큰 이익이 되는 고객만 vs 고객 한명이라도 더 모집 

 
 

 자발적 이탈 vs 비자발적 이탈

예) 비자발적 이탈: 사용요금 미수

자발적이탈모델을 만들 때는 비자발적 이탈 사용자는 제외하고 모델을 만들어야함.

 

 조기사망/사고사/자연사

- 게임사: 게임 컨텐츠를 충분히 즐기고 그만두는 경우 

- 사고사: 중간에 다른 외부요인으로 그만두는 경우

- 조기사망: 조기 이탈

 

 화장품(아모레퍼시픽) - CRM

 한 번만 (단일 구매 행동) 구매전략을 세우기 위해서, 분석대상에 포함시킬 것 인가?   한번만 사는 사람들은 자기 니즈에 있어, 크로스셀링의 관점에서는 고객이 아닐 수 있다(?)
  카테고리까지는 추천해주는 경우는 안산제품중에서 어떻게 추천해줄것인가? 특정제품을 더 추천해줄것인가? 아니면 카테고리까지만 보여줄것인가?  해당 트렌젝션(립스틱)이 발생한 경우,  A:최대판매량, B:MD추천, C: 인구학적정보가 유사한 인구가 많이 산 제품 등

항공사

 신규 노선 또는 부진노선을 이용할 확률이 높은 고객을 사전에 예측하고, 그 고객의 속성을 파악할 수 있다면?

Background:  항공사는 대부분 에이전시를 이용해서 판다. 

 상용수송: 사람을 태우는게 아니라, 화물운송등.. (여행이 45% 나머지가 55%가 화물운송)

- 대부분 노선을 1회 이용한다.2~5회 이상은 왔다갔다하는 거일 수 있음

- 대상기간 내 한번만 가는 경우-> 연관성분석하기가 어려움.

- 과거 노선이 현재 폐지되었을 수 있음.

- 한 도시에 여러 공항이 생겨있을 수 있음.

 - Web graph로 시각화 하여+ Assocication Rule 적용 (룰적용시에는 min_sup을 결과보면서 조정을 해야할 듯)


Support 을 기본적으로 보고, Lift 1이상을 보는 게 좋을듯

 컨텐츠(카카오)

 서비스 이탈 vs 작품이탈

지금까지 쭉 읽고있었는데, 매일보다가 안들어오는 경우. 전체 컨텐스 서비스가 아니라, 서비스내 작품 내 관점

이탈이 되기전 관리하자

 

 

이탈 가능성 변수를 생성 

 

[열람패턴]

작품수와 열람수가 줄어드는자

열람 패턴이 불규칙한지

여 장르를 보는사람이 낮고

영화 또는 방송만 보는 사람은 이탈가능성이낮다

최신편수가가 많을수록 가능성 낮음

[작품] 연재종료/휴재 

[유상구매] 유상구매를 하는 사람일수록

[이탈경험] 복귀기간, 이탈경험

[환경] 여러 단말기일수록 낮을듯

컨텐츠(NC소프트)

 프로젝트 했던 과정에 대한 질문

 실무진면접

 
 

 입사 후 진행하고 싶은 프로젝트에 대화

  

 

 전직장 퇴사이유에 대한 질문

 

 

 카카오

#graph 이론
#tree 이론
#quick_sort 구현
#divide and conquer이 쓰인 유명한 알고리즘 예시
#l1, l2 차이 비교. 하는 이유
#likelihood의 개념, 확률과 likelihood의 차이
#코드에서 time이 얼마나 걸릴지? O(n2) 등등 
  
    


딥러닝은 병렬처리 가능/ SVM은 병렬처리의 최적화가 어렵다다던데;;


Background


고객획득과정: 예) 5억들어 MASS 광고(방문자 10만명) -> 2주생존율 (10%, 방문자 1만명) -> 구매 전환율 (50%, 방문자 5천명).

AARRR: 고객 획득과정:

 -> Acqusition, Activation, Retention, Referral, Revenue 구매전환율을 고려해서 역산해서 광고비를 계산해서 비용을 산정하기도 함

https://www.greensystem.vn/en/blog/product-manager-framework-aarrr-metrics.html


신용평점모형(평점표 모형, Scorecard model)




Abbreviations


 CLTV(Customer Life Time value)

 AARRR model: Acqusition, Activation, Retention, Referral, Revenue 


반응형

'Data science' 카테고리의 다른 글

오토마우스: 간호사, 의사 보수교육 사이버연수 자동클릭  (0) 2022.10.29
Data structure  (0) 2020.01.28
Network analysis  (0) 2019.11.20
Undersampleing & Oversampling  (0) 2019.07.08
Regular expression  (0) 2019.03.12

현금이 많은 기업을 찾아라.


현금및현금성자산이 풍부하다는 것은 기업이 매출 채권을 원활하게 현금으로 회수하고 있다는 의미이다.

- Key point: 주당순현금을 계산하여라 (주당순현금 = (현금및현금성자산 - 비유동부채) / 발행주식수

* 주당순현금에 기반한 주가상승은 일시적일 수 있다.

* CP (Commercial paper, 기업어음)과 CD(Certificate of deposit) 양도성예금증서는 현금처럼 생각할 수 있지만, 대차대조표에 허위기재되는 경우가 많아 분리해 생각하는것이 합리적이다.

비유동부채를 차감하는 이유는 1년안에 갚아야하는 유동부채는 회사내 가지고있는 매출채권으로 상쇄가 가능하다고 가정하기 때문이다.

주당순현금은 주식가격을 상쇄시킬 수 있다. 아래의 예시를 들어보자. 아래는 라온시큐어라는 보안솔루션 관련 회사이다. 이 회사는 현금성자산이 220억정도에, 비유동부채가 160억이다. 따라서 순현금으로 고려할 수 있는 부분은 60억정도는 자산의 순현금이라고 고려할 수있다. 현재 보통주로만 3,100만 주식이 발행되었다(1억1천주가 발행되고 나머지는 감자되었다.) 따라서 60억 / 3,100만이니 .. 이 회사는 약 20원정도의 주당순현금을 가지고 있다고 할 수있다. 주가가 2,200원이라면, 현금이 붙어있는 20원정도를 제외하고, 2,180원정도에 구매할 수 있다는 뜻이다. 생각보다 현금을 많이 보유한 회사는 찾기가 어렵다. 




유가증권이 풍부한 기업을 찾아라.


유가증권에는 4가지 종류가 있는데, 이 중, 매도가능증권(AFS, available for sale securities), 지분법적용투자주식(Securities under equity method) 에 주목하자. 매도가능증권과 지분법적용투자주식은 둘다 증권(주식)이라는 점에서 공통점이지만, 지분법적용투자주식인 한 회사의 지분율 20%이상 보유한 경우, 특별한 계상으로 고려될 수 있다. 또한,  지분법적용투자주식은 평가이익이 과세소득에서 제외된다. 또한 지분법적용투자주식은 평가차익이 발생한경우 손익계산서에 수익으로기록할 수도있다. 그러나, 현실에는 외부에 수익을 숨기고 싶어하는 경우 매도가능증권으로 처리하는 경우가 많다. 지금 당장의 수익이 발생하지 않은 것으로 보일 수 있기 때문이다.

* Key: 매도가능증권(AFS)가 많은 경우도 주목해서 살피자. 현금이 많은 주식을 사는 것과 같다.

* 주당 유가증권의 가치를 계산하자.



유형자산과 부동산가치


기업이 영업활동을 위해 장기간 보유해야하는 물리적 실체가 있는 자산을 유형자산(PPE, Property plant and equipment)라고 한다. 물리적 실체가 없으면 무형자산(intangible asset)이라고 한다. 이러한 계정과목 중, 우리가 주목해야할 자산은 유형자산이다. 유형자산은 실제 취득원가로 기록되괴, 감가를 해서 비용으로 감안하는데, 특정 자산들은 오히려 늘어나는 경우가 있다. 그럼에도 이 자산이 실제가격과 괴리가 큰 자산들이 있는데, 이가 '부동산'자산이다.

* Key: 유형자산 중 부동산자산가치가 있는 회사를 찾는 것은 프리미엄을 줄 수 있다. (하지만, 실제 부동산자산이 있다고 알아도 평가가 어렵다)

또한, 유형자산을 사놓고 놀리면 안되므로, 유형자산이 얼마나 가성비 좋게 활용되고 있는지 어림잡아 계산할 수 있는데, 이가 유형자산회전율(PPE turnover)이다. 유형자산회전율은 매출액 / 유형자산의 계산식으로 나누는데, 매출발생에 유형자산이 얼마나 효율적으로 쓰이고 있는지를 활용할 수 있다. 매출액이 매우 큰데, 유형자산이 작은 경우, 유형자산회전율은 매우 커지는데 적은 유형자산으로도 효율적으로 매출을 낼 수 있다는 것을 암시한다.

* Key: 유형자산회전율은 동종업계보다 높은 것이 좋다. PPE turnover = 매출액 / 유형자산 

* 유형자산회전율이 점점 낮아지는 것은 유형자산을 취득한 것처럼 보일 수도 있기때문에, 분식회계의 신호가 될 수 있다.


아래의 예시는 경동나비엔의 2018년 (46기)의 사업보고서 내용중 일부이다. 유형자산이 2,480억정도가 잡혀있다. 실제 자산이 5800억정도인데 절반이 유형자산으로 잡혀있다. 보일러 제조업이다보니 생산설비(건물, 구축물, 기계, 차량 등)이 많다는 이야기이다. 이를 이용해서 한 해에 버는 매출은 7200억이었다. PPE turnover 가 3(=7200억/2480억)에 가까운데,  유형자산을 놀리지 않고 실제로 잘 사용하고 있다는 말이다. 실제로 'II-사업의 내용'에 보면 당해년도 공장가동율도 기입이되는데 4개의 공장을 합쳐 8시간 정규기준으로 92%의 공장가동율을 보이고 있다.



하지만, 이런 유형자산을 매입해서 사용하는 경우 '자본적지출'과 '수익적지출'이라는 두 가지 방법으로 비용을 계상할 수 있다. 자본적지출은(CAPEX,, capital expenditure)라고하여, 자산의 사용 연수를 증가시키거나 가치를 실질적으로 높혀주는데 돈을 사용한 경우다. 일반적인 개인의 경우 인테리어 비용은 실제 부동산거래시 시가에도 반영할 수 있고, 내부사용연수도 증가시키므로 자본적지출이라고 할 수 있다. 한편, 수익적지출(OPEx, operational expenditure)은 취득한 유형자산을 운영하기위해 돈을 지출한 경우를 의미한다. 예를 들어, 아파트를 지어놓고 필요한 경비원을 고용하는데 드는 비용은 수익적지출이라고 할 수 있다. 이는 아파트의 사용연수나 실직적 가치를 높혀주는데는 도움이 되지 않는다. 여기서 중요한 것은 자본적지출(CAPEX)으로 지출한 경우, 손익계산서에는 변화가 없지만, 수익적지출(OPEX)으로 계상한경우에는 실제 순수익이 줄어드는 효과가 난다. 

따라서, 보수적으로 회계를 하는 기업이면 수익적지출로 처리하겠지만, 회사가 적자를 보는 것을 보기 싫은 경우 자본적지출로 계상해버리면 유형자산으로 취급하여 PPE turnover가 낮아진다.


감가상각


유형자산을 계산할 것은 감가상각이다. 감가상각은 정액법과 정률법이 있다. 정액법은 해마다 같은 금액을 감가상각하는 것이고, 정률법은 비율로 (%)으로 자산을 줄여나가는 것이다. 중고차로 예를 들면, 중고차의 경우 초기 감가상각이 매우 큰데, 출고하자마자 2~300만원이 날아가고, 매해 감가상각을 받는다. 그러다 2~5년후에는 거의 가격이 매해 얼마 줄ㅈ ㅣ않는데 이렇게 비율로 줄어드는 것이 정률법이다. 우리나라 회계에는정률법을 쓰는 것 권장하고있지만, 감가상각을 할 겨우, 이윤에서 감가상각부분이 제외되어 순이익이 줄어들게된다. 회사가 올해 손실을 줄이고싶다면 정액법을 쓰는 경우도 있겠지만, 그 반대의 경우도 있다. 이를 참고로, 역분식회계라고 한다.

Key: 감가상각도 하나의 비용으로 생각하여 순이익을 계산한다.


개발비


개발비란 기업이 신제품이나 신기술을 개발하기위해 연구활동을 수행하면서 발생한 비용인데, 미래에 경제적 효익을 가져다줄 것을 의미한다. 중요한 것은 이는 회계상으로 비용이 아니라, 자산으로 분류된다는 사실이다. 따라서 이 개발비는 자산중에서도, 무형자산으로 취급한다는 것이다. 이점은 기술개발이 계속 필요한 회사한테 매우 중요한데 다음의 예시를 들어보자.

개발비 100억짜리의 프로젝트가 있다고하자. 이 개발비 100억이 한번에 투입되었다고 가정하면, 올해 순이익에서 100억을 차감해야하는 것은 당연하다. 이에 따른, 주가하락과 경영상의 애로, 투심저하 등이 당연히 있을테니, 이를 방지하기위해서 무형자산으로 분리해서 천천히 감가상각하자는 것이다.

이런 개발비를 경상연구개발비(판매 및 일반관리비, '판관비'라고도 한다)로 할 경우와, 무형자산으로 취급할 경우가 다르다. 판관비로 취급하면 매출액에서 판관비를 제외하면서 손익계산서를 작성(손실로 기록)하지만, 무형자산으로 하면 아무런 영향을 받지 않는다. MS가 1990년대에 반시장독점으로 재판을 받고있을 때, 수익을 줄이기위해서 연구개발비를 경상연구개발비로 털어내면서 수익을 줄이고자 하였던 사실도 있다.

-Key: 연구개발비 부분을 무형자산으로 분류할지, 경상연구개발비로 분류하는지 잘 살펴보고, 수익이 과대/과소하지 않은지 평가한다.


손익계산서 개념과 원리


손익계산서(IS, income statement*)는 당기 영업을 한후에, 매출액(sales)부터 맨아래 당기순이익(NI, net income)까지 계산한 플로우를 알려주는 기술서이다. 이 손익계산서를 이해하려면, 매출액, 매출총이익, 영업이익, 계속사업이익, 당기순이익까지 이어지는 플로우를 알아야한다.

햄버거를 팔았다고하자. 매출액은 햄버거를 판 총 금액이다. 이 햄버거는 패티, 빵 등 매출원가(COGS, cost of goods sold)가 있으므로, 이를 제외하고 계산할 수 있다. 이 금액이 매출총이익(gross margin)이이다. 이 매출총이익에서 광고, 프로모션 등 판매비와 관리비(SG&A, selling goods and administrative expense)가 있을 수 있으므로, 이를 제외하고 계산하고자 한다. 이 금액이 영업이익이다. 영업이익(EBIT, operation income)은 결국 매출액에서 이것저것 드는 부대비용을 제외한 금액이다. 이 영업이익은 순전히 햄버거 판 금액만 있는것이 아니라, 회사가 가지고있는 기타 자산들을 사고팔면서 이득을 볼 수 있다. 이런 금액을 제외한 것이, 계속사업이익(ordinary income)이다. 계속사업이익도 특별손실/법인세비용 등을 제외하고나면 드디어 당기순이익(Net income)이 나온다.

매출총이익 = 매출액(sales) – 매출원가(COGS, COS)

 

매출원가(COGS) = 기초재고액 + 당기매입액 기말재고액

영업이익 = 매출총이익 판관비(SG&A)

 

판관비 = 급여, 퇴직급여, 복리후생비, 감가상각, 접대비, 세금공과, 광고비, 대송상각비, 통신비, 여비교통비, 보험료, 교육훈련비

 계속사업이익

 당기순이익

 

 

매출채권이 급속도로 느는 회사를 조심해라 (기업이 전년도에 비해 매출채권이 크게 들었다면, 매출채권을 이용해서 부풀려 분식회계를 할 수도 있다). 이런 회사들을 매출채권회수기간(DSO, days sales outstanding)이 늘어날 수도 있다.

*영어로도 알아두는것을 추천한다. 필자는 해외주식도 권한다



투자자라면 영업이익율이 높은 기업의 주식을 매입해라-EBITA


아래의 표에서 영업이익을 늘리고자하면, 매출총이익을 늘리거나 판관비를 줄여야한다. 여기서 매출총이익을 늘리는 방향도 있지만, 판관비를 줄이는 방법도 있다. 판관비에서 가장 특이적인 것은 감가상각인데 감가상각비를 어떻게하냐에따라 영업이익이 올랐다 내렸다 할 수 있다. 따라서, 회사의 감가상각을 알기위해, 정률법, 정액법 중 어떤것을 적용했는지 파악해야한다(왜곡될 소지가 있다)

이러한 문제를 해결할 수 있는 대안으로 EBITDA라는 개념이다.

EBITDA = 영업이익 + 감가상각비

위의 수식을 보면 영업이익은 매출총이익-판관비인데 EBITDA을 계산해보면, 매출총이익-판관비(감가상각비제외)와 같다. 감가상각비로 장난칠 수 있는 부분을 제외한다는 것이다. EBITDA는 감가상각비를 제거함으로써, 기업 본연의 영업능력을 평가하는 지표가 된다.

매출총이익 = 매출액(sales) – 매출원가(COGS, COS)

 

매출원가(COGS) = 기초재고액 + 당기매입액 기말재고액

영업이익 = 매출총이익 판관비(SG&A)

 

판관비 = 급여, 퇴직급여, 복리후생비, 감가상각, 접대비, 세금공과, 광고비, 대송상각비, 통신비, 여비교통비, 보험료, 교육훈련비

 

EV(Enterprise value)/EBITDA = (시총+순차입금)/EBITDA

*순차입금 = 총차입금현금 및 현금성자산



기타


너무 많지도, 너무 적은 매출채권은 주의하라

너무 많아도, 너무 적어도 문제가되는 재고자산


반응형

Network 이란? Nodes와 Ties로 구성되어있는 개체. 텍스트로 구성되어있는 것을 semantic network.


Nodes: 단어/객체

Ties


- Ties: 정의 단어들간의 관계. 이 관계를 중요하게 고려해야한다. Co-occurence을 기준으로(Within 문장/문단/문서). 예를 들어, 문장 내에서 동시에 출현하는 것을 한 동시출현으로 볼것인지, 문단으로 볼것인지, 문서로 볼 것인지. 이 정보를 추출 하는 것이 가장 중요하다.

- Weight: Co-occurences

- Direction /


Objective


1. 단어의 공통적인 출현(단어 사이의 유사도)

2. 선택된 단어에 대해서, 어떤 관계를 맺고이는지를 확인할 수 있다. 문서마다 얼마나 다른지도 확인 할 수 있음. (관계가 같다 라는 귀무가설을 두고 통계적 검정을 할 수 있다. 네트워크끼리도 샘플링 분포를 그려서 차이를 둔다. 샘플링 분포를 시뮬레이션 방법으로 사용한다(Montecalo marcov chain)

 - 시뮬레이션을 할 때, 리샘플링(Resampleing)을 주로하는데: Bootsraping(replacement) / Permuation(without replacement)이 있다. 

3. 문서나 단어의 특성을 표현(For embedding, vectorization)


*단어를 선택할 때, 1) 이론적인 백그라운드를 이용하여 선택하거나, 단어의 빈도(예, 탑10 단어)를 이용해서 선택함

각각의 노드에 대한 측정값

Degree centrality: degree(직접적으로 연결된 다른 노드의 수)가 얼마나 많은지. 해당노드의 degree / N -1 (N: 노드 수)

Betweeness centrality: 해당 노드가 다리 역할을 하는지 안하는지 

(sigma_st = node s 부터 node t까지의 가장 짧은 path의 총 합. sigma_st(v):은 v을 통해서 가는 가장 짧은 path의 수

Clossness centrality: 다른 노드와 더 가깝게 연결된 노드가 더 중심적인 역할.

Eigenvector centrality: 다른 노드의 중심도에 의해 해당 노드의 중심도가 결과. 




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import networkx as nx
import itertools
 
= nx.Graph()
g.nodes()  # 노드 확인
g.add_nodes_from(unique_nouns)
 
for pair in list(itertools.combinations(list(unique_nouns), 2)):
    if pair[0== pair[1]:
        continue
    for sent in final_sentences:
        if pair[0in sent and pair[1in sent:
            if pair in list(g.edges()) or (pair[1],pair[0]) in list(g.edges()):  # Tie가 이미 있으면 가중치 추가
                g[pair[0]][pair[1]]['weight'+= 1  # 1 증가
            else:
                g.add_edge(pair[0], pair[1], weight=1 )  # Tie가 없으면 이미 가중치 감소
                
g.edges()  # EdgeView: 엣지확인
g['carrot']  # 해당 노드에 대해 어느정도 가중치가 있는지
cs



Quadratic Assignment procedure


Tie

Simulation 방법중 resampling 을 사용한다. iid에 영향을 받지 않는다. 노드 생기는건 iid가 아니다. Simultion 

두 네트워크 내의 차이가 얼마나 차이가 나는지지를 QAP을 이용해서.

Square matrix간의 correltation. 인접행렬


gcor 값가지고는 p-value차이가 안나는데,

QAP을 가지고 차이가 있는지 확인할 수 있다.


반응형

'Data science' 카테고리의 다른 글

Data structure  (0) 2020.01.28
데이터사이언티스트 면접  (0) 2020.01.15
Undersampleing & Oversampling  (0) 2019.07.08
Regular expression  (0) 2019.03.12
머신러닝 모델 분류  (0) 2019.03.12

+ Recent posts