파이낸스에서 반드시 거쳐가게 되는 블랙-슐즈 공식이 있다.
이것은 블랙이 처음으로 이 공식을 만들고 슐즈에 의해서 refine되면서 노벨상까지 받게 된 아주 유명한 그리고 아주 유용한 공식이다. 이 공식은 아래와 같다.
이것은  현재의 주식가격, volatility, 이자율(risk free interest)만 알고 있으면 미래 콜옵션과 풋옵션의 가치를 산정할 수 있는 것이다. 아래 공식은 콜옵션 가치를 산정하는 공식인데 우리는 콜옵션과 풋옵션의 관계를 통해서 풋옵션의 가치도 산정을 할 수가 있는 것이다.

1. 콜옵션 가치 산정 블랙-슐즈(Black-Scholes) 공식 
 

undefined

 

K = Present Value of striking price in the future (미래 콜옵션 행사가의 현재가치)


2. 풋옵션  가치산정 공식 (put-call parity)

Put option 가치 = Call option 가치 + K− S (현재 주식가격)

 3. 예제 
 

현재  A주식의 가격이  
S = $100, volatilit σ = 40%, 무위험 이자율 (risk-free interest rate r = 0.06) 일때 다음의 콜옵션과 풋옵션의 가치를 산정해보자. ( A주식은 배당이 없다고 가정)

(a) 유럽형 콜옵션의 1년후 행사가(strike price)가 $105일때 콜옵션의 가치를 산정하라.


(b) 유럽형 풋옵션(European put option) 1년후행사가(strike price)가 $105일때 폿옵션의 가치를 산정하라.

  


 이 위대한 블랙-슐즈 모델을 활용한 예를 간단히 살펴봄으로써 마친다.
Posted by wishart
,
통계학을 배울때 반드시 경험하는  두변수의 독립성과 상관계수와의 관계가 있는데 아주 좋은 예가 있어서 소개를 한다. 
 

1. 두변수가 독립이면 반드시 상관계수는 0 이다.
2. 그렇지만 상관계수가 0이라고 해서 두 변수가 독립은 아니다.
    즉, 두 변수가 독립이 아니더라도 상관계수는 0이 될 수 있다.

이것은 반드시 기억을 해둬야 한다.
그리고 이런 것에 대한 좋은 예가 있어서 소개를 한다.
물론 쉽게는 서로 0을 기준으로 대칭(symmetric)이면서 경향을 보이는 변수는 상관계수는 0이지만 독립이 아니다.
가령 y= x^2 이 좋은 예일 것이다.

아래 이산형도 같은 아이디어에서 출발하여 만들었다.



위의 예에서 보듯이 상관계수는 0 이지만 독립은 아니다. 위에 설명과 다르게 설명한다면 다음과 같다.
두변수가 독립이라면 P(x=1,y=1) = P(x=1)* P(y=1)이 성립해야 하는데
P(x=1,y=1)= 1/3 이지만 
 P(x=1)* P(y=1)=(1/3)*(1/3 + 1/3)=2/9 이기 때문이다.

Posted by wishart
,
파이낸스에서 포트폴리오를 배우면 반드시 나오는 위험(Risk) 과 기대수익(expected return)율 그래프가 있는데 이이것을 제대로 설명한 경우는 드물어서 한번에 다 볼 수 있는 것을 올려봅니다.

1. 기대수익율과 표준편차(리스크)와의 그래프 기본설명


2. 기대수익율과  리스크 그래프에서 각각의 포지션별 설명


이것만 잘 이해하시면 일단 포트폴리오에 대한 50% 학습은 이미 한 것이나 다름이 없죠.

 
Posted by wishart
,
요즘들어 소프트웨어 세계에서 가장 많이 이야기하는 것이  바로 클라우드 컴퓨팅이다.
그렇다면 클라우드 컴퓨팅이란 무엇일까? 내 개인적으로 생각으로는  소프트웨어를 서비스 개념으로 생각하는 SAAS(software as a service)를  마케팅 용어로 멋지게 클라우드 컴퓨팅이란 말로 포장해서 부르는 말이 아닐까 생각한다. 왜냐면 클라우드 컴퓨팅의 범주를 아래 비디오에서 보듯 상당히 광법위하게 정의하기 때문이다. 

사실 소프트웨어의 비지니스 모델의 발전사를 간단히 본다면 예전에 소프트웨어를 만들때는 공장에서 제품을 생산해서 팔던 때와 마찬가지로 한번 팔때 제품 단가를 무지 비싸게 팔고  팔고나면 수익이 더이상 내기 어렵기 때문에 업그레이드라는 말로 수십개의 버전을 만들어 다시 팔았던 상품으로서의 소프트웨에( software as a product) 세상이 있었다. 이시대는 개발방법론은 Water Fall 을 사용했고 1년에 한번씩 새로운 버젼을 생산했다. 대표적인 예가 윈도우나 마이크로 오피스가 될 것이다. 

