R언어 절사 평균 mean trim

데이터 분석 2023. 6. 28. 13:16 Posted by UnHa Kim

R언어에서 mean은 평균값을 구하는 함수이다.

mean함수에 trim이라는 인수를 0.0~0.5 사이의 값으로 설정할 수 있는 데, trim은 표본값 중에서 최저, 최대 극단값들을 잘라낸(절사) 후 남은 값으로만 평균을 구한다는 의미가 되고, trim은 그 절사 비율을 의미한다.

즉, 'mean(mydata, trim=0.2)'는 mydata의 값들 중 최저 20%, 최대 20% 극단값을 제외하고 남은 60%의 중간값들의 평균을 구한다는 의미이다.

trim을 잘 활용하면 극단값에 의해서 평균값이 왜곡되는 단점을 보완하는 데 유용할 것 같다.

'데이터 분석' 카테고리의 다른 글

R언어 무료 IDE  (0) 2023.06.28
무료 R언어 강의 영상  (0) 2023.06.26
윈저화 평균 (winsorized mean)  (0) 2023.04.28
Julia 전용 Pluto 노트북 설치  (0) 2022.07.21
Go언어로 작성된 백테스트 프레임워크  (0) 2021.12.18

R언어 무료 IDE

데이터 분석 2023. 6. 28. 10:36 Posted by UnHa Kim

R언어 IDE는 RStudio가 가장 유명하지만, 써보면 한글 입력이 상당히 부자연스러운 문제가 있다.

 

Jetbrain사의 Intellij IDEA는 Google에 납품되어 제품명만 바꾼 안드로이드 스튜디오로도 알려져 있는 Java언어용 IDE이지만, 다른 여러 언어 IDE로 변형 제품들(Go언어용 GoLand라던가..)이 존재하고, R언어의 경우 전용 제품은 없지만, R언어 플러그인을 설치하면 R언어용 IDE로 상당히 쓸만한 것 같다.

 

무료 R언어 강의 영상

데이터 분석 2023. 6. 26. 11:18 Posted by UnHa Kim

국가 평생 교육원에서 대학 기관에서 강의 동영상을 공급받아서 무료로 배포하는 K-MOOC라는 사이트에 R언어 강의가 무료로 공개되어 있다.

 

http://www.kmooc.kr/courses/course-v1:DKUK+DKUK0003+2019_T1/video 

 

video | K-MOOC

Video 시청

www.kmooc.kr

 

회원 가입 후 청강을 선택하면 강의 동영상을 무료로 시청할 수 있다.

'데이터 분석' 카테고리의 다른 글

R언어 절사 평균 mean trim  (0) 2023.06.28
R언어 무료 IDE  (0) 2023.06.28
윈저화 평균 (winsorized mean)  (0) 2023.04.28
Julia 전용 Pluto 노트북 설치  (0) 2022.07.21
Go언어로 작성된 백테스트 프레임워크  (0) 2021.12.18

윈저화 평균 (winsorized mean)

데이터 분석 2023. 4. 28. 22:34 Posted by UnHa Kim

데이터 분석 관련 책을 읽다가 윈저화 평균(winsorized mean)이라는 평활화 기법을 접했다.

 

극한값(가장 큰 값/가장 작은 값)을 인접한 값으로 대체해서 극소수의 '이상치'(outlier)로 인해서 평균값이 왜곡되는 것을 완화하는 평활화 기법이다.

 

예를 들면, [1,2,3,4,5,6,7,8]이 있고, 2차 윈저화 평균을 구한다면 가장 작은 값 2개 [1,2]를 인접값 3으로 대체하고, 가장 큰 [7,8]을 인접값 6으로 대체해서 [3,3,3,4,5,6,6,6]의 평균을 구하는 것이다.

이렇게 이상치로 인한 평균값의 왜곡이 많이 줄어들어서, 평균값과 중간값의 차이가 줄어든다는 것을 알 수 있다.

 

'데이터 분석' 카테고리의 다른 글

R언어 무료 IDE  (0) 2023.06.28
무료 R언어 강의 영상  (0) 2023.06.26
Julia 전용 Pluto 노트북 설치  (0) 2022.07.21
Go언어로 작성된 백테스트 프레임워크  (0) 2021.12.18
Julia용 JupyterLab 설치  (0) 2021.12.06

Julia 전용 Pluto 노트북 설치

데이터 분석 2022. 7. 21. 20:59 Posted by UnHa Kim

Jupyter 노트북은 Python을 필요로 하는 반면,

 

