분류 전체보기

    ANOVA(분산분석)와 정규분포

    비교해야 할 그룹이 3개 이상이라면 어떻게 해야 할까요? A약, B약, C약의 효과를 한 번에 비교하고 싶을 때 사용하는 것이 바로 ANOVA(Analysis of Variance, 분산분석)입니다. ANOVA의 핵심 개념인 일원/이원 분산분석과, 모든 통계 분석의 베이스가 되는 정규분포에 대해 정리해 보겠습니다. 1. 분석의 대전제: 정규분포 (Normal Distribution)ANOVA를 돌리기 전, 우리는 항상 데이터가 정규분포를 따른다는 가정을 확인해야 합니다. 도대체 정규분포가 뭐길래 이렇게 중요할까요? 1) 개념: 세상의 질서, 종 모양(Bell Curve)정규분포란 데이터가 평균을 중심으로 좌우 대칭인 종 모양으로 흩어져 있는 분포를 말합니다.중심: 평균 = 중앙값 = 최빈값. 가장 많은 ..

    [통계 기초] T검정 vs Z검정, 그리고 양측/단측 검정 정리

    의료 데이터를 분석하다 보면 가장 많이 마주치는 것이 바로 가설 검정입니다. "이 약이 효과가 있는가?", "두 그룹 간에 차이가 있는가?"를 수학적으로 증명하는 과정이죠. 오늘은 헷갈리기 쉬운 통계 검정의 기초 개념을 '법정 싸움'에 비유하여 정리하고, 실무에서 T검정을 주로 쓰는 이유와 양측/단측 검정의 차이까지 명확하게 알아보겠습니다. 1. 기초 정리: 통계는 '법정 싸움'이다가설 검정은 검사(연구자)가 피고인(약/치료법)의 유죄(효과 있음)를 입증하는 과정과 같습니다. 판결이 나기 전까지 피고인은 무죄로 추정되는 것처럼, 통계에서도 기본은 "효과가 없다"에서 시작합니다. 1) 가설의 설정 (무죄 추정의 원칙)- Ho (귀무가설, Null Hypothesis): "피고인은 무죄다"기존의 상태. 약은..

    [Airflow] 날짜 개념

    1. 데이터 추출 예시 REG_DATE NAME ADDRESS 2023-02-24 15:34:35 김아무개 Seoul 2023-02-24 19:14:42 홍박사 Iksan 2023-02-24 23:52:19 비빔밥 Jeonju - Daily ETL 처리를 위한 조회 쿼리 (2023/02/25 0시 실행) select name,address from tbl_reg where reg_date between timestamp('2023-02-24 00:00:00') and timestamp('2023-02-24 23:59:59') -> 데이터 관점의 시작일 : 2023-02-24 데이터 관점의 종료일 : 2023-02-25

    [Airflow] Jinja 템플릿

    1. Jinja 템플릿이란? 1) 문서(파일)에서 특정 양식으로 작성된 값을 런타임시 실제 값으로 치환해주는 처리 엔진 2) 템플릿 엔진은 여러 솔루션이 존재하며 그 중 Jinja 템플릿은 파이썬 언어에서 사용하는 엔진 from jinja2 import Template template = Template('my name is {{name}}') new_template = template.render(name = 'seo') print(new_template) 3) 파이썬 기반 웹 프레임워크 Flask,Django에서 주로 사용됨 - 주로 HTML 템플릿 저장 후 화면에 보여질 때 실제 값으로 변환해서 출력가능 - SQL 작성시에도 활용 가능 ex) select * from tables where base..

    [Airflow] Python 함수 인자

    def regist(name,sex): print(name) print(sex) regist('sdd','man') - 일반적인 함수 인자 방법 - 호출하는 로직에서 몇 개의 파라미터를 넘길지 모를떄는 어떻게해야하나..? 1. *arg def regist(name,sex,*args): print(type(args)) country = args[0] if len(args)>=1 else None city = args[1] if len(args)>=2 else None regist('soo','man') regist('soo','man','korea','seoul') - args로 들어온 값은 튜플로 저장 - args에서 값을 꺼낼 때는 인덱스를 이용(ex:args[0],args[1]) - args라는 이름..

    [Airflow] 파이썬 오퍼레이터

    - 라이브버리 from airflow.operators.python import PythonOperator (패키지명) / (오퍼레티터명(클래스)) - 어떤 역할을 하는 오퍼레이터인가? 정의된 파이썬 함수를 실행시키는것이며, 가장 많이 사용되는 오퍼레이터 - 파이썬 모듈 오퍼레이터 종류 패키지 오퍼레이터 의미 airflow.operators.python PythonOperator - 어떤 파이썬 함수를 실행시키기 위한 오퍼레이터 BranchPythonOperator - 파이썬 함수 실행 결과에 따라 task를 선택적으로 실행시킬 때 사용되는 오퍼레이터 ShortCircuitOperator - 파이썬 함수 실행 결과에 따라 후행 Task를 실행하지 않고 종료시킬 수 있는 오퍼레이터 PythonVirtual..

    [Airflow] E-mail 오퍼레이터

    - 이메일 전송해주는 오퍼레이터 email_t1 = EmailOperator( task_id="email_t1", to='ooooo@naver.com', subject="Airflow 처리결과", html_content='정상 처리되었습니다. ' - 사전 셋팅 작업 1) 구글 메일 서버 사용 2) G-mail -> 설정 -> 모든 설정보기 -> 전달 및 POP/IMAP -> IMAP 사용 3) 구글 계정관리 -> 보안 -> 2단계 인증 -> 앱비밀번호 셋팅 - Docker-compose.yaml 편집 (environment 항목에 추가) AIRFLOW__SMTP__SMTP_HOST:'stmp.gmail.com' AIRFLOW__SMTP__SMTP_USER:'{gmail 계정}' AIRFLOW__SMTP_..

    [Airflow] Task 연결하기

    Task 연결 방법 - Task 연결 방법 종류 1) >>, > 후 t1 >> t2 t1 >> t3 t2 >> t4 t3 >> t4 t5 >> t4 장점 : 단순한게 연결하면 한다 단점 : 코드만 봤을때 어떻게 연결되어있는지 한눈에 잘 안들어온다. 2) Code 작성 t1 >> [t2,t3] >> t4 t5 >> t4 [t4,t7] >> t6 >> t8 Airflow 실습 from airflow import DAG import pendulum import datetime from airflow.operators.empty import EmptyOperator with DAG( dag_id = 'dags_conn_test', schedule= None, start_date=pendulum.datetime(..