본문 바로가기

분류 전체보기160

퀀트 투자의 7대 죄악 실무에서 일하는 사람들도 백테스트를 할 때, 흔히 저지르는 실수들 1. 생존 편향2. 미래참조 편향3. 스토리텔링의 죄악4. 데이터 마이닝과 데이터 스누핑의 편향5. 신호의 감소와 회전율6. 이상치7. 비대칭적 패턴과 공매도 비용 1. 생존 편향생존 편향은 투자자들이 흔히 저지르는 실수편의를 위해(혹은 데이터를 구하지 못해) 현재 상장된 회사만을 사용하여 투자 전략을 백테스트파산, 상장폐지 또는 인수로 인해 투자 유니버스에서 사라진 주식은 백테스트에 포함하지 않음생존 편향은 종종 지나치게 좋은 결과를 보여주거나 때로는 실제와 완전히 반대되는 결과를 보여줌그림 3: 1986년 12월 31일에 Russell 3000 지수에 있었고 오늘날까지 살아남은 회사. 지난 28년 동안 지수의 3,000개 주식 중 50.. 2024. 6. 24.
Google Analytics용 Python API(GA4) 사용법(1) 이 문서에서는 GA4와 파이썬을 연결시켜서 파이썬에서 GA4 데이터를 불러오는 방법을 알아보겠다. 한가지 아쉬운 점은 빅쿼리처럼 모든 데이터를 불러올 수는 없다는 점이다. 어떤 데이터를 불러올 수 있는지는 이 문서를 참고하자. 작업 순서1. 구글 문서 접속https://developers.google.com/analytics/devguides/reporting/data/v1/quickstart-client-libraries?hl=ko 2. Google Analytics Data API v1 사용 설정 클릭 3. 이름 설정 후, Next 클릭 4. Download private key as JSON 클릭 5. client_email 복사DOWNLOAD PRIVATE KEY AS JSON을 클릭하면, JSO.. 2024. 6. 9.
[Python] Pandas : Dataframe 함수 - reset_index() reset_index() 함수는 Pandas 라이브러리에서 사용되는 함수로, 데이터프레임의 인덱스를 초기화하거나 재설정하는 데 사용됩니다. 이 함수는 인덱스를 리셋하고, 기존 인덱스를 데이터프레임의 열로 변환할 수 있는 다양한 옵션을 제공합니다. reset_index() 함수의 주요 기능과 사용법을 설명하겠습니다. 기본 사용법기본적으로 reset_index() 함수는 데이터프레임의 인덱스를 기본 숫자 인덱스로 재설정합니다.import pandas as pd# 예제 데이터프레임 생성data = { 'A': [1, 2, 3], 'B': [4, 5, 6]}df = pd.DataFrame(data, index=['a', 'b', 'c'])print("Original DataFrame:")print(d.. 2024. 6. 9.
[Python] Pandas : Dataframe 함수 - replace() pandas 라이브러리에서 DataFrame의 특정 열의 값을 다른 값으로 대체하기 위해 replace() 메서드를 사용할 수 있습니다. df['A'].replace()는 DataFrame df의 'A' 열에 대한 대체 작업을 수행합니다. replace() 메서드의 문법은 다음과 같습니다: DataFrame.replace(to_replace=None, value=None, inplace=False, limit=None, regex=False, method='pad')  여기서 df['A']에 대해서 replace()를 사용할 때 주로 사용되는 인수는 to_replace, value, inplace입니다. 예제는 이들을 중심으로 설명하겠습니다. 주요 인수to_replace: 교체하려는 값입니다. 단일 값,.. 2024. 6. 9.
데이터 그로쓰 모델링 (바이럴 K, 네트워크 이펙트) 이 글은 토스의 이승건 대표이사님의 PO 세션 4번째 파트를 정리한 내용입니다. 1,2,3번째 파트를 보지 않으셨다면 보고 오시는 걸 추천드리며, 요약된 글로 간단한게 집고 넘어가고 싶은 이 글을 참고해주세요. 데이터 그로쓰 모델링  Skeptics : 서비스 이용에 회의적인 사람들. 그 유저들 중에서 다시 생각이 나거나 다시 여러가지 계기로 서비스를 사용할 수 있는 이유를 찾게 되면 부활하게 된다.(Resurrection)Resurrection : 완전히 Churn된 유저, 즉 Dead Pool에서 서비스를 다시 발견하고 쓰게 되는 유저들도 있다.DAU : 매일매일 봤을 때에는 이 서비스를 쓰기 위해 다시 돌아오는 유저가 500명. 이 때 DAU는 550명.Carrying Capacity : 5000명.. 2024. 4. 28.
A/B 테스트를 통계적으로 신뢰할 수 있게 하기 위한 사전 작업들 A/B 테스트를 진행할 때, A그룹과 B그룹의 조건이 동일하지 않다면 실험 결과를 신뢰할 수 있을까? 또한, 실험 대상의 양이 너무 작다면? 실험 결과의 차이가 미미하다면? 이 글에서는 A/B테스트 결과를 신뢰할 수 있는 방법에 대해서 알아볼 것이다.  왜 A/B테스트를 하는가? 현실 세계에서 한정된 자원으로 새로운 아이템의 효과를 검증하기 위한 가장 좋은 방법이기 때문이다. 사례) 오바마 대선 캠프가족의 모습이 담긴 이미지와 LEARN MORE 버튼은 기존 안 대비 각각 18.6%, 13.1%의 가입률 증가를 보였으며 두 아이템을 조합한 페이지의 경우 40.6% 가입률 증가 여기 A/B 테스트의 더 다양한 성공 사례가 있다.  UX/UI 디자이너가 새로운 앱 디자인을 만들었다고 가정해보자. 이 UI를 .. 2024. 4. 14.
Retention Curve로 PMF 찾은 후, CC 향상을 위해 해야하는 것들 이전에 토스 PO세션에서 나온 개념인 Carrying Capacity를 실무에서 계산하는 과정에 대해서 글을 작성한 적이 있다. 이번에는 내용을 보강하여 Retention Curve로 PMF를 찾았다는 걸 발견하고 나서 CC 증대를 위해 해야 하는 것들에 대해서 알아보겠다. * 해당 글은 토스 이승건 대표이사님이 유튜브 토스 PO Session에서 발표한 내용을 정리한 글입니다. PMF의 유일한 기준, Retention PlateauPMF를 찾았다 안찾았다를 가르는 사실상 거의 유일한 기준은 Retention이 Plateau가 생겼냐 안 생겼냐이다. 즉, 리텐션이 평평하게 유지되는 부분이 있다면 PMF를 찾은 것이다. 사실상 Retention Plateau는 20% 이상이 되어야 회사를 만드는 것이 가능.. 2024. 3. 31.
티스토리 도메인 변경시, 기존에 노출되던 글 리디렉션으로 살리는 법 티스토리에서 도메인(URL)을 변경하면, 기존에 유입되던 트래픽이 뚝 끊기게 된다. 기존 글들이 기존의 도메인으로 노출이 되고있기 때문이다. 따라서 새로 바뀐 도메인으로 리디렉션 시키는 작업을 해야 하는데, 그 방법을 알아보겠다. 나의 경우엔 기존에 가비아에서 구매한 도메인을 사용을 하다가 사용기간이 끝나서 끝난 김에 다시 티스토리 도메인을 쓰려고 했다. 가비아에서 쓰던 도메인은 coduking.com이었고, 바꾼 도메인은 coduking.tistory.com이다. 그런데, 도메인을 바꿨더니 역시나 기존에 들어오고 있던 트래픽이 뚝 끊겨버렸다. 구글 공식문서를 보니, 리디렉션을 먼저 설정해서 기존의 도메인과 새로운 도메인을 매핑시켜야 한다고 하는데, 티스토리는 서버에 접속을 할 수 없으니 답답한 상황이었.. 2024. 3. 30.
GA4 데이터로 Carrying Capacity 지표 추적하는 대시보드 만들기 이 글에서는 Carrying Capacity 지표의 개념 및 계산 방법과 실제 실무에 적용하여 대시보드를 만드는 과정까지 설명합니다. 실무를 하다 보면 이론은 알겠으나 실무에 적용하는 게 항상 어려웠는데, 같은 고민이 있으셨던 분들께 도움이 되었으면 합니다.   Carrying Capacity 지표는 토스 서비스를 운영하는 비바리퍼블리카의 대표이사인 이승건님의 PO Session에 의해서 유명해진 지표이다. 그럼 이 지표가 무엇을 의미하는지 알아보자. (해당 영상) Carrying Capacity란?Carrying Capacity(C.C.)는 기업의 서비스가 최대로 도달할 수 있는 MAU 또는 DAU를 의미한다. C.C의 수치가 일단 계산되었다면, 이제 유료광고를 하지 않고 서비스를 가만히 놔둬도 MAU.. 2024. 3. 23.
BeautifulSoup을 이용한 정적 크롤링 개념 정리 및 실습 해당 글에서는 BeautifulSoup을 사용해서 정적 크롤링을 하는 방법에 대해서 알아본다. 크롤링 실습을 하기 전에 기본적인 웹 동작 원리에 대해서 알아야 하기 때문에 이론 적인 부분 먼저 설명한다. 대표적인 get과 post 방식 크롤링을 실습한다. 웹 동작 원리크롤링은 웹사이트의 정보를 수집하는 과정이다. 따라서 웹이 어떻게 동작하는지 이해할 필요가 있다. 클라이언트란 데스크톱이나 휴대폰과 같은 장치이다. 혹은 크롬이나 파이어폭스와 같은 소프트웨어를 의미한다. 서버는 웹사이트와 앱을 저장하는 컴퓨터를 의미한다.    클라이언트가 특정 정보를 요구하는 과정을 요청(Request)이라고 하며, 서버가 해당 정보를 제공하는 과정을 응답(Response)이라고 한다. 클라이언트와 서버가 연결되어있지 않다.. 2024. 3. 15.
MySQL 다운로드 및 설치하는 방법 해당 글은 MySQL 다운로드 및 설치하는 방법에 대해 설명된 글입니다. MySQL을 사용하기 위해서는 MySQL Community Server와 MySQL Workbench 2가지를 설치해야 합니다. 이 2가지의 다운로드 및 설치 방법에 대해서 알아보겠습니다.  1. MySQL community Server 설치mysql community server를 검색한 뒤, 해당 사이트에서 아래와 같이 최신버전, OS를 선택하고, MSI Installer의 Download를 클릭한다.(Mac의 경우 DAG, M시리즈 칩이면 ARM)  그런 다음, No thanks, just start my download를 클릭하면, 파일 한개가 다운로드된다.  그 파일을 열어서 다음 순서를 따라 한다.1. Next 2. 'I.. 2024. 3. 10.
윈도우 작업스케줄러로 파이썬 파일 자동화시키는 방법 3가지 파이썬으로 코딩을 했는데, 이 .py 파일을 윈도우에서 원하는 시간대에 자동으로 실행되게끔 자동화시키려면 어떻게 해야 할까? 그 방법은 '작업스케줄러'를 사용하면 된다. 이 걸 사용해서 파이썬 파일을 자동화시키는 방법 3가지에 대해서 알아보겠다.  우선 원하는 주기마다 실행시킬 .py 파일을 만들었다면 다음 순서를 따라 해보자. 1. 작업스케줄러 실행 실행시키면 다음과 같은 화면이 뜨는데, 여기서 '작업 만들기...'를 클릭한다.  2. '일반' 메뉴 세팅 '일반' 메뉴에서 세팅해야 할 건 3가지다. 쉽게 알아볼 수 있는 '이름' 설정작업을 실행할 때 사용할 사용자 계정 -> Administrators로 변경'가장 높은 수준의 권한으로 실행' 체크 작업을 실행할 때 사용할 사용자 계정을 Administr.. 2024. 3. 10.