Pluto 노트북은 Julia 언어로 작성되어서 설치 용량도 작고 경량임.

 

Julia REPL 창에서 다음을 실행한다.

 

----------------------------------------------

import Pkg

Pkg.add("Pluto")

using Pluto

# Starts local Pluto notebook server
Pluto.run()

----------------------------------------------

'데이터 분석' 카테고리의 다른 글

무료 R언어 강의 영상  (0) 2023.06.26
윈저화 평균 (winsorized mean)  (0) 2023.04.28
Go언어로 작성된 백테스트 프레임워크  (0) 2021.12.18
Julia용 JupyterLab 설치  (0) 2021.12.06
과거 기업 재무정보  (0) 2019.08.28

 

강환국 강의에 퀀트킹 1년 사용권 가격이 포함되어 있어서 얼결에 접하게 된 퀀트킹.

퀀트킹은 전략을 백테스트 할 수 있는 훌륭한 프로그램이다.

가격도 비교적 저렴하고, 사용법도 간단하고, 포함된 팩터도 다양하고, 실행 속도도 괜찮다.

 

http://www.quantking.co.kr/page/main.php

 

퀀트킹

 

www.quantking.co.kr

 

그러나, 기본적으로 일정 기간마다 리밸런싱한 후 보유하는 전략만 상정하였기에,

시장 상황에 따라 주식 비중을 변동해서 MDD를 관리한다던 지,

손절/익절을 설정하는 전략을 백테스트 할 수 없다는 점이 아쉬웠다.

 

그래서, 기능이 좀 더 다양한 뉴지스탁의 젠포트를 사용해 봤는 데, 

내가 쓰던 전략이 그렇게나 복잡했나? 싶은 생각이 들 정도로 정말 심하게 느리다.

(1번 돌려보니 예상시간이 28만초(=77시간=3.2일) 걸린다. -_-;; )


결국, 목마른 사람이 우물 판다는 말이 있듯이, 백테스트 코드를 작성해야할 것 같다.

그러나, 나같은 필요성을 가졌지만, 훨씬 더 똑똑하고 부지런한 사람이 세상에는 참 많은 것 같다.

 

https://github.com/gobacktest/gobacktest

 

GitHub - gobacktest/gobacktest: event-driven backtesting framework written in golang

event-driven backtesting framework written in golang - GitHub - gobacktest/gobacktest: event-driven backtesting framework written in golang

github.com

 

Go언어로 작성된 무료 백테스트 프레임워크가 이미 존재하네~!  (아이쿠~ 감사합니다.)

 

내부를 들여다보고 이해할 수 있을 지는 모르겠지만,

처음부터 작성한다고 해도 성공을 장담할 수 없기에,

가능하다면 존재하는 프레임워크를 가져다 쓰고 싶다.

 

시도는 해봐야 할 듯.

'데이터 분석' 카테고리의 다른 글

윈저화 평균 (winsorized mean)  (0) 2023.04.28
Julia 전용 Pluto 노트북 설치  (0) 2022.07.21
Julia용 JupyterLab 설치  (0) 2021.12.06
과거 기업 재무정보  (0) 2019.08.28
R언어 POSIXct 형의 변환 코드  (0) 2019.08.01

Julia용 JupyterLab 설치

데이터 분석 2021. 12. 6. 01:56 Posted by UnHa Kim

Julia 설치

https://julialang.org/

 

1. Julia 내 미니멀 파이썬 패키지를 설치

 

Julia REPL 창에서 입력. 

-------------------------------------------------------

import Pkg

# installs IJulia package
Pkg.add("IJulia")

using IJulia

# launch Jupyter notebook
notebook()

-------------------------------------------------------

 

2. 시스템 파이썬 이용.

 

Python 설치

https://www.python.org/

 

JupyterLab 설치 <cmd 창에서 실행>

python -m pip install --upgrade pip

python -m pip install jupyterlab

 

JupyterLab용 Julia패키지 설치 <Julia 커맨드 창에서 실행>

] add IJulia

build IJulia

 

JupyterLab 실행 <cmdㄴ 창에서 실행>

jupyter-lab.exe

 

 

 

과거 기업 재무정보

데이터 분석 2019. 8. 28. 11:49 Posted by UnHa Kim

매매전략의 백테스트를 위해서 과거 재무정보가 필요할 경우 2가지 선택 사항이 있다.

 

1. 유료 데이터 가공 판매 업체.

 

