본문 바로가기

반응형

글/코딩

(10)
심슨의 역설과 데이터 통계 얼마전, 데이터 통계방식에 대해 조사하던중 심슨의 역설(Simpson's paradox)을 경계하라는 말이 있었다. 처음 들어보는 용어였는데, 생각보다 예시가 흥미롭고 내가 자주 범하는 실수인 듯 하여 재미있게 내용을 읽은 기억이 있어서 정리해보고자 한다. 심슨의 역설( Simpson's paradox ) 1951년, 애드워드 심슨이라는 영국의 통계학자가 발견한 현상으로ㅜ데이터의 세부 그룹별로 일정한 추세나 경향성이 나타나지만, 전체적으로 보면 그 추세가 사라지거나 반대 방향의 경향성을 나타내는 현상을 의미한다. 사회과학이나 의학 통계, 공정 통계 등 통계가 활용될 수 있는 모든 분야에서 종종 발생하는 issue이다. 심슨의 역설의 원인으로는 보통 두가지 정도가 고려된다. 숨겨진 변수(confoundin..
[코딩] OOP, 객체 지향 프로그래밍에 대해 최근 사내 교육자료를 준비하던중 문득 궁금해진게 있다. 코딩을 처음 제대로 배워본건 대학교때 전공수업으로 있던 C++ 수업이었다. 당시 조교님이 이런저런 내용들을 설명하며 C와 C++의 가장 큰 차이는 객체지향이라고 역설하던 모습이 생각이 난다. (물론 그 의지만큼 수업 내용도 끔찍했다.) 여튼, 결국 객체지향이라는게 클래스를 기반으로 한 객체를 중심으로 필요할때마다 내장된 속성을 끌어와서 사용하는 방식의 코딩을 말하는 것인데 문득 객체지향이 아닌건 뭔지 궁금해졌다. 나야 태어나서 처음 본 코드가 이미 객체지향 코드인데 궁금할 수 있지않은가? 크게 구분하자면 절차지향 프로그래밍과 객체지향 프로그래밍으로 나눠지는 것 같다. 절차지향 프로그래밍 절차지향 프로그래밍(Procedural Programming)은..
[키움 API] 총 자산 불러오기 전략이 수정됨에 따라 총 자산을 불러올 필요가 생겼다. 기존에 예수금을 불러오던 code가 있으니 그대로 응용해보자. #예수금 불러오기 def get_deposit(self): self.dynamicCall("SetInputValue(QString, QString)", "계좌번호", self.account_number) self.dynamicCall("SetInputValue(QString, QString)", "비밀번호입력매체구분", "00") self.dynamicCall("SetInputValue(QString, QString)", "조회구분", "2") self.dynamicCall("CommRqData(QString, QString, int, QString)", "opw00001_req", "o..
백준 알고리즘 문제 풀이 11659 : 구간 합 구하기 4 문제 수 N개가 주어졌을 때, i번째 수부터 j번째 수까지 합을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j가 주어진다. 출력 총 M개의 줄에 입력으로 주어진 i번째 수부터 j번째 수까지 합을 출력한다. 풀이과정 이 문제도 직관적으로 풀어보자면, i부터 j까지의 모든 List를 더하는 for문으로 풀면 되지 않을까 싶었지만, 당연히 시간초과 문제가 발생했다. 좀 더 찾아본 결과 이 문제에 대해서는 누적합이라는 개념으로 접근해야 한다는 것을 알게되었다. 누적합 누적합 : 특정 List가 있을 때, 어떤 List ..
(교육정리) Pandas와 Data 통계 - 1 일전에 들은 교육 내용을 정리하고자 한다. 통계 관련해서는 아는바가 없었는데, 생각보다 많은 내용을 배운 것 같다. 커리큘럼을 그대로 따라가기보다는... 내가 느낀바를 그대로 따라가면서 적어보자. 1. Pandas의 describe기능, 기초 통계량 나는 몰랐는데, describe하면 이런 여러가지 것들이 찍힌다. 이걸 기초통계량이라고 한다. 기초통계량은 각각 이렇다. count : 말그대로 data의 수 mean : 평균 std : 표준편차 min ~ max : 최소부터 최대까지 각각 사분위수의 값 2. Numpy와 Pandas, Series와 Data frame Series와 Dataframe의 차이라 하면, 당연히 자료형이다. dtype으로 출력해보는게 가장 원론적 방법이겠으나 좀 더 간편한 방법이..
백준 알고리즘 문제 풀이 1764 : 듣보잡 1764번: 듣보잡 첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. www.acmicpc.net 문제 김진영이 듣도 못한 사람의 명단과, 보도 못한 사람의 명단이 주어질 때, 듣도 보도 못한 사람의 명단을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. 이름은 띄어쓰기 없이 알파벳 소문자로만 이루어지며, 그 길이는 20 이하이다. N, M은 500,000 이하의 자연수이..
[python][자동매매] 강의가 끝나고, 머릿속 정리 3. 계좌정보 불러오기 + Tr Data 불러오기 아직... 한참남았는데, 생각보다 분량이 많다 ㅠ 얼른 가보자...! def get_account_info(self): self.account_list = self.dynamicCall("GetLoginInfo(String)","ACCNO") self.account_num = self.account_list.split(';')[0] print("계좌 번호 : %s" % self.account_num) def detail_account_info(self): print("예수금을 요청하는 부분") self.dynamicCall("SetInputValue(String, String)","계좌번호",self.account_num) self.dynamicCall("SetInputValue(String, Strin..
[python][자동매매] 강의가 끝나고, 머릿속 정리 2. Login kiwoom.py의 순서대로 다음 코드를 보자. def get_ocx_instance(self): self.setControl("KHOPENAPI.KHOpenAPICtrl.1") def event_slots(self): self.OnEventConnect.connect(self.login_slot) self.OnReceiveTrData.connect(self.trdata_slot) def real_event_slots(self): self.OnReceiveRealData.connect(self.realdata_slot) self.OnReceiveChejanData.connect(self.chejan_slot) get_ocx_instance(self)는 KHOpenAPI를 자동으로 실행시키는 역할을 한다...

반응형