그러다가 더 이상 소프트웨어를 상품으로 보지 않게 되었다. 비지니스 모델이 소프트웨어를 한번 팔면 그만이 아닌것이 아니라임대의 개념으로 보고 임대하는 동안 운영비와 교육비용등을 챙기는 것으로바뀌게 된 것인다.  요즘 거의 모든 소프트웨어의 판매방식이 이렇게 바뀌었다. 제너럴 일렉트로닉스 (GE)가 더이상 자기네들은 Manufacturer가 아니라 서비스 사업자라고 말하는 것처럼 소프트웨어 세상도 더이상 상품을 판매하는 것이 아니라 서비스를 제공하는 사업자 개념이 바뀌게 된 것이다. 

이런 추세가 가속화 되고 있는 중에 인터넷이 보급되고 일반화되면서 이제는 더이상 수십개의 버전을 갖는 소프트웨어를 만들지 않아도 되는 세상이 되었다.. 업데이트도 한번에 그리고 일일이 내 컴퓨터에 인스톨하지 않아도 웹에서 접속만하면 소프트웨어를 원격으로 컨트롤이 가능하게 되었다. 엄청난 데이타구축 비용을 지불하지 않아도 되고 내가 사용한 만큼 비용을 지불하면   되는 세상이 열린 것이다. 이것을 우리는 클라우드 컴퓨팅 시대라고 한다. 클라우드 컴퓨팅의 장점으로는 다음을 들 수 있다.  첫번째 하나의 머신에서 여러 유저가 동시에 작업을 할 수 있도록 하는 멀티임대 기술 ( Multi Tenancy Tecnology)이다.  이것은 자원을 공유함으로서 불필요한 낭비를 줄일 수 있는 장점이 있다. 두번째로는 복잡한 하드웨어설치나, 소프트웨어 라이센스 계약, 전기 비용, 렉스페이스등의 공간이 필요없기 때문에 소비자 입장에서 정보기술 고급 인력을 채용하지 않아도 되므로 비용절약을 할 수 있다. 세번째로는 소비자 입장에서 항상 최신 버젼의 소프트웨어를 사용할 수 있다는 장점이 있다. 왜냐면 업그레이드를 서버사이드에서만 해주면 모든 고객이 똑같은 버젼의 소프트웨어를 사용할 수 있기 때문이다.

그리고 클라우드 컴퓨팅 비지니스 분야를 크게 3가지로 나눠볼 수 있다. 
1. 인프라스트럭쳐
     컨셉 : Rent hardware “boxes” so you don’t have to buy/maintain it yourself!
               CPU, Disk, Network, OS
     Big Players
 Amazon EC2/S3 = agnostic hardware
 Microsoft is for Win technologies 
 Windows Server Hyper V, Azr. Connect  
 EMC Atmos: storage-centric  

2. 플랫폼
    컨셉: Develop and deploy you software onto  a pre-existing platform!
 Abstraction from any hardware
 Like app hosting but w/ EOS

    Players
 Google App Engine: Python
 Heroku: Ruby on Rails
 Salesforce: Apex
 Windows: Compute, AppFabric, Storage   
 Amazon: Snapshots 

3. 어플리케이션 
    컨셉: Enterprise and consumer applications that people “use” directly via browser!
    Examples:
 Enterprise: Salesforce.com, successfactors, HubSpot  
 Consumer: Google (?), Netflix, Dropbox 
 Business Analytics: Vertica, GoodData
 Infrastructure: loggly, Okta, ???
 Microsoft: CRM Dynamics, Office 365, 
 Exchange Online 

아래 클라우드 컴퓨팅의 개념적인 설명을 잘 한 비디오가 있어서 링크를 건다. 



아래 비디오 클립은 오라클 창업자이면서 CEO인 래리 엘리슨(Larry Ellison)의 클라우딩 컴퓨팅에 대한 생각을 읽을 수 있는 아주 잼있는 동영상이다. ㅎㅎㅎ 




개인적으로는 아래 비디오 클립이 가장 맘에 든다. 왜냐면 이게 더 직관적이다. 그러나 좀 길어서 지루하지만 말이다. 




참고자료

1.클라우드 컴퓨팅에 대해서 아주 잘 정리한 비지니스 위크(business week) 커버스토리 
http://www.businessweek.com/magazine/content/11_11/b4219052599182_page_7.htm

2. 서비스로서의 소프트웨어를 딜리버링하는 세계

Delivering software as a service

A new delivery method is shaking the software industry’s foundations. Traditional vendors should take heed

http://www.mckinseyquarterly.com/Delivering_software_as_a_service_2006


Posted by wishart
,
비모수 통계학(nonparametric statistics)을 배우다 보면 번역을 한다면 순열을 이용한 평균비교(Permutation test for Means ) 라는 테스트가 있다. 이것은 사실 맨위트니 Rank Sum (순위합) 검정과 결국은 같은 테스트인데 이것을 SAS를 통해서 구현을 해보았다.
초기 데이타는 Mathematical Statistics and Data Analysis p464에 문제 29번을 대상으로 풀었다.