- fnguide : 100만원이 넘는 연 이용료에 보기만 가능하고 DB화는 안 된다는 까다로운 조건을 내세운다.

 

- 세종데이터 : 30만원 이하의 비교적 저렴한 연 이용료에 사용하기 편리한 HTTP API를 제공한다.

 

https://sejongdata.co.kr/

 

세종기업데이터 - Sejong Data

기업정보 제공 서비스, 대한민국 모든 상장 기업의 20년간의 재무정보를 확인하세요.

sejongdata.co.kr

 

세종 데이터의 단점은 제공되는 데이터의 종류가 상장주식수/매출액/영업이익/순이익 단 4가지이라는 점.

그리고, 금융회사의 재무정보는 제공되지 않는다는 점도 유의해야 한다.

 

그러나, 연도별 데이터는 20년(!)치 데이터가 제공되고,

분기별 데이터는 6년치가 제공되는 데다가,

이메일로 문의를 하면 아주 빠르게 대응을 해 줘서

전략의 기본적인 큰 틀을 개발하고 백테스팅 하는 용도로는 상당히 쓸만하다.

 

 

2. 웹페이지 긁어오기

 

- fnguide, 다음넷, 네이버 각종 포탈, 매경 등등 홈페이지에 무료로 공개되어 있다.

- 자바스크립트를 이용하거나 iframe을 이용해서 긁어오기 까다롭긴 하지만,

  그 모든 장애물을 넘고 불러올 수 있다면 풍부한 재무 항목을 무료로 얻을 수 있다.

- 단, 2년 정도의 데이터만 존재하므로, 전략의 안정성을 확인하는 데 턱없이 부족하다.

 

세종 데이터의 20년치 데이터로 전략의 기본적인 안정성을 확보한 후 ,

2년치 무료 데이터로 수익율 향상을 위한 추가 작업을 하는 게 그나마 적절한 타협책인 듯 하다.

 

R언어 POSIXct 형의 변환 코드

데이터 분석 2019. 8. 1. 13:27 Posted by UnHa Kim

R에서 시간을 나타내는 자료형 몇 가지 중 자주 사용되는 POSIXct의 경우

 

세부 정보를 추출할 때 사용되는 코드는 다음과 같다.

 

Code Meaning Code Meaning
%a Abbreviated weekday %A Full weekday
%b Abbreviated month %B Full month
%c Locale-specific date and time %d Decimal date
%H Decimal hours (24 hour) %I Decimal hours (12 hour)
%j Decimal day of the year %m Decimal month
%M Decimal minute %p Locale-specific AM/PM
%S Decimal second %U Decimal week of the year (starting on Sunday)
%w Decimal Weekday (0=Sunday) %W Decimal week of the year (starting on Monday)
%x Locale-specific Date %X Locale-specific Time
%y 2-digit year %Y 4-digit year
%z Offset from GMT %Z Time zone (character)

 

사용법

format(POSIXct값 , format='<변환코드>')

 

출처 : https://www.stat.berkeley.edu/~s133/dates.html

'데이터 분석' 카테고리의 다른 글

Go언어로 작성된 백테스트 프레임워크  (0) 2021.12.18
Julia용 JupyterLab 설치  (0) 2021.12.06
과거 기업 재무정보  (0) 2019.08.28
Jupyter Notebook 셀 분할/병합 단축키  (0) 2019.08.01
R용 Jupyter 설치  (0) 2019.07.27

Jupyter Notebook 셀 분할/병합 단축키

데이터 분석 2019. 8. 1. 11:55 Posted by UnHa Kim

셀 분할 : <Ctrl+Shift+'-'>

 

셀 병합

- 병합할 셀 다중선택 : <Shift+(화살표 위아래)>

- 선택된 셀 병합 : <Shift+M>

 

Jupyter는 1줄을 따로 실행하는 게 귀찮은 문제가 있는 반면,

RStudio는 코드 블록을 실행할 때마다 해당 코드 블록을 선택해줘야 하는 게 귀찮은 문제가 있다.

 

Jupyter로 1줄씩 별도의 셀로 분할한 후, 필요하면 병합하는 방법이 해결책이 될까??

'데이터 분석' 카테고리의 다른 글

Go언어로 작성된 백테스트 프레임워크  (0) 2021.12.18
Julia용 JupyterLab 설치  (0) 2021.12.06
과거 기업 재무정보  (0) 2019.08.28
R언어 POSIXct 형의 변환 코드  (0) 2019.08.01
R용 Jupyter 설치  (0) 2019.07.27