아래와 같이 두가지 방법에 따른 온도를 측정후에 전체 데이타에 순위를 아래와 같이 줬다.이때 집단 A, B의  각각 순위합을 비교하는 것이 맨위트니 검정법(Mann-Whitney test)이다.
퍼뮤테이이션 검정법은 아래  B집단의 데이타가 전체 21개중에 8개이다. 이것을 21개중 8개를 무작위로 뽑아 A, B 그룹의 평균 순위합의 차이를 계산한다. 즉 전체 뽑을 수 있는 가능한 수 21C8 개가 되는데 이때 가능한 수만큼 뽑아서 뽑힌 8개의 평균순위합과 나머지 13개의 평균 순위합의 차이를 그래프로 그린다.
그렇게 하면 처음에 아래 표에서 얻은 두 집단간의 순위합 평균이 어디에 떨어지는지 알 수 있다. 즉 이것을 바탕으로 P_value를 계산할 수 있다.  이것이 바로 퍼뮤테이션 테스트인데 여기서는 1000개만뽑았다. 왜냐면 실제 21C8은 근사적으로 200,000 정도에 육박하는데 1000개 정도만으로 충분히 가능하기 때문이다.

A 7.5 19 11.5 19 15.5 15.5 19 4.5 21 15.5 11.5 9 11.5
B 11.5 1 7.5 4.5 4.5 15.5 2 4.5          

Diff= Mean of group A - Mean of group B = 13.8 - 6.37 =7.43
아래 그래프에서 7.43은 전체 1천개중에서 997번째 큰 값으로 이보다 큰 값이 겨우 3개정도 존재한다. 따라서  
따라서 p_value = 3/1000 =0.003 으로 귀무가설을 기각한다.

아래 히스토그램은 1000개를 뽑아서 그룹간의 평균차를 계산하여 그린 히스토그램이다.
이것을 보면 어디에 위치하는지 알 수 있다.




SAS 프로그램

data kkk1;/* 초기 데이타 입력 */
input method $ value @@;
cards;

A 7.5 A 19 A 11.5 A 19 A 15.5 A 15.5 A 19 A 4.5 A 21 A 15.5 A 11.5 A 9 A 11.5 B 11.5 B 1 B 7.5 B 4.5 B 4.5 B 15.5 B 2 B 4.5 ;run;

%macro bootst;/*매크로 bootst를 생성하는 과정이다*/

%do k=1 %to 1000;/*k변수에 대해서 1부터 1000까지 반복하라는 명령어이다 */

data sample;

set kkk1;

rand= ranuni(&k)*21;/* 0 에서 1 까지 uniform 난수를 발생시킨다음 21를 곱하면 0에서 21까지의 난수가 된다 */

run;

proc rank data=sample out=ppp ;/* 생성된 난수에 순위를 준다 */

var rand;

ranks rank;run;/* 순위는 데이타셋 ppp에  rank라는 변수명으로 하라는 의미이다 */

data ppp;

set ppp;

if rank<= 8 then group='A';else group='B';run;

proc sql ;

create table aaa as

select a.group, avg(a.value) as barX from ppp a group by a.group;

quit;

/* 트랜스포즈 명령어는 아주 유용하다. 데이타값이 실제로 group이라는 변수에 A, B가 들어 있는데 이 두그룹간의 차이를 구하려면 이들이 변수명으로 바꿔야 하는데 이때 이것을 쓰면 아주 유용하다. 여기서 그룹명을 변수로 바꾸고 이때 값을 barX로 하라는 것이 이 문장이다*/

proc transpose data= aaa out=mmm;
var barX;ID group;run;

data ddd;

set ddd mmm; /* 여기서 초기 데이타 ddd는 미리 만들었다. 물론 프로그램에서는 표현을 하지 않았고. 그런다음 위에서 생성된 mmm데이타셋을 계속 머지해가는 것이다. 결국 1000번을 돌면 1001개의 데이타 라인이 생기게 된다.ddd에 말이다. */

run;

%end ;/*Do문을 여기서 멈추라는 명령어이다 */

%mend bootst ;/* 매크로를 닫아주는 명령어*/

%bootst ;/* 매크로를 실행하라는 명령어인데 결국 1000개번의 과정을 반복할 것이다. */

data ddd;

set ddd;

diff=A-B;

run;

proc univariate data=ddd;

var diff;

histogram diff /kernel;run;/* 히스토그램을 그리기 위해서 이 명령어를 사용하였다*/


참고로 만약 t검정 혹은 비모수 검정(윌콕슨 부호순위검정)을 하고 싶다면 SAS에서 다음과 같은 명령어를 사용하면 된다.

PROC NPAR1WAY data=kkk1;class method;var value;run;

proc ttest data=kkk1 ;class method;var value;run;

Posted by wishart
,