<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>LITTLE BY LITTLE</title>
    <link>https://noelee.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Tue, 7 Jul 2026 17:06:09 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>위나</managingEditor>
    <image>
      <title>LITTLE BY LITTLE</title>
      <url>https://tistory1.daumcdn.net/tistory/5458813/attach/d088103c145f428fbc64d4c8ad3a9cea</url>
      <link>https://noelee.tistory.com</link>
    </image>
    <item>
      <title>2025년 한 해 정리하기</title>
      <link>https://noelee.tistory.com/258</link>
      <description>&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;☃️목차&lt;/b&gt;&lt;/h4&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. 운영시스템과 분석시스템의 구분(2025 ver.)&lt;/b&gt;&lt;br /&gt;(1) OLTP와 OLAP의 이해: 트랜잭션에서 분석 데이터로의 전환 &lt;br /&gt;- 데이터 흐름의 가시성과 일관성&lt;br /&gt;(2) ETL 관점에서의 데이터 파이프라인 설계&lt;br /&gt;- 최적화 원칙&lt;br /&gt;(3) 데이터 레이어 아키텍처의 이해 &lt;br /&gt;- 3-Layer 아키텍처&lt;br /&gt;- 테이블 유형별 특성&lt;br /&gt;- Fact와 Dimension의 분리 (스타 스키마 설계)&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;b&gt;2. ERP 시스템 운영과 개선&lt;/b&gt;&lt;br /&gt;(1) 문제가 생기지 않는 시스템 만들기&lt;br /&gt;- 비즈니스 프로세스 분석&lt;br /&gt;- 시스템 로직 분석 (abap)&lt;br /&gt;(2) 사후 조치에서 사전 예방으로&lt;br /&gt;(3) 암묵지의 형식지화 (2026~)&lt;/p&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;b&gt;1.&lt;/b&gt;&lt;/span&gt;&lt;b&gt; 운영시스템과 분석시스템의 구분&lt;/b&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #f6e199; color: #666666;&quot;&gt;&lt;b&gt;(1)&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: #666666;&quot;&gt; &amp;nbsp;OLTP와 OLAP의 이해: 트랜잭션에서 분석 데이터로의 전환&lt;/span&gt; &lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;운영 시스템(ERP)의 트랜잭션 데이터를 분석 리포트로 재현하기 위해서는 원천 시스템에 대한 깊이 있는 이해가 필요하고&lt;br /&gt;개발 방식에 대한 지식보다는, 데이터가 어떤 테이블에서 어떤 조건과 로직을 거쳐 집계되는지 파악하는 것이 중요하다고 느꼈다.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;올해에는 작년에 중요하다고 생각했던 두 가지 원칙을 구체화해볼 수 있었다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&lt;i&gt;데이터 흐름의 1) 가시성, 2) 일관성이 OLAP 시스템의 핵심 (2024)&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;1) 가시성&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;- 사용자가 목적에 맞는 데이터를 쉽고 빠르게 조회할 수 있도록 구조 설계&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;- 요구사항 구체화 과정에서 더 나은 리포트 구조를 지속적으로 제안&amp;amp;협의&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;2) 일관성&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;- 원천 시스템과 동일한 값이 보여져야 함&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;- 값 검증을 반복하고, 불일치할 경우 로직이 차이나는 부분을 추적&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;- 데이터 모델링 구조를 정리하여 어느 단계에서 로직 오류가 발생했는지 파악&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;&amp;rarr; 모델링 &lt;/i&gt;&lt;/span&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;u&gt;&lt;i&gt;구조를 체계적으로 정리하고, 분산된 데이터 속 오류 원인을 찾는&lt;/i&gt;&lt;/u&gt;&lt;/span&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt; 작업&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;b&gt;1.&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;b&gt;운영시스템과 분석시스템의 구분&lt;/b&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #f6e199; color: #666666;&quot;&gt;&lt;b&gt;(2)&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: #666666;&quot;&gt; ETL 관점에서의 데이터 파이프라인 설계&lt;/span&gt; &lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;리포트 구축 작업을 트랜잭션 데이터를 분석 목적에 맞게 전처리하는 ETL 관점으로 이해하게 되었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. Extract 어떻게 가져올 것인지&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;원천 시스템에서 필요한 데이터만 효율적으로 가져오기 위해 적재용 뷰를 별도로 생성&lt;/li&gt;
&lt;li&gt;해당 뷰에서 필터를 적용하여 필요한 데이터만 추출하여 테이블에 적재&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. Transform 트랜잭션 로직의 재구성&lt;/p&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #555555;&quot;&gt;운영 시스템 프로그램에 적용된 필터, 조인, 예외 처리 로직 파악&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #555555;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #555555;&quot;&gt;목표 리포트 구현을 위해 어떤 로직을 선별적으로 적용해야 하는지에 대한 전체적인 이해 필요&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #555555;&quot;&gt;전체를 아는 사람이 없기에, 분산된 정보를 수집하고 '조합'하는 능력이 중요&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #555555;&quot;&gt;이를 위해 &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #555555;&quot;&gt;&lt;u&gt;값을 맞춰보며 역으로 로직을 추적&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #555555;&quot;&gt;하는 방식으로 접근함&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;3. Load 성능 최적화를 고려한 적재 전략&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;리포트 모델링은 실제 테이블이 아닌 여러 단계의 가상의 뷰를 쌓아 만드는 구조이기 때문에, 성능과 시스템 부하를 고려한 설계가 필요함&lt;/li&gt;
&lt;li&gt;뷰만 계속 쌓을 경우 조인 단계가 복잡해지고, 필터링 전 대용량 데이터를 매번 읽어야 하기 때문에 시스템 부하가 발생함&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;✅ &lt;/b&gt;최적화 원칙&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;SELECT 중첩 횟수 최소화&lt;/li&gt;
&lt;li&gt;필요 시 일부 연산을 물리화하여 테이블에 적재&lt;/li&gt;
&lt;/ol&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;b&gt;1.&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;b&gt;운영시스템과 분석시스템의 구분&lt;/b&gt;&lt;br /&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;(3)&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;b&gt; 데이터 레이어 아키텍처의 이해&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1768&quot; data-origin-height=&quot;1066&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yBOZL/dJMcachd7yU/GXYO2j8lO9KupguNXSdfsk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yBOZL/dJMcachd7yU/GXYO2j8lO9KupguNXSdfsk/img.png&quot; data-alt=&quot;복잡해서 내가 이해한 부분만 박스 표시 ..&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yBOZL/dJMcachd7yU/GXYO2j8lO9KupguNXSdfsk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyBOZL%2FdJMcachd7yU%2FGXYO2j8lO9KupguNXSdfsk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1768&quot; height=&quot;1066&quot; data-origin-width=&quot;1768&quot; data-origin-height=&quot;1066&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;복잡해서 내가 이해한 부분만 박스 표시 ..&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;작년에는 단순히 oltp는 운영 시스템, olap는 분석 시스템 정도로 구분하는 수준이었다면, 올해는 olap 구조를 직접 구축하며 레이어 개념에서 구체화한 모습으로 정리가 되었다&lt;/i&gt; &amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;b&gt; &lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;✅&lt;/b&gt;&lt;b&gt; 3-Layer 아키텍처&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;/b&gt;1) Inbound Layer&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;:운영 시스템에서 전달된 원천 데이터를 복제해오는 영역&lt;br /&gt;&amp;nbsp;&lt;br /&gt;2) Propagation Layer(통합 레이어)&lt;br /&gt;: 여러 소스의 데이터를 조인 및 정제하여 분석용 Fact/Dimension 구조로 통합하는 공간&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;데이터 전파 단계로, 중앙에서 생성한 표준 모델을 셀프서비스 영역으로 공유&lt;/li&gt;
&lt;li&gt;현업의 파워유저가 직접 모델을 생성하는 self-service 구조 지원&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;- 사용자 친화적인 gui 도구의 발전으로, 모델링 작업 자체가 self-bi 영역으로 확장되고 있다는 점이 인상깊었다.중앙에서 생성한 표준 모델을 propagation layer에서 공유하면, self-service modeller가 이를 기반으로 reporting layer의 모델을 파생시킬 수 있다&amp;nbsp;&lt;/i&gt;&lt;/span&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;- 왼쪽 아래 &amp;ldquo;self service maturity model of business functions&amp;rdquo;를 보면, self service modellers는 성숙도의 중간 단계에 위치한다. 위로 올라갈수록 자율성, 권한, 책임이 증가하는 구조로, 이를 통해 조직이 나아가야 할 방향성을 생각해볼 수 있다&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;3) Reporting Layer&lt;br /&gt;: 최종적으로 사용자가 데이터를 소비하는 공간으로 sac, power bi 와 같은 리포팅 도구에서 분석 및 시각화 수행&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt; ✅ 테이블 유형별 특성&lt;/b&gt;&lt;br /&gt;: 데이터 적재 방식에 따라 세 가지 유형으로 구분할 수 있다&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Remote Table: 원천 시스템을 직접 조회하는 테이블&lt;/li&gt;
&lt;li&gt;Delta Table: CDC(Change Data Capture)로 변경분만 적재하는 구조&lt;/li&gt;
&lt;li&gt;Local Table: 필터링 및 집계된 결과를 물리적으로 저장하여 매번 원천을 읽지 않아도 되도록 최적화&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt; ✅ Fact와 Dimension의 분리 (스타 스키마 설계)&lt;/b&gt;&lt;br /&gt;: 운영 시스템에서 표시되는 값을 '어떤 fact에 어떤 dimension을 연결하여, 어떤 조건과 기준으로 집계된 값인지'라는 관점으로 재정의&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Fact: 트랜잭션 데이터&lt;/li&gt;
&lt;li&gt;Dimension: 기준정보 (분석 기준)&lt;/li&gt;
&lt;li&gt;Association: fact와 dimension을 느슨하게 연결하는 관계&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1312&quot; data-origin-height=&quot;893&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cjA9PC/dJMcagw966k/njSmy5VCsK51RWwJgUNWeK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cjA9PC/dJMcagw966k/njSmy5VCsK51RWwJgUNWeK/img.png&quot; data-alt=&quot;리포트를 설계하는 과정에서 sqld 공부할 때 이론적으로 학습했던 스타 스키마 개념이 떠오름&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cjA9PC/dJMcagw966k/njSmy5VCsK51RWwJgUNWeK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcjA9PC%2FdJMcagw966k%2FnjSmy5VCsK51RWwJgUNWeK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;520&quot; height=&quot;354&quot; data-origin-width=&quot;1312&quot; data-origin-height=&quot;893&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;리포트를 설계하는 과정에서 sqld 공부할 때 이론적으로 학습했던 스타 스키마 개념이 떠오름&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[Dimension 분리 기준]&lt;br /&gt;&lt;br /&gt;&lt;u&gt;1) 집계 및 필터의 기준이 되는 속성인가?&lt;/u&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;rarr; 요구사항에서 집계 기준으로 사용되는 모든 차원은 분리 필요&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;u&gt;2) 두 개 이상 Fact에서 공통으로 사용되는가?&lt;/u&gt;&lt;br /&gt;&amp;rarr; 공통 차원은 분리해야 리포트 간 정의 일관성 확보&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;u&gt;3) 마스터 속성인가, 트랜잭션 속성인가? (자주 바뀌는지)&lt;/u&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style=&quot;color: #666666;&quot;&gt;'변경 빈도'를 두 가지 관점으로 구분하면,&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #666666;&quot;&gt;a. 트랜잭션마다 값이 달라지는 속성&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666;&quot;&gt;주문번호나 상태는 Fact 레코드마다 다른 값을 지님, 공통 차원이 아닌 팩트에 두는 게 자연스러움&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;b. 매핑 테이블로 유지보수되는 마스터 속성&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666;&quot;&gt;dimension으로 분리하지 않으면 기준 변경 시 fact 전체를 업데이트 해야 함 (+변경에 대한&amp;nbsp; 이력 관리도 되지 않음)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666;&quot;&gt;분리하면 dimension만 업데이트하여 모든 fact가 자동으로 새로운 기준으로 집계됨&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666;&quot;&gt;비즈니스 규칙(기준 변경)&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;을 fact를 건드리지 않고 dimension에서 통제 가능&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;⚠️ &lt;/b&gt;예외&lt;br /&gt;사용자마다 다르게 정의되거나, 매일 바뀌는 임시 그룹은 고정 dimension이 아닌, 리포팅 툴의 사용자 정의 그룹 또는 파라미터로 처리하는 편이 낫다.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;u&gt;&lt;span style=&quot;color: #333333;&quot;&gt;4)&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt; 계층구조를 갖고 있는가?&lt;/span&gt;&lt;/u&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #333333;&quot;&gt;부모-자식 관계(ex.센터코드-창고번호)를 가진 속성&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #333333;&quot;&gt;한 자식은 하나의 부모만 가지는 구조&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #333333;&quot;&gt;계층구조로 설계하면, 사용자 입장에서 더 직관적인 분석 가능&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;당연히 계층구조인 차원을 제외하고, 계층이라는 것을 인지 못하고 있던 속성들이 있었다. 이런 경우 계층으로 설계하면 사용자 입장에서 더 편리할 것 같다.&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;u&gt;&lt;span style=&quot;color: #333333;&quot;&gt;5)&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt; 이해하기 쉬운가?&lt;/span&gt;&lt;/u&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #333333;&quot;&gt;Dimension을 과도하게 분리하면 쿼리가 복잡해지고 현업에서는 헷갈릴 수 있음 (ex.&lt;/span&gt; 날짜 차원을 두 개 이상으로 쪼갠 경우 어떤 차원을 가져다 써야하는지 헷갈림)&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #333333;&quot;&gt;반대로 과소 분리하면 한 dimension에 과다한 속성이 포함되어 의미가 불분명해지고, &lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;재사용성이 떨어짐&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;b&gt;2.&lt;/b&gt;&lt;/span&gt;&lt;b&gt; ERP 시스템 운영과 개선&lt;/b&gt;&lt;br /&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;(1)&lt;/b&gt;&lt;/span&gt;&lt;b&gt; 문제가 생기지 않는 시스템 만들기 &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;어쩌다가 운영 업무를 맡게 되었다. 그나마 운이 좋게도, 시스템 개선 권한을 함께 부여받았다. 초기에는 시스템과 프로세스의 구멍을 메우는 작업에 많은 시간을 들였고, 흥미도 느꼈다.&lt;/i&gt;&lt;/span&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;&lt;/i&gt;&lt;/span&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;운영자로서 문제를 임시방편으로 해결하기보다는, 설계자로서 문제가 발생하지 않는 구조를 만들었고, 그 결과&lt;/i&gt;&lt;/span&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;&amp;nbsp;&lt;/i&gt;&lt;/span&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;단순 운영업무는 사라지고 시스템 개선이라는 가치있는 업무로 전환되었다&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;[기존]&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;오류 발생 시 사후 수정 방식으로 대응&lt;/li&gt;
&lt;li&gt;근본 원인은 방치되고 동일 오류 반복 발생&lt;/li&gt;
&lt;li&gt;운영 업무 과부하&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;[현재]&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;오류가 발생하지 않는 시스템 구조 구축&lt;/li&gt;
&lt;li&gt;단순 반복 업무를 시스템 개선 업무로 재정의&lt;/li&gt;
&lt;li&gt;불필요한 운영 업무 감소&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;✅ &lt;/b&gt;접근 방식&lt;br /&gt;1. 문제와 연관된 전체 구조 이해&lt;br /&gt;2. 문제의 시작점 찾기&lt;br /&gt;3. 구조 재설계하기&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style=&quot;color: #666666;&quot;&gt;그리고 위 접근 방법은 크게 두 가지 측면으로 나뉜다.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #666666;&quot;&gt;1) 비즈니스 프로세스 분석&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666;&quot;&gt;품질 서버 환경에서 오류 재현 및 가설 검증&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666;&quot;&gt;설계 및 개발 과정의 예외 상황 점검 (=설계/개발 과정에 구멍이 없는지 확인하기)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666;&quot;&gt;프로세스 흐름 상의 구조적 문제점 파악&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;2) 시스템 로직 분석&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666;&quot;&gt;기존 구현 로직의 abap 코드 레벨 검토&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666;&quot;&gt;비즈니스 요구사항과 시스템 구현 간 불일치 식별&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666;&quot;&gt;개선 가능 지점 도출&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt; 두 작업의 본질은 '흩어진 데이터 속에서 원인을 추적하는 일'이다. 데이터 리포트 개발에서도 오류 지점을 찾아 로직을 바로잡는 과정이 가장 재미있었다&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;b&gt;2.&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;b&gt;ERP 시스템 운영과 개선&lt;/b&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #f6e199; color: #666666;&quot;&gt;&lt;b&gt;(2)&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;nbsp;사후 조치에서 사전 예방으로&lt;/span&gt; &lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;✅ &lt;/b&gt;개선 방향&lt;br /&gt;사후 수정이 아닌, 최초 생성 시점부터 정확한 데이터가 입력되도록 시스템 및 프로세스 개선&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;b&gt;✅ &lt;/b&gt;개선 사례&lt;br /&gt;&lt;u&gt;case 1) 속성 간 동기화 로직개선&amp;nbsp;&lt;/u&gt;&lt;br /&gt;[문제]&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;특정 관리 단위의 상태 변경 시 연관 속성이 강제 동기화&lt;/li&gt;
&lt;li&gt;독립적 관리가 필요한 상황에서도 수정 불가&lt;/li&gt;
&lt;li&gt;주기적으로 상태를 원복하는 비효율 발생&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;[해결]&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;기본 동기화 유지하되, 필요 시 독립 수정 가능하도록 프로그램 수정&lt;/li&gt;
&lt;li&gt;담당 부서에 예외 상황 처리 가이드 제공&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;u&gt;case 2) 반복 패턴 기반 자동화&lt;/u&gt;&lt;br /&gt;[문제]&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;변경 이력 분석 결과, 특정 속성이 신규 생성 시마다 수동 수정됨&lt;/li&gt;
&lt;li&gt;명확한 패턴 존재했기에 자동화 가능하다고 판단&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;[해결]&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;패턴 기반 초기값 자동 설정 로직 구현&lt;/li&gt;
&lt;li&gt;수동 개입 제거&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;u&gt;case 3) 책임 소재 명확화&lt;/u&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[문제]&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;요청자의 부정확한 정보 입력 &amp;rarr; 관리자의 사후 검토 및 수정&lt;/li&gt;
&lt;li&gt;동일 오류 반복 발생&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[해결]&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;재작업을 요청하는 기능을 도입하여 요청자 책임 강화&lt;/li&gt;
&lt;li&gt;관리자 업무 부담 감소 및 정합성 관리 주체 이동&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;✅ &lt;/b&gt;향후 과제&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;통제와 편의성의 균형: 중앙 통제는 업무 신속성을 저해하나, 과도한 분권화는 정합성을 저해함&lt;/li&gt;
&lt;li&gt;근본적 프로세스 개선: 검증 체계는 오입력을 방지할 수 있으나, 입력 시점에 정확한 정보를 확보할 수 없는 구조적 한계는 여전히 존재함&lt;/li&gt;
&lt;/ol&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;b&gt;2.&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;b&gt;ERP 시스템 운영과 개선&lt;/b&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #f6e199; color: #666666;&quot;&gt;&lt;b&gt;(3)&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: #666666;&quot;&gt; 암묵지의 형식지화 (2026~)&lt;/span&gt; &lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;[배경]&lt;br /&gt;- 기존: 중앙 통제(승인) 방식&lt;br /&gt;- 목표: 표준 운영절차 기반 거버넌스 체계 확립&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;b&gt;✅&lt;/b&gt; 기준정보 속성에 대해 &lt;u&gt;생성 로직과 영향도를 분석하고 정책을 문서화&lt;/u&gt;하여 체계적인 거버넌스 프레임워크를 구축하는 것이 목표&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;역할 및 책임 체계 정리
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;속성별 생성 및 변경 책임 주체 명확화&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;정책 및 절차 정리
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;속성 간 종속성 및 타 시스템과의 연관관계 파악&lt;/li&gt;
&lt;li&gt;종속성 기반 업무 영향도 분석&lt;/li&gt;
&lt;li&gt;속성 중 대부분은 독립적이 아닌 상호 의존적 구조&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&amp;nbsp;분석 프레임워크: Data - Rule - Impact 각 속성을 다음 세 가지 관점에서 체계적으로 분석
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Data: 데이터 정의&lt;/li&gt;
&lt;li&gt;Rule: 생성 및 변경 규칙&lt;/li&gt;
&lt;li&gt;Impact: 오류 시 영향 범위&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;[예시]&lt;br /&gt;사례: 기준정보 속성 변경의 적시성 관리&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Data: 변경 내용 적용일자&lt;/li&gt;
&lt;li&gt;Rule: 요청일 기준 +n일&lt;/li&gt;
&lt;li&gt;Impact: 규칙 미준수 시
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;계획 단계: 수동 수정 발생 &amp;rarr; 운영 효율 저하&lt;/li&gt;
&lt;li&gt;실행 단계: 잘못된 자재 투입 &amp;rarr; 품질 이슈&lt;/li&gt;
&lt;li&gt;수급 단계: 발주 지연 &amp;rarr; 생산 차질&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;rarr;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt; &lt;/span&gt;이처럼 단일 규칙이 계획-실행-수급 프로세스 전반에 영향을 미친다.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;b&gt;✅&lt;/b&gt; 적시성(Timeliness) 확보&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;업무 프로세스 실행 이전에 모든 기준정보가 정확히 반영되어야 함&lt;/li&gt;
&lt;li&gt;종속 관계에 있으나 동기화되지 않는 속성 식별 및 개선&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt; &lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&lt;b&gt;올해 잘한 일&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #666666;&quot;&gt;1. 나에 대해 알게된 사실이 꽤 많음&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;- 보고 나서 생각하게 만드는 열린 결말 스토리를 좋아함 (feat. 파이 이야기)&amp;nbsp;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;- 미래를 상상하고 기대하는 게 내가 살아가는 원동력&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;- 정리하는 걸 좋아한다 = 학습하는 걸 좋아한다&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;- 아늑한 공간과 분위기를 (아주) 좋아함&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #666666;&quot;&gt;2. 재테크 포트폴리오 정비&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #666666;&quot;&gt;3.&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt; 자신있는 도메인이 생김 &lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;(작년 계획 2번)&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&lt;b&gt;내년 계획&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #666666;&quot;&gt;1. 기록 부지런히 하기,,&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #666666;&quot;&gt;2. 운동 꾸준히 하기&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #666666;&quot;&gt;3. 출근 전/퇴근 후 루틴 만들기&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #666666;&quot;&gt;4. 내 공간 정리정돈하기, 물건 최소화하기&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #666666;&quot;&gt;5. 책!!!!!  &lt;/span&gt;&lt;/p&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>계획과 회고</category>
      <author>위나</author>
      <guid isPermaLink="true">https://noelee.tistory.com/258</guid>
      <comments>https://noelee.tistory.com/258#entry258comment</comments>
      <pubDate>Tue, 30 Dec 2025 22:08:08 +0900</pubDate>
    </item>
    <item>
      <title>Nelson Rules(1~4번) 파이썬으로 구현하기</title>
      <link>https://noelee.tistory.com/254</link>
      <description>&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;사전 작업)&lt;/span&gt; 중심선,&amp;nbsp;상한선,&amp;nbsp;하한선&amp;nbsp;설정&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt; 조건문 (if-elif-else)&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt; 통계적 공정 관리 (SPC, Statistical Process Control) 개념&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&amp;nbsp;일반적으로는 평균,표준편차+=3시그마를 각각 중앙선, 상한선, 하한선으로 설정하나, 고정된 값(중앙선과 관리 한계값)을 사용해야하는 경우 다르게 설정하고, 그렇지 않은 경우에는 평균과 표준편차를 활용하여 동적으로 계산&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1739087684885&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;def calculate_limits(group):
    type = group.name  # 그룹의 이름을 가져옴
	if type == 'A1':
        central_line = 75
        ucl = 80
        lcl = 70
    elif type == 'A2':
        central_line = group['value'].mean()
        std_dev = group['value'].std()
        ucl = central_line + 3 * std_dev
        lcl = central_line - 3 * std_dev
    elif type == 'B1':
        central_line = 142
        ucl = 146
        lcl = 138
    elif type == 'B2':
        central_line = 142
        ucl = 146
        lcl = 138
    elif type == 'B3':
        central_line = 25
        ucl = 30
        lcl = 20
    elif type in ['C1', 'C2']:
        central_line = group['value'].mean()
        std_dev = group['value'].std()
        ucl = central_line + 3 * std_dev
        lcl = central_line - 3 * std_dev
    else:
        central_line = group['value'].mean()
        std_dev = group['value'].std()
        ucl = central_line + 3 * std_dev
        lcl = central_line - 3 * std_dev
    group['central_line'] = central_line
    group['ucl'] = ucl
    group['lcl'] = lcl
    return group&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;규칙 1번)&lt;/b&gt;&lt;/span&gt;&lt;b&gt; 상/하한선&amp;nbsp;초과&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size14&quot;&gt;: 상한선을 초과하거나, 하한선을 초과한 인덱스를 가진 행 반환&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;772&quot; data-origin-height=&quot;434&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/beVbBs/btsMaSWMSIe/yTBJfe0uqfXjjANCIguZc1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/beVbBs/btsMaSWMSIe/yTBJfe0uqfXjjANCIguZc1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/beVbBs/btsMaSWMSIe/yTBJfe0uqfXjjANCIguZc1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbeVbBs%2FbtsMaSWMSIe%2FyTBJfe0uqfXjjANCIguZc1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;475&quot; height=&quot;267&quot; data-origin-width=&quot;772&quot; data-origin-height=&quot;434&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1739088503105&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;rule_1_indices = group[(group['value'] &amp;gt; ucl) | (group['value'] &amp;lt; lcl)].index
for timestamp in rule_1_indices:
    rules.append((timestamp, timestamp, 1, 'Rule_1', tagname))&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;  .index 속성&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;group[(조건)].index &amp;rarr; 조건을 만족하는 행들의 인덱스만 추출&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;  append()&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;rules 리스트에 새로운 튜플 (timestamp, timestamp, 1, 'Rule_1', tagname) 추가&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;  for 반복문을 활용한 리스트 생성&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;관리 한계(UCL, LCL)를 초과하거나 미달하는 값의 인덱스만 가져옴 (=규칙 1번에 해당하는 경우의 값)&lt;/li&gt;
&lt;li&gt;해당하는, rule_1_indices에 저장된 인덱스를 하나씩 가져와 rules.append() 결과df인 rules에 붙임&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;규칙 2번)&lt;/span&gt; 9개&amp;nbsp;연속&amp;nbsp;같은&amp;nbsp;쪽&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;: 연속적으로 관측된 9개 이상의 점이 중심선 위/아래 에만 존재할 경우.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;즉, 9번 이상 평균과 상한선, 혹은 평균과 하한선 사이에 값이 존재하는 경우&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size14&quot;&gt;&lt;i&gt;*2번 부터는 슬라이딩 윈도우 적용&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;775&quot; data-origin-height=&quot;402&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bhNXEL/btsMbUMZG3o/lQhUABGPOebKU3XfvUZgW0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bhNXEL/btsMbUMZG3o/lQhUABGPOebKU3XfvUZgW0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bhNXEL/btsMbUMZG3o/lQhUABGPOebKU3XfvUZgW0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbhNXEL%2FbtsMbUMZG3o%2FlQhUABGPOebKU3XfvUZgW0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;496&quot; height=&quot;257&quot; data-origin-width=&quot;775&quot; data-origin-height=&quot;402&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1739090139265&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;### 1)
def check_same_side(window, central_line):
    above = window &amp;gt; central_line
    below = window &amp;lt; central_line
    return np.all(above) or np.all(below)
### 2)   
for i in range(len(group) - 8):
    window = group['value'].iloc[i:i+9]
    if check_same_side(window, central_line):
        if start_index is None:
            start_index = i
        end_index = i + 8
    else:
    ### 3)
        if start_index is not None and end_index is not None:
            rules.append((group.index[start_index], group.index[end_index], end_index - start_index + 1, 'Rule_2', tagname))
        start_index = None
        end_index = None&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt; 슬라이딩 윈도우&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;데이터를 작은 구간으로 나누고, 그 구간을 한 칸씩 이동하면서 반복적으로 검사하는 방식&lt;/li&gt;
&lt;li&gt;목적: 데이터를 구간별로 나누어 특정 패턴을 확인&lt;/li&gt;
&lt;li&gt;예를 들어 윈도우 크기를 3으로 설정한다면, 3초씩 구간이 나뉘고 + &amp;nbsp;3초&amp;nbsp;간의&amp;nbsp;연속된&amp;nbsp;데이터가&amp;nbsp;조건을&amp;nbsp;만족하는지&amp;nbsp;검사&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;  numpy 배열 및 boolean 연산 &lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;np.all(above) : 모든 값이 중앙선 위에 있음 &amp;rarr; 모두 True&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&amp;rarr;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;True 반환&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;   슬라이싱 / iloc - 슬라이딩 윈도우 가져오기&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;range(len(group) - 8) :&amp;nbsp;9개씩 데이터를 가져옴&lt;/li&gt;
&lt;li&gt;iloc[i:i+9]&amp;nbsp; i부터 i+8까지 9개의 데이터를 추출하여 window 변수에 저장 (*iloc[start:end]에서 end값은 포함되지 않음&lt;u&gt;)&lt;/u&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;   for 반복문을 활용한 윈도우 이동&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;for i in range(len(group) - 8): 한 루프 당 9개씩 묶어서 비교&lt;/li&gt;
&lt;li&gt;&lt;span&gt;check_same_side(window, central_line)로 window(9개의 데이터)가 모두 중앙선 위 또는 아래에 위치하는지 검사 &lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;   연속된 인덱스 찾기 (start_index, end_index)&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;연속된 패턴이 처음 발견되면 start_index에 저장&lt;/li&gt;
&lt;li&gt;&lt;span&gt;연속된 패턴이 유지되면 end_index를 갱신하여 end_index 업데이트&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;check_same_side()가 False가 되면 패턴이 종료&lt;/li&gt;
&lt;li&gt;패턴 종료 시, 결과 리스트에 추가&lt;/li&gt;
&lt;li&gt;이후 start_index = None, end_index = None으로 리셋&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;규칙 3번)&lt;/span&gt;&lt;span&gt; &lt;u&gt;추세&lt;/u&gt; - 9개 연속 증가/감소&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;: 여섯&amp;nbsp;개&amp;nbsp;이상의&amp;nbsp;점이&amp;nbsp;연속적으로&amp;nbsp;증가하거나&amp;nbsp;감소하는&amp;nbsp;경우&amp;nbsp;(=추세&amp;nbsp;존재)&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size14&quot;&gt;&lt;span&gt;*시계열 데이터에서도 추세가 존재하면 추세를 제거하고 모델링을 진행해야 하듯이, 여기에서도 추세가 존재하면 불량 패턴으로 의심해볼 수 있음&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;774&quot; data-origin-height=&quot;401&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tglwz/btsMbBz4UVn/6i8PfeXGGw58PBcBFARkFk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tglwz/btsMbBz4UVn/6i8PfeXGGw58PBcBFARkFk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tglwz/btsMbBz4UVn/6i8PfeXGGw58PBcBFARkFk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Ftglwz%2FbtsMbBz4UVn%2F6i8PfeXGGw58PBcBFARkFk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;544&quot; height=&quot;282&quot; data-origin-width=&quot;774&quot; data-origin-height=&quot;401&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1739092667833&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;### 1)
def check_increasing_or_decreasing(window):
    increasing = np.all(np.diff(window) &amp;gt; 0)
    decreasing = np.all(np.diff(window) &amp;lt; 0)
    return increasing or decreasing

### 2)
for i in range(len(group) - 5):
    window = group['value'].iloc[i:i+6]
    if check_increasing_or_decreasing(window):
        if start_index is None:
            start_index = i
        end_index = i + 5
    else:
    ### 3)
        if start_index is not None and end_index is not None:
            rules.append((group.index[start_index], group.index[end_index], end_index - start_index + 1, 'Rule_3', tagname))
        start_index = None
        end_index = None&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;  np.diff()를 활용한 증가/감소 판별&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;np.diff()로 연속된 요소의 차이(증가/감소) 계산
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;np.diff(window)를 사용해 연속된 값들의 차이를 계산&lt;/li&gt;
&lt;li&gt;증가&amp;nbsp;=&amp;nbsp;차이가&amp;nbsp;모두&amp;nbsp;양수&amp;nbsp;/&amp;nbsp;감소&amp;nbsp;=&amp;nbsp;차이가&amp;nbsp;모두&amp;nbsp;음수&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;  &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;슬라이딩 윈도우를 활용한 증가/감소 탐지&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;for 루프를 이용해 데이터에서 9개씩 묶어서 검사&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt; &lt;b&gt; &lt;/b&gt; 연속된 증가/감소 구간 찾기&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;처음 감지되었을 때 (start_index is None인 경우) start_index = i 설정&lt;/li&gt;
&lt;li&gt;패턴이 계속 유지되는 동안 end_index를 업데이트하여 가장 끝의 인덱스 저장&lt;/li&gt;
&lt;li&gt;패턴이 더 이상 유지되지 않는 경우(else 실행)&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;규칙 4번)&lt;/span&gt; &lt;u&gt;교대 패턴&lt;/u&gt; - 14개가&amp;nbsp;교대로&amp;nbsp;변동&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;: 연속적으로 관측된 14개 이상의 점이 번갈아가며 나타나는 경우&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;775&quot; data-origin-height=&quot;413&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/V8GTB/btsMdnUPBtN/mCcX5MH3WgioHbfyeRjUF1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/V8GTB/btsMdnUPBtN/mCcX5MH3WgioHbfyeRjUF1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/V8GTB/btsMdnUPBtN/mCcX5MH3WgioHbfyeRjUF1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FV8GTB%2FbtsMdnUPBtN%2FmCcX5MH3WgioHbfyeRjUF1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;550&quot; height=&quot;293&quot; data-origin-width=&quot;775&quot; data-origin-height=&quot;413&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1739093248344&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;### 1)
def check_alternating(window):
    diffs = np.diff(window)
    signs = np.sign(diffs)
    alternating = np.all(signs[1:] != signs[:-1])
    return alternating
    
### 2)
for i in range(len(group) - 13):
    window = group['value'].iloc[i:i+14]
    if check_alternating(window):
        if start_index is None:
            start_index = i
        end_index = i + 13
    else:

### 3)
        if start_index is not None and end_index is not None:
            rules.append((group.index[start_index], group.index[end_index], end_index - start_index + 1, 'Rule_4', tagname))
        start_index = None
        end_index = None&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;np.diff()와 np.sign()을 활용한 증가/감소 방향 판별&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;np.diff로&amp;nbsp;연속된&amp;nbsp;차이를&amp;nbsp;계산하고,&amp;nbsp;np.sign으로&amp;nbsp;차이값의&amp;nbsp;부호(+1,-1,0)을&amp;nbsp;반환해서,&amp;nbsp;부호가&amp;nbsp;교대로&amp;nbsp;변동하는지&amp;nbsp;확인&lt;/li&gt;
&lt;li&gt;np.sign() 양수(1), 음수(-1), 0(0) 로 변환하는 함수 활용 - 값이 증가하면 1, 감소하면 -1&lt;/li&gt;
&lt;li&gt;signs[1:] : 2번째 값부터 끝(14번째)까지 가져옴 = 현재 부호를 나타냄&lt;/li&gt;
&lt;li&gt;signs[:-1] : 1번째 값부터 마지막 이전(13번째)까지 가져옴 = 이전 부호를 나타냄&lt;/li&gt;
&lt;li&gt;&amp;nbsp;np.all(signs[1:]&amp;nbsp;!=&amp;nbsp;signs[:-1])&amp;nbsp;:&amp;nbsp;모든&amp;nbsp;연속된&amp;nbsp;두&amp;nbsp;값의&amp;nbsp;부호가&amp;nbsp;교대하는지&amp;nbsp;검사,&amp;nbsp;모두&amp;nbsp;다른&amp;nbsp;경우&amp;nbsp;true로만&amp;nbsp;구성된&amp;nbsp;배열&amp;nbsp;반환&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;   슬라이딩 윈도우를 활용한 교대 패턴 탐지&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;for 루프를 이용해 데이터에서 14개씩 묶어서 검사&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;  &lt;span&gt; &lt;/span&gt;연속된 교대 패턴 구간 찾기&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;처음 감지되었을 때(start_index is None인 경우) start_index = i 설정&lt;/li&gt;
&lt;li&gt;패턴이 계속 유지되는 동안 end_index를 업데이트하여 가장 끝의 인덱스를 저장&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt; ✅ 추가적으로 고려해볼 항목&lt;/b&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;예외 처리:&lt;/b&gt; 위의 함수는&amp;nbsp; 비어 있는 데이터나, 중앙선과 정확히 일치하는 값에 대해 어떻게 동작할지 명확하지 않음
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;데이터에 NaN이 포함된 경우 어떻게 처리할까?&lt;/li&gt;
&lt;li&gt;check_same_side() 함수에서 같은 값(central_line과 정확히 같은 값)이 포함된 경우는 어떻게 처리할까?&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt; 최적화 및 성능 개선&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;for 문을 사용한 슬라이딩 윈도우는 반복문을 직접 수행하기 때문에 속도가 느릴 수 있음&lt;/li&gt;
&lt;li&gt;벡터 연산을 활용하여 Pandas의 .rolling() 메서드를 사용하면 훨씬 빠르게 연산할 수 있을 것&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>기타</category>
      <author>위나</author>
      <guid isPermaLink="true">https://noelee.tistory.com/254</guid>
      <comments>https://noelee.tistory.com/254#entry254comment</comments>
      <pubDate>Sun, 9 Feb 2025 17:13:48 +0900</pubDate>
    </item>
    <item>
      <title>2024년 한 해 정리하기</title>
      <link>https://noelee.tistory.com/252</link>
      <description>&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt; 목차&lt;/b&gt;&lt;/h4&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. 운영시스템과 분석시스템의 구분&lt;/b&gt;&lt;br /&gt;&lt;b&gt;2. 공부 방향성&lt;/b&gt;&lt;br /&gt;(1) 기술&lt;br /&gt;(2) 도메인&lt;br /&gt;&lt;b&gt;3. 데이터 기반 업무 방향성&lt;/b&gt;&lt;br /&gt;(1) PI: 기존 업무 방식의 효율화&lt;br /&gt;(2) 인과추론 입문: 실무에 필요한 데이터 사고&lt;br /&gt;(3) 비즈니스 분석: 데이터로 가치를 만드는 과정&lt;br /&gt;&lt;b&gt;4. 총정리&lt;/b&gt;&lt;/p&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;b&gt;1.&lt;/b&gt;&lt;/span&gt;&lt;b&gt; 운영시스템과 분석시스템의 구분&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;i&gt;참고( ▼ )&lt;/i&gt;&lt;b&gt;&lt;/b&gt;&lt;br /&gt;&lt;a href=&quot;https://gibles-deepmind.tistory.com/entry/%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%A7%88%ED%8A%B8%EC%97%90%EC%84%9C%EB%8A%94-%EB%AD%98-%ED%8C%8C%EB%82%98%EC%9A%94&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;span&gt;https://gibles-deepmind.tistory.com/entry/%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%A7%88%ED%8A%B8%EC%97%90%EC%84%9C%EB%8A%94-%EB%AD%98-%ED%8C%8C%EB%82%98%EC%9A%94&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;figure data-ke-type=&quot;opengraph&quot; data-og-title=&quot;데이터 마트에서는 뭘 파나요?(feat. OLTP, OLAP)&quot; data-ke-align=&quot;alignCenter&quot; data-og-description=&quot;자~데이터 담으러 가자(feat.안내상님, 송곳) - 들뜬 마음으로 마트에 방문한 A씨. - 어라? 그런데 구매하려고 했던 바나나가 없다. - 바나나 다 팔렸나요? 질문을 남긴 안씨. 직원C씨는 알아 보고 오&quot; data-og-host=&quot;gibles-deepmind.tistory.com&quot; data-og-source-url=&quot;https://gibles-deepmind.tistory.com/entry/%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%A7%88%ED%8A%B8%EC%97%90%EC%84%9C%EB%8A%94-%EB%AD%98-%ED%8C%8C%EB%82%98%EC%9A%94&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/jttu1/hyXKv9qlCO/wxQFvabUEJTipzKAul0n41/img.jpg?width=279&amp;amp;height=181&amp;amp;face=0_0_279_181,https://scrap.kakaocdn.net/dn/n79Ki/hyXOnIDoLC/X17tkPDTh7JKkxa5le6zaK/img.jpg?width=279&amp;amp;height=181&amp;amp;face=0_0_279_181,https://scrap.kakaocdn.net/dn/kH8Mu/hyXKlyT2hE/Vc3QhDip67DeKVweS6XDwk/img.png?width=431&amp;amp;height=431&amp;amp;face=0_0_431_431&quot; data-og-url=&quot;https://gibles-deepmind.tistory.com/entry/%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%A7%88%ED%8A%B8%EC%97%90%EC%84%9C%EB%8A%94-%EB%AD%98-%ED%8C%8C%EB%82%98%EC%9A%94&quot;&gt;&lt;a href=&quot;https://gibles-deepmind.tistory.com/entry/%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%A7%88%ED%8A%B8%EC%97%90%EC%84%9C%EB%8A%94-%EB%AD%98-%ED%8C%8C%EB%82%98%EC%9A%94&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://gibles-deepmind.tistory.com/entry/%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%A7%88%ED%8A%B8%EC%97%90%EC%84%9C%EB%8A%94-%EB%AD%98-%ED%8C%8C%EB%82%98%EC%9A%94&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/jttu1/hyXKv9qlCO/wxQFvabUEJTipzKAul0n41/img.jpg?width=279&amp;amp;height=181&amp;amp;face=0_0_279_181,https://scrap.kakaocdn.net/dn/n79Ki/hyXOnIDoLC/X17tkPDTh7JKkxa5le6zaK/img.jpg?width=279&amp;amp;height=181&amp;amp;face=0_0_279_181,https://scrap.kakaocdn.net/dn/kH8Mu/hyXKlyT2hE/Vc3QhDip67DeKVweS6XDwk/img.png?width=431&amp;amp;height=431&amp;amp;face=0_0_431_431');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;데이터 마트에서는 뭘 파나요?(feat. OLTP, OLAP)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;자~데이터 담으러 가자(feat.안내상님, 송곳) - 들뜬 마음으로 마트에 방문한 A씨. - 어라? 그런데 구매하려고 했던 바나나가 없다. - 바나나 다 팔렸나요? 질문을 남긴 안씨. 직원C씨는 알아 보고 오&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;gibles-deepmind.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;&lt;b&gt;OLTP(&lt;/b&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #474747;&quot;&gt;&lt;b&gt;Online &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #474747;&quot;&gt;&lt;u&gt;&lt;b&gt;Transaction&lt;/b&gt;&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #474747;&quot;&gt;&lt;b&gt; Processing&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;)와 OLAP(Online &lt;/b&gt;&lt;u&gt;&lt;b&gt;Analytics&lt;/b&gt;&lt;/u&gt;&lt;b&gt; Processing)&amp;nbsp;&lt;/b&gt;&lt;br /&gt;: 지금 우리 회사는 OLAP 환경을 새롭게 구성하고 있다. OLTP 시스템이 일상적인 기업의 운영을 지원하는 반면, OLAP 시스템은 기업의 방향을 설정하는 역할을 한다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;915&quot; data-origin-height=&quot;507&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/d73hNg/btsK2aKReX7/4FHpSGe6XFGQMcBgKgMerk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/d73hNg/btsK2aKReX7/4FHpSGe6XFGQMcBgKgMerk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/d73hNg/btsK2aKReX7/4FHpSGe6XFGQMcBgKgMerk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fd73hNg%2FbtsK2aKReX7%2F4FHpSGe6XFGQMcBgKgMerk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;447&quot; height=&quot;248&quot; data-origin-width=&quot;915&quot; data-origin-height=&quot;507&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;OLTP(운영 시스템)&lt;/b&gt;&lt;br /&gt;&lt;b&gt;:&lt;/b&gt; 운영 시스템은 조직에서 사용하는 기존의 트랜잭션 처리 시스템이나 애플리케이션을 의미 (ex.ERP) 운영 시스템에서 데이터를 추출하여 데이터 웨어하우스로 전달&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;OLTP는 사용자가 데이터를 생성, 수정, 삭제와 같은 트랜잭션을 빠르게 처리할 수 있도록 설계됨&lt;/li&gt;
&lt;li&gt;사용자가 입력한 데이터를 저장하거나 처리한 후, 필요한 데이터가 &quot;데이터 추출&quot; 과정을 통해 데이터 웨어하우스로 전달됨&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;OLAP(활용)&lt;/b&gt;&lt;br /&gt;: 대량의 데이터를 기반으로 분석 작업을 수행하는 시스템을 의미&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;OLAP는 데이터의 다차원 분석, 보고, 의사결정을 지원하기 위해 설계됨&lt;/li&gt;
&lt;li&gt;대규모 데이터를 분석 및 요약&lt;/li&gt;
&lt;li&gt;데이터를 기반으로 통찰력과 패턴을 발견하는 데 중점을 둠&lt;/li&gt;
&lt;li&gt;데이터베이스 설계는 비정규화된 구조로, 분석 속도를 향상시킴&lt;/li&gt;
&lt;li&gt;데이터를 다차원적으로 분석하여 사용자가 인사이트를 도출하도록 지원하고, 이를 위해 데이터는 &quot;데이터 웨어하우스&quot;나 &quot;데이터마트&quot;에서 수집됨&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;i&gt;&lt;b&gt;OLAP 환경 - 기존 VS To-Be&lt;/b&gt;&lt;/i&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 288px;&quot; border=&quot;1&quot; data-ke-style=&quot;style13&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 13.0233%; height: 17px;&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 26.279%; height: 17px;&quot;&gt;As-Is&lt;/td&gt;
&lt;td style=&quot;width: 60.6977%; height: 17px;&quot;&gt;To-Be&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 44px;&quot;&gt;
&lt;td style=&quot;width: 13.0233%; height: 44px;&quot;&gt;&lt;b&gt;배포 방식&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 26.279%; height: 44px;&quot;&gt;온프레미스 또는 클라우드(특히 SAP BW/4HANA) 기반&lt;/td&gt;
&lt;td style=&quot;width: 60.6977%; height: 44px;&quot;&gt;&lt;u&gt;&lt;b&gt;완전한 클라우드 네이티브 솔루션&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;* 데이터를 저장, 처리, 관리, 분석하는 모든 과정을 클라우드 상에서 실행&lt;br /&gt;*온프레미스(내부 서버)에 설치할 필요가 없음&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 44px;&quot;&gt;
&lt;td style=&quot;width: 13.0233%; height: 44px;&quot;&gt;&lt;b&gt; &lt;/b&gt;&lt;b&gt;사용자 접근성&lt;/b&gt;&lt;b&gt; &lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 26.279%; height: 44px;&quot;&gt;기술적인 설정 및 유지보수가 필요하며 주로 IT 전문가가 사용&lt;/td&gt;
&lt;td style=&quot;width: 60.6977%; height: 44px;&quot;&gt;직관적인 인터페이스로 &lt;u&gt;비즈니스 사용자와 IT 사용자가 함께 작업&lt;/u&gt; 가능&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 44px;&quot;&gt;
&lt;td style=&quot;width: 13.0233%; height: 44px;&quot;&gt;&lt;b&gt;데이터 저장&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 26.279%; height: 44px;&quot;&gt;데이터가 로컬 데이터베이스(특히 HANA DB)에 저장됨&lt;/td&gt;
&lt;td style=&quot;width: 60.6977%; height: 44px;&quot;&gt;&lt;u&gt;&lt;b&gt; 데이터 가상화 지원&lt;/b&gt;&lt;/u&gt;: 원본 데이터를 클라우드로 복사하지 않고도 분석 가능&lt;br /&gt;&lt;b&gt;*데이터 가상화:&lt;/b&gt; 데이터를 &lt;b&gt;가상 레이어(중간 계층)에서 연결&lt;/b&gt;해 가져와, 원본 데이터를 이동하지 않고도 접근 및 분석 가능&lt;br /&gt;* 데이터가 여러 시스템(ex. SAP ERP, 다양한 DB)에 분산되어 있어도 데이터를 복사해서 하나로 모으지 않고, 각 시스템에 연결하여 필요한 데이터를 실시간으로 가져와 분석&lt;br /&gt;(&amp;rarr; &lt;b&gt;항상 최신 데이터를 사용할 수 있음&lt;/b&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 44px;&quot;&gt;
&lt;td style=&quot;width: 13.0233%; height: 44px;&quot;&gt;&lt;b&gt; &lt;/b&gt;&lt;b&gt;데이터 통합&lt;/b&gt;&lt;b&gt; &lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 26.279%; height: 44px;&quot;&gt;데이터 (&lt;b&gt;복사&lt;/b&gt; 및) 적재를 통해 통합된 데이터 웨어하우스&lt;br /&gt;* 데이터는 웨어하우스에 &lt;b&gt;정적인 형태&lt;/b&gt;로 저장됨&lt;br /&gt;* &lt;span style=&quot;background-color: #f9f9f9;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;일반적으로 배치(batch) 처리 방식으로 일정 시간 간격마다 데이터를 업데이트하여&lt;/span&gt;&lt;/span&gt; 실시간 데이터 반영이 어려움&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 60.6977%; height: 44px;&quot;&gt;데이터 가상화 및 실시간 통합 기능&lt;br /&gt;(ETL 없이도 원본 시스템에서 데이터 분석 가능)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 44px;&quot;&gt;
&lt;td style=&quot;width: 13.0233%; height: 44px;&quot;&gt;&lt;b&gt; &lt;/b&gt;&lt;b&gt;확장성&lt;/b&gt;&lt;b&gt; &lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 26.279%; height: 44px;&quot;&gt;온프레미스 환경에서는 확장에 제약이 있을 수 있음&lt;/td&gt;
&lt;td style=&quot;width: 60.6977%; height: 44px;&quot;&gt;클라우드 기반으로 &lt;u&gt;유연한 확장&lt;/u&gt; 가능&lt;br /&gt;* 시스템이 사용자나 데이터 처리량의 변화에 따라 자동으로 확장(Scale-out)하거나 축소(Scale-in)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 13.0233%; height: 17px;&quot;&gt;&lt;b&gt;유지보수&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 26.279%; height: 17px;&quot;&gt;정교한 유지보수가 필요하며 IT 리소스가 많이 요구됨&lt;/td&gt;
&lt;td style=&quot;width: 60.6977%; height: 17px;&quot;&gt;클라우드 기반으로 유지보수 부담이 적음&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 13.0233%; height: 17px;&quot;&gt;&lt;b&gt; &lt;/b&gt;&lt;b&gt;분석 방식&lt;/b&gt;&lt;b&gt; &lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 26.279%; height: 17px;&quot;&gt;주로 사전 정의된 데이터 모델(큐브, InfoObject 등)을 사용&lt;/td&gt;
&lt;td style=&quot;width: 60.6977%; height: 17px;&quot;&gt;셀프서비스 데이터 모델링 및 다차원 분석을 지원&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 13.0233%; height: 17px;&quot;&gt;&lt;b&gt; &lt;/b&gt;&lt;b&gt;혁신 수준&lt;/b&gt;&lt;b&gt; &lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 26.279%; height: 17px;&quot;&gt;기존 OLAP 기능 중심의 전통적인 데이터 웨어하우스&lt;/td&gt;
&lt;td style=&quot;width: 60.6977%; height: 17px;&quot;&gt;클라우드 네이티브 기능으로, 최신 데이터 관리 및 분석 트렌드를 반영&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;&lt;b&gt;OLAP&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;&lt;b&gt;①&amp;nbsp;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;모든 영역이 데이터를 통해 모두 연결되어 있어, 영역 간 데이터가 불일치하면 연결된 다른 영역에서 오류를 발생시킬 수 있음&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;&lt;b&gt;②&amp;nbsp;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;데이터 흐름의 1) 가시성, 2) 일관성이 OLAP 시스템의 핵심&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;&lt;b&gt;③&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt; 새로운 tobe 시스템이 데이터 가상화를 지원하기에 항상 최신 데이터를 조회할 수 있고, 실시간 데이터 조회는 데이터가 즉시 의사결정에 반영될 수 있게 하여 큰 비즈니스 가치를 창출할 수 있음&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;&lt;b&gt;운영 측면에서 어떤 것들을 고민해볼 수 있을까?&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;기존 리포트를 비즈니스 중요도(예. KPI와의 연관성, 의사결정 기여도)에 따라 우선순위를 정하고, 해당하지 않는 리포트는 축소하거나, 재구성한다.&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;의사결정자와 주기적으로 논의하며 리포트의 구조와 활용 방식을 점검하는 과정 필요&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;b&gt;2.&lt;/b&gt;&lt;/span&gt;&lt;b&gt; 공부 방향성 (1) 기술&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;&lt;b&gt;양치기로 공부 X 직관적인 이해를 바탕으로 공부하자&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;b&gt;이론/기술을 '직관적으로' 이해하기&lt;/b&gt;&lt;br /&gt;: &lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;분석 방법론에 대한 공부는 복잡한 수식을 알려고 노력하는 것이 아니라, 분석 방법이나 파라미터 조정 방법등을 이해해서 새로운, 혹은 &lt;/i&gt;&lt;/span&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;u&gt;&lt;i&gt;적합한 분석과 모델링을 위한 '영감'을 갖는 것이 목적&lt;/i&gt;&lt;/u&gt;&lt;/span&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt; (공부할 때 기계적으로 지식을 집어넣고 이해만 하는 데에서 끝나는 것이 아니라, 어떻게 적용될 수 있을지 생각해봤어야 했다..)&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;b&gt;예시 1.&lt;/b&gt;&lt;br /&gt;회귀에서 Lasso 회귀는 L1규제라고 불리는 파라미터 값을 조정하면서 대다수의 변수가 무의미하다고 단정짓고, 유의미한 변수 몇 가지를 선택하는 방법론이다. 훈련 모델의 정확도가 떨어질 수 있는 리스크가 있지만, 모델의 복잡도를 낮추고 일반화된 모델의 성능을 높일 수 있다.&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;즉, L1규제는 '수많은 변수 중 많은 것들을 털어내고 몇 가지 확실한 변수만 골라낼 수 있는 방법&lt;/li&gt;
&lt;li&gt;&lt;b&gt;사례)&lt;/b&gt; 매주 발송되는 광고지면에 어떤 제품 카테고리를 비중 있게 싣는 게 좋을까? 라는 문제에 대해서, Lasso 회귀를 적용하여 &lt;b&gt;전단광고에 반응하는 고객의 방문율과 구매금액에 미치는 요인이 '계절 과일', '유제품' 두 가지임&lt;/b&gt;을 알 수 있었고, &lt;b&gt;결과를 현장에 실험적으로 적용하여&lt;/b&gt; 기존에 100가지 넘는 다양한 카테고리를 표시했던 광고에서 유의미한 두 가지 카테고리 게절 과일과 유제품만 상세하게 실은 결과, 매출이 증가하였다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;그저 &lt;/i&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;선형&amp;nbsp;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;회귀&lt;/i&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;의 단점을 보완해 범용성을 부여하기 위한 방법이라고만 생각했었는데,&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;u&gt;&lt;i&gt; 이게 어떤 상황에 적용될 수 있을까에 대한 고민을 깊게 해보지 않았었다&lt;/i&gt;&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;는 것을 깨달았다.&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #474747;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #474747;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;b&gt;예시 2.&amp;nbsp;&lt;/b&gt;&lt;span style=&quot;color: #474747;&quot;&gt;회귀계수는 X,Y의 공분산을 X의 분산으로 나눈 값이다.&lt;/span&gt;분자 X,Y의 공분산의 의미는, '두 변수 X와 Y가 어떻게 함께 변하는지' &amp;rarr; 즉 분자가 크면 X와 Y가 '함께' 많이 변한다는 의미, 기울기(회귀계수)가 커짐&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;u&gt;&lt;b&gt;분모인 X의 분산&lt;/b&gt;&lt;/u&gt;의 의미: 'Y의 변동성 중 X로 설명할 수 있는 부분'
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;u&gt;X의 분산이 크다.&lt;/u&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;X 값들이 넓게 퍼져있다.&lt;/li&gt;
&lt;li&gt;회귀분석에서는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;변동이 큰&lt;/b&gt;&lt;span style=&quot;color: #474747;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;X를 선호한다, 그래야 Y의&lt;/span&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;변동을 더 잘 추정&lt;/b&gt;&lt;span style=&quot;color: #474747;&quot;&gt;할 수 있고,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;효과가 더 분명&lt;/b&gt;&lt;span style=&quot;color: #474747;&quot;&gt;해지기 때문&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Y를 예측하는 데 더 많은 정보가 있다.&lt;/li&gt;
&lt;li&gt;표준오차가 감소함 (&lt;b&gt;*표준오차:&lt;/b&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;표본의 평균이 모집단 평균을 얼마나&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;u&gt;정확하게 추정&lt;/u&gt;&lt;span&gt;하는지=&lt;/span&gt;&lt;span&gt;표본&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;u&gt;평균들의 변동성&lt;/u&gt;&lt;span&gt;)&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt; x의 분산이 크면, 데이터가 x축에서 넓게 퍼져 있는 것이고, 더 많은 정보를 제공하면, 회귀계수의 불확실성이 줄어들어 표준오차가 감소하는 것 &lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;u&gt;&lt;b&gt;회귀식에서 절편&lt;/b&gt;&lt;/u&gt;의 의미: 베이스라인(기준 값)&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;독립변수가 모두 0일 때의 결괏값으로, 다른 모든 요인이 없었을 때의 값이므로 기준 값으로 이해할 수 있다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;*MMM(마케팅 믹스 모델링):&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;Y가 매출일 때 절편은 '기준 매출(성과)'가 된다.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;u&gt;모든 마케팅 활동이 이루어지지 않았을 때 기본적으로 기대할 수 있는 매출&lt;/u&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;u&gt;[&lt;/u&gt;= 브랜드 충성도, 제품의 자연스러운 수요, 시장에서의 기본적인 위치를 통해 얻어지는 매출) (회귀계수는 마케팅 활동 변수(X1, X2,...)의 기여도를 나타내는 계수)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;+추가&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;u&gt;&lt;b&gt;편향-분산 트레이드오프:&lt;/b&gt;&lt;/u&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;f(x)가 복잡할 수록 더 많은 데이터를 캐치할 수 있어 편향은 작아지나, 더 많은 데이터를 캐치하기 위해서 더 많이 이동해야 하므로 분산은 커지게 된다.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;예) 포화(회귀)모델:&lt;/b&gt; 모든 설명 가능한 변수와의 교호작용을 포함시킨 모델로, 데이터에 너무 완벽하게 맞추려고 하는 모델이다 보니, 데이터의 모든 세부적인 패턴과 노이즈까지 과도하게 반영이 된다. 훈련 데이터에서는 높은 성능을 보이지만, 테스트 데이터에서는 낮은 성능을 보이게 되는 전형적인 편향-분산 트레이드오프의 사례&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;span style=&quot;color: #474747;&quot;&gt;&lt;b&gt;2.&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #474747;&quot;&gt;&lt;b&gt; 공부 방향성 (2) 도메인&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #474747;&quot;&gt;&lt;i&gt;도메인 지식의 중요성&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;&lt;b&gt;매일 보는 데이터에 대한 이해 = 비즈니스에 대한 지식&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;데이터가 어떤 맥락에서 생성되고, 어떻게 활용되는지에 대한 깊이 있는 이해가 필요&lt;/li&gt;
&lt;li&gt;데이터는 그 자체로 완전한 정보를 제공하지 않음, 데이터가 생성된 비즈니스 프로세스와 배경을 알아야 함. 예를 들어 DC율에 대한 데이터라면, 다음과 같은 질문을 던질 수 있어야 함
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;DC율은 어떤 기준으로 설정되는가? 어떤 부서에서 어떤 목표를 기준으로 설정하는지?&lt;/li&gt;
&lt;li&gt;매출 목표를 달성하기 위해 할인율을 조정한 것인지, 사후정산으로 산정된 것인지? 중간에 조정 가능한지?
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;만약 사후정산 방식으로 산정된다면, 얼마나 효율적이었는지 평가할 수 있는 지표는 무엇일지&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;채널/제품별 DC율의 차이가 영업 전략에 어떤 영향을 미치는가?&lt;b&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;만약 배경을 모른다면, 데이터 패턴을 잘못 해석하거나 중요한 변수 간의 관계를 간과할 가능성이 높다.&lt;/li&gt;
&lt;li&gt;분석 결과 전달 시에도 현업 업무를 알고 있다면 비즈니스 니즈에 맞추어 전달할 수 있을 것&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;b&gt;3-1.&lt;/b&gt;&lt;/span&gt;&lt;b&gt; PI(Process Innovation): 기존 업무 방식의 효율화&lt;/b&gt;&lt;/h4&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;※ PI: 기존 프로세스를 분석하고 병목현상, 비효율성을 찾아내어 개선 방안을 설계하는 업무로, 그 과정에서 핵심 시스템을 업그레이드하는 등 디지털 기반의 업무 환경을 구축하고, 업무 자동화를 추진한다.결과적으로 생산성을 높이고 운영 비용을 줄이는 전략을 실행함&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;데이터 분석 자체로 뭔가를 바꿀 수는 없다. 뭔가 바꿔야한다는 생각을 갖게 해주는 터닝포인트가 될 수는 있지만, 분석 과제 결과가 바로 업무 방식을 바꾸기는 힘들다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;u&gt;&lt;i&gt;모호했던 현상이 데이터를 통해서 구체적으로 정의되는 과정&lt;/i&gt;&lt;/u&gt;&lt;/span&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;을 통해서 변화가 일어난다고 생각했는데, 그 과정 하나하나에 큰 의미를 두지 않는 느낌? 이 &lt;/i&gt;&lt;/span&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;u&gt;&lt;i&gt;중간 과정에서 발생하는 인사이트, 새로운 지표&lt;/i&gt;&lt;/u&gt;&lt;/span&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;같은 것들이 PI 관점에서는 중요하게 여겨지지 않는 것 같은 생각이 든다.. 근데 또 한편으로는 &lt;/i&gt;&lt;/span&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;u&gt;&lt;i&gt;액션을 취할 수 없는 데이터 분석은 무의미하다&lt;/i&gt;&lt;/u&gt;&lt;/span&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;는 말에 공감이 되기도 함&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;기술은 단순히 도구일 뿐이다
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;행사 계획을 세울 때 시뮬레이션을 해볼 수 있도록 대시보드에서 '직접 값을 입력했을 때 수식 결괏값이 바뀌는 기능'의 수요가 높았다.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;매개변수라는 기능을 알게 되어서 제품별로 한 가지 값을 입력하면 연결된 산식 결괏값이 바뀌는 화면을 만들었는데, 요구사항 자체가 애초에 잘못되었다는 것을 깨달았다. 엑셀에서도 수식으로 시뮬레이션해볼 수 있고, 그 수단만 다를뿐 아무것도 바뀌지 않았다.&lt;/li&gt;
&lt;li&gt;엑셀로 수식을 걸어 하던 작업을 대시보드에서 보다 &lt;s&gt;간단히&lt;/s&gt; 할 수 있지 않을까? (X)&lt;/li&gt;
&lt;li&gt;간단하다는 건 지금보다 수작업이 덜 들어가는 것일텐데, '값을 입력해서 결과를 확인하는 일'은 처음부터 끝까지 사람의 판단이 들어가기에 간단해질 수 없다. 사람의 판단이 들어가는 일은 수작업이 불가피하다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;상대방의 요구사항을 듣고 1) 구체화해보고, 2) 내가 구체화한 것의 의미가 상대방이 원했던 것과 동일한지 확인하고, 3) 기술적으로 가능한지 여부를 판단하고, 4) 안된다면 &lt;/i&gt;&lt;/span&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;&lt;b&gt;대안이 될 수 있는&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt; 방법은 무엇일지 단순히 제시하는 게 아니라, &lt;/i&gt;&lt;/span&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;u&gt;&lt;i&gt;데이터&lt;/i&gt;&lt;/u&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;u&gt;&lt;i&gt;&amp;harr;&lt;/i&gt;&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;u&gt;&lt;i&gt;비즈니스 지식을 주고받음으로써&lt;/i&gt;&lt;/u&gt;&lt;/span&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt; 연결점을 찾으려고 노력하며&amp;nbsp;&lt;/i&gt;&lt;/span&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;&lt;b&gt;함께 찾아가는&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt; 과정이 중요하고, 내가 흥미있는 영역이라고 느껴졌다.&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;b&gt;3-2.&lt;/b&gt;&lt;/span&gt;&lt;b&gt; 인과추론 입문: 실무에 필요한 데이터 사고&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;머신러닝의 한계와 인과추론&lt;/b&gt;&lt;br /&gt;: 머신러닝은 '만약' 값이 이렇게 바뀐다면 결과가 어떻게 될까?와 같은 질문에 답을 주지 못한다. 일부 변수들을 통제하면서 특정 변수의 효과를 확인하고 싶을 때, &lt;b&gt;원인과 결과 변수를 &lt;/b&gt;&lt;u&gt;&lt;b&gt;해석&lt;/b&gt;&lt;/u&gt;하는 데 관심이 있을 때에는 인과추론이 필요하다.&lt;br /&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;&amp;rarr; 현재 회사에서 필요한 답을 줄 수 있는 분석 방법론이 무엇인지 고민하던 와중, 인과추론을 위한 데이터 과학 책 서문에서 위와 같은 내용을 읽으며 내가 찾던 답이 여기에 있을 거라는 확신이 들었었었다.&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;&amp;rarr;&lt;/i&gt;&lt;/span&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;&amp;nbsp;하지만 공부하면 할수록 너무나 많은 시간과 노력이 들어가는 것에 비해, 결과가 지엽적이라고 해야하나 .. &lt;/i&gt;&lt;/span&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;&lt;b&gt;일반화하기 어려워&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt; 활용하기 위해서는 더욱 더 많은 시간이 필요할 것 같다는 생각이 들었다.&lt;/i&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;i&gt;&amp;nbsp;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;예) 추천시스템을 도입했을 때 기업 성과에 긍정적인 영향을 주는가?&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;857&quot; data-origin-height=&quot;483&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/toWtB/btsLaJZUmUl/8t8EEXjJ0TUK4OkLNNTTzK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/toWtB/btsLaJZUmUl/8t8EEXjJ0TUK4OkLNNTTzK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/toWtB/btsLaJZUmUl/8t8EEXjJ0TUK4OkLNNTTzK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtoWtB%2FbtsLaJZUmUl%2F8t8EEXjJ0TUK4OkLNNTTzK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;667&quot; height=&quot;376&quot; data-origin-width=&quot;857&quot; data-origin-height=&quot;483&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;위와 같은 질문에 대한 답을 내려면, 추천시스템을 도입할지 말지, 실제 서비스에 적용할지 말지에 대한 결정은 인과추론 문제가 된다.&lt;/li&gt;
&lt;li&gt;위의 사진에서 보면 추천시스템을 통해서 상품을 구입한 액션의 75%는 추천 시스템이 없었어도 일어났을 것이라는 사실을 알아냈고, &lt;b&gt;그렇다면 나머지 25%(추천시스템을 통해 발생한 매출)가 추천시스템을 도입한 비용을 상쇄하는지, 회수할 수 있는지 확인&lt;/b&gt;해볼 필요가 있다. &lt;s&gt;&quot;추천시스템의 정확도를 높인다 = 추가 매출이 발생한다&quot;&lt;/s&gt; 가 성립하지 않는다는 사실을 인지해야 한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt; &lt;/i&gt;&lt;/span&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;&amp;rarr;&amp;nbsp;&lt;/i&gt;&lt;/span&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt; 학부 시절에는 내가 분석한 결과가 얼마나 큰 비즈니스 임팩트가 있을지에 대한 고민은 해보지 않았다. 기술 자체에 초점을 맞춰 평가 결과가 높으면 좋은 것이었겠지만, 기업에서는 그래서 &lt;/i&gt;&lt;/span&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;&lt;b&gt;그 분석이 얼마나 기업의 성과에 &lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;u&gt;&lt;i&gt;&lt;b&gt;영향&lt;/b&gt;&lt;/i&gt;&lt;/u&gt;&lt;/span&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;&lt;b&gt;을 주었는지&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;가 더 중요하다.&amp;nbsp;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt; &lt;/i&gt;&lt;/span&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;&amp;rarr;&amp;nbsp;&lt;/i&gt;&lt;/span&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt; 특히 &lt;/i&gt;&lt;/span&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;&lt;b&gt;회사에서는 분석 결과가 Actionable 한지&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;, 성과에 기여할 수 있도록 뭔가를 바꿀 수 있는지 여부를 중요하게 여긴다. 그걸 판단하면서 분석 과제를 기획하고 수행해야하는데, 그게 제일 어려운 것 같다.&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;b&gt;3-3.&lt;/b&gt;&lt;/span&gt;&lt;b&gt; 비즈니스 분석: 데이터로 가치를 만드는 과정&lt;/b&gt;&lt;/h4&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;i&gt;업무에서 내가 좋아하는 영역 찾기&lt;/i&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;&lt;b&gt;BA와 DA의 차이는 뭘까?&lt;/b&gt;&lt;br /&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;내가 느끼기에는 데이터 분석의 전반적인 과정을 쪼갰을 때, 비즈니스 분석은 &lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;1) 과제를 기획할 때 분석 결과가 비즈니스 임팩트가 큰지 고려하는 과정, &lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;2) 결과가 활용 가능하고 actionable하도록 결과를 다듬는 과정 &lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;즉, 맨 첫 단계와 맨 마지막 단계에 집중하는 것 같고, 데이터 분석은 분석 과정 자체에 더 집중하는 느낌&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;i&gt;내 생각을 기반으로 GPT가 그려준 그림(▼)&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1249&quot; data-origin-height=&quot;564&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bgktSk/btsLbywADxO/DKlWruZZSxeIH7DlJvxK61/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bgktSk/btsLbywADxO/DKlWruZZSxeIH7DlJvxK61/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bgktSk/btsLbywADxO/DKlWruZZSxeIH7DlJvxK61/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbgktSk%2FbtsLbywADxO%2FDKlWruZZSxeIH7DlJvxK61%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;680&quot; height=&quot;307&quot; data-origin-width=&quot;1249&quot; data-origin-height=&quot;564&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;&lt;b&gt; &lt;/b&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #555555;&quot;&gt;&lt;b&gt;✅&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt; 비즈니스 분석가(BA)&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;중점 영역:&lt;/b&gt; 비즈니스 문제 정의와 솔루션 설계&lt;/li&gt;
&lt;li&gt;&lt;b&gt;주요 역할&lt;/b&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;문제 정의:&lt;/b&gt; 분석을 통해 해결하고자 하는 비즈니스 문제 정의&lt;/li&gt;
&lt;li&gt;&lt;b&gt;가설 설정:&lt;/b&gt; 데이터 분석을 통해 검증할 가설과 목표 설정&lt;/li&gt;
&lt;li&gt;&lt;b&gt;전략적 의사결정:&lt;/b&gt; 분석 결과를 바탕으로 Actionable 한 인사이트를 제안&lt;/li&gt;
&lt;li&gt;&lt;b&gt;비즈니스 임팩트 평가(고려):&lt;/b&gt; 결과가 실제 비즈니스 목표(매출 증가, 비용 절감)에 미칠 영향을 평가&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;주요 질문&lt;/b&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;왜 분석해야 하는가?&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;어떤 방식으로 비즈니스 가치를 창출할 것인가?&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;이 문제를 해결하면 비즈니스에 어떤 가치를 줄 수 있는가?&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;분석 결과를 어떻게 활용하고 의사결정에 반영할 것인가?&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;고민 영역&lt;/b&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;조직의 자원을 어떻게 효율적으로 활용할 수 있을까?&lt;/li&gt;
&lt;li&gt;어디에 우선순위를 두어야 할까?&lt;/li&gt;
&lt;li&gt;목표를 어떻게 설정해야할까?&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt; &lt;/b&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #555555;&quot;&gt;&lt;b&gt;✅&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt; 데이터 분석가(DA)&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;중점 영역: 데이터를 기반으로 한 분석 수행/모델링&lt;/li&gt;
&lt;li&gt;주요 역할
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;데이터 수집 및 정제:&lt;/b&gt; 분석에 적합한 데이터 수집/클렌징&lt;/li&gt;
&lt;li&gt;&lt;b&gt;분석 및 시각화:&lt;/b&gt; 데이터를 분석하고, 트렌드와 패턴을 도출&lt;/li&gt;
&lt;li&gt;&lt;b&gt;모델링:&lt;/b&gt; 머신러닝, 통계적 모델링 등 심화 분석 수&lt;/li&gt;
&lt;li&gt;&lt;b&gt;결과 해석:&lt;/b&gt; 분석 결과를 기반으로 데이터 중심의 인사이트 제공 (&lt;s&gt;이 결과를 현업 담당자에게 다이렉트로 전달할 경우 &lt;b&gt;그래서 뭐?&lt;/b&gt;라는 반응을 보일 수 있음,,&lt;/s&gt;)&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;rarr; 데이터에 대한 지식 + BA&lt;/b&gt;&lt;br /&gt;: 데이터 기반 가설설정 / Actioanble Insight 강화&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;비즈니스 문제 정의 시, 실제 데이터의 구조와 가능성을 염두에 두고 &lt;u&gt;실행 가능한 가설 설정&lt;/u&gt; 가능 (비즈니스에 대한 지식만 있는 현업이 데이터 과제를 기획한다고 하면, 데이터를 아예 모르는 경우 어떤 분석이 가능할지에 대한 감 조차 오지 않기 때문에 비현실적인 과제가 되어버림)&lt;/li&gt;
&lt;li&gt;분석 결과가 실제 비즈니스에서 실행으로 이어질 수 있도분석의 '한계'를 이해하고 현실적인 적용 방안 설계 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;&amp;rarr; 비즈니스에 대한 도메인 지식이 부족해서 &lt;/i&gt;&lt;/span&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;&lt;b&gt;활용가능하지 않아 분석 결과로 아무런 조치를 취할 수 없는 과제&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;를 수행한 경험이 있다. 행사 진행/미진행 시 성과 차이로 베이스라인을 구해서 특정 채널의 특정 행사에 대한 효과를 제품별로 도출했는데, 알고보니 &lt;/i&gt;&lt;/span&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;&lt;b&gt;이 채널에서는 우리가 을이라서 행사 진행 대상 제품에 대한 결정권이 없었다.&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;&amp;nbsp;그래서 해당 채널에 특정 제품을 행사 대상으로 넣어달라고 제안은 할 수 있겠지만 영향력이 크지 않으니 &lt;/i&gt;&lt;/span&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;&lt;b&gt;차라리 우리에게 결정권이 있는 유형의 행사를 분석하는 게 나았을 것&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;이다. 분석 방법은 되게 복잡해서 시간이 많이 소요됐는데 &lt;/i&gt;&lt;/span&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;&lt;b&gt;활용하기 힘든 결과가 되어 현업 반응이 매우 부정적&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;이었다. 이 경험을 통해서 도메인 지식의 중요성을 느끼고 해당 부분을 사전에 고려하지 못한 내 부족함에 앞으로의 업무 방향성에 대한 고민을 해보게 되었다.&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;b&gt; &lt;/b&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #555555;&quot;&gt;&lt;b&gt;✅&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt; 비즈니스 분석에서 관심 있는 두 단계&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;u&gt;&lt;b&gt;1) 기획 단계&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;: 분석 결과가 비즈니스 임팩트를 최대화할 수 있도록 목표와 방향성을 설정하고 과제를 정의하는 과정&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;u&gt;&lt;b&gt;2) 결과 전달 단계&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;: 분석 결과를 실질적으로 활용 가능하고 Actionable하게 다듬어 의사결정과 실행으로 연결하는 과정&lt;br /&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;ex. '행사 영향도'를 도출했다면, 그대로 현업에 전달하는 게 아니라, 그래서 행사 할인율을 몇 %로 해야 하는지, 몇 개를 판매하는 것을 목표로 설정해야 행사 효과가 극대화되는지, 비용이 효율적으로 투입되는지에 대한 값을 도출하기 위한 계산식을 만들어서 행사를 계획하고 실행하는 주체인 현업이 액션을 취할 수 있는 결과를 전달하는 것 (실제로 결과를 현업에 보여줬을 때 활용 가능하려면 이러한 정보가 되면 더 좋을 것 같다는 의견에 내가 도출한 결과를 한 번 더 계산하여 새로운 산출식을 통해서 더 나은 결과물로 만들어진 경험이 있어서,이 마지막 과정의 중요성을 체감하였다.)&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;b&gt; &lt;/b&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #555555;&quot;&gt;&lt;b&gt;✅&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt; &lt;/b&gt;&lt;b&gt;BA의 핵심 역량과 목표&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;3-3-1.&lt;/b&gt;&lt;/span&gt;&lt;b&gt; &lt;/b&gt;&lt;b&gt;가설 설정&lt;/b&gt;&lt;br /&gt;&quot; [개입(액션)]을 구현하면, [특정한 행동 논리]로 인하여&amp;nbsp;[목표 지표]를 기반으로 측정한 [비즈니스 목표]를 달성할 수 있다.&quot;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;&lt;b&gt;특정한 행동논리:&lt;/b&gt; 구현한 개입(기술)이 Actionable한지?&lt;/li&gt;
&lt;li&gt;&lt;b&gt;목표 지표:&lt;/b&gt; &lt;span style=&quot;color: #333333;&quot;&gt;성과 지표가 Measurable한지? 즉,&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;u&gt;측정 가능한 목표 지표는 '중간 목표'&lt;/u&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;라고 생각할 수 있음&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;비즈니스 목표:&lt;/b&gt; &lt;span style=&quot;color: #333333;&quot;&gt;성과 지표가 비즈니스 목표로 연결되는지?&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;ex)&lt;/b&gt;&lt;br /&gt;&quot; [구매 7일 후 리뷰 알림톡]을 구현하면, [재방문에 대한 동기 부여]로 인하여 [리텐션 지표 개선]을 기반으로 측정한 [ms 극대화]를 달성할 수 있다.&quot;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;ex2)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&quot; [지역별 차별화된 가격 정책]을 구현하면, [&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;소비자의 가격 민감도를 낮추고 자사 제품에 대한 가치를 재인식시키는 효과]로 인하여 [MS 개선]을 기반으로 측정한 [시장 점유율 극대화]를 달성할 수 있다.&quot;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt; 3-3-2.&lt;/b&gt;&lt;/span&gt;&lt;b&gt; 조직의 의사결정 수준을 높이는 일&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;모든 구성원이 비즈니스 문제를 해결하기 위한 데이터를 활용할 수 있는 환경을 만듦&lt;/li&gt;
&lt;li&gt;현재의 비즈니스 상황, 필요한 정보를 직관적으로 확인할 수 있는 대시보드를 만듦&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;u&gt;※ 높은 의사결정 수준이란?&lt;/u&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;투입된 input 대비 output이 높아지도록 만드는 일&lt;/li&gt;
&lt;li&gt;의사결정이 필요한 영역(예시)
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;프로모션 할인율을 20%로 하는 것이 좋을지, 30%로 하는 것이 좋을지&lt;/li&gt;
&lt;li&gt;새벽배송 주문 마감 시간을 22시로 하는 것이 좋을지, 01시로 하는 것이 좋을지&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;위와 같은 의사결정을 하기 어려운 이유는,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;수많은 '매개변수'가 포함&lt;/b&gt;되기 때문
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;프로모션이 각각 20%, 30%일 때의 매출을 정확하게 예측할 수 있다면, 매출과 이익이 극대화되는 지점을 선택할 수 있을 것&lt;/li&gt;
&lt;li&gt;하지만 현실에서는 경쟁사 프로모션, 소비 심리 등 매출에 영향을 미치지만, 측정/수집이 불가능한 요소가 무수히 많음&lt;/li&gt;
&lt;li&gt;이러한 요소들을 최대한 모아서 예측 모델로 의사결정을 하는 게 최선은 아닐 것&lt;/li&gt;
&lt;li&gt;즉, 예측 모델의 정확도를 1% 올리는 데 많은 시간을 쏟기보다는, 도메인에 대한 이해를 높여서 의사결정을 하는 것이 나을 것&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;3-3-3.&lt;/b&gt;&lt;/span&gt;&lt;b&gt; E2E(End-to-End) 프로세스의 이해와 최적화&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;: E2E 프로세스란, 비즈니스의 시작부터 종료 단계까지 전 과정을 이해하고 연결하는 프로세스로, &lt;u&gt;개별 작업이나 부서의 역할에 국한되지 않고 전체적인 관점에서 업무 흐름을 이해하고 최적화&lt;/u&gt;하는 데 초점이 맞춰져 있음&lt;br /&gt;&lt;br /&gt;ex. 제조업의 E2E 프로세스 예시&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;수요 예측 및 계획(S&amp;amp;OP)&lt;i&gt; *S&amp;amp;OP: Sales&amp;amp;Operation Planning, 판매 및 생산 계획&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;생산 계획 (생산)&lt;/li&gt;
&lt;li&gt;자재 발주 (구매)&lt;/li&gt;
&lt;li&gt;제품 출고 및 배송 (물류)&lt;/li&gt;
&lt;li&gt;매출 마감 및 수익성 분석 (재무)&lt;/li&gt;
&lt;/ol&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;연계 분석/개선 기회 발굴&lt;/b&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;E2E 프로세스의 각 단계에서 생성되는 데이터를 &lt;u&gt;어떻게 엮어서 함께 분석해야할지&lt;/u&gt; 알 수 있음&lt;/li&gt;
&lt;li&gt;마지막 재무 및 KPI 분석에 대한 지식은 매출, 비용, 수익성 등 &lt;u&gt;비즈니스 지표와 연결하여 분석 결과의 가치를 극대화&lt;/u&gt;할 수 있&lt;/li&gt;
&lt;li&gt;영역별 프로세스 이해를 통한 개선 기회 발견 가능&lt;/li&gt;
&lt;li&gt;전체 업무 흐름을 이해함으로써 병목 현상, 비효율적인 단계를 식별할 수 있다.&lt;/li&gt;
&lt;li&gt;프로세스 내에서 불필요한 작업, 반복적인 단계를 제거하거나 자동화할 수 있는 기회를 발견할 수 있다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;데이터 기반 과제 기획&amp;nbsp;&lt;/b&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;프로세스 전반에서 발생하는 주요 데이터(수요, 생산량, 재고 수준)를 파악하여 분석에 필요한 핵심 데이터를 효율적으로 수집할 수 있다.(어느 영역에서 발생하는 데이터인지 알기 때문에)&lt;/li&gt;
&lt;li&gt;비즈니스 임팩트 예측 가능: 특정 프로세스를 개선하게 되면 다른 단계에 어떤 영향을 미치는지 알고 있기 때문에 비즈니스적으로 어떤 영향을 미칠지 인지하고 어떤 문제를 방지할 수 있는지 판단할 수 있음&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;부서 간 협업 측면&lt;/b&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;공통 언어 습득: 각 부서 간의 요구와 우선순위를 이해하여 더 원활한 협업 가능&lt;/li&gt;
&lt;li&gt;책임 소재 명확화: 프로세스 단계별로 각 부서의 역할과 책임을 명확히 이해하면, 문제 발생 시 더 빠르게 해결책 제안 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;프로젝트 개선 프로젝트의 실행력 증대&lt;/b&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;비즈니스 임팩트가 큰 과제 식별&lt;/li&gt;
&lt;li&gt;성과 추적 가능: 개선된 프로세스가 실제로 비즈니스 임팩트를 얼마나 주었는지 측정 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;&lt;b&gt;습득한 지식을 바탕으로 수행할 수 있는 프로젝트에는 무엇이 있을까&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;① &lt;/i&gt;&lt;/span&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;u&gt;&lt;i&gt;프로세스 개선&lt;/i&gt;&lt;/u&gt;&lt;/span&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;: ex.생산 및 물류 프로세스에서 병목 구간을 파악하여 개선&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;② &lt;/i&gt;&lt;/span&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;u&gt;&lt;i&gt;비용 시뮬레이션&lt;/i&gt;&lt;/u&gt;&lt;/span&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;: 비용 변화가 수익성에 미치는 영향 분석&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;③ &lt;/i&gt;&lt;/span&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;u&gt;&lt;i&gt;패턴 분석&lt;/i&gt;&lt;/u&gt;&lt;/span&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;: 비효율적이거나 반복적인 패턴 발견 (비효율적인 패턴이라는 사실을 현업이 아닌 내가 알 수 있을까?.?)&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;④ &lt;/i&gt;&lt;/span&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;u&gt;&lt;i&gt;프로세스 자동화&lt;/i&gt;&lt;/u&gt;&lt;/span&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;: 자동화될 수 있는 프로세스가 있다면 자동화하여 업무 효율 개선&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;⑤ &lt;/i&gt;&lt;/span&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;u&gt;&lt;i&gt;재고 최적화&lt;/i&gt;&lt;/u&gt;&lt;/span&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;: 안전 재고 관리(적합한 수준 설정), 재고 이동 최적화, 실시간 재고 모니터링&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;⑥ &lt;/i&gt;&lt;/span&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;u&gt;&lt;i&gt;위험 감지 대시보드 운영&lt;/i&gt;&lt;/u&gt;&lt;/span&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;: 리스크 요인을 실시간으로 감지해 조기 대응 가능&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;s&gt;&lt;i&gt;그 와 KPI 관련된 현황 분석(비용 절감, 클레임 데이터 ,,)도&amp;nbsp; 있지만 그렇게 흥미로워 보이지는 않는다&amp;nbsp;&lt;/i&gt;&lt;/s&gt;&lt;/span&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt; &lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;&lt;b&gt;접근 방식의 전환&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;알고 있는 분석 방법론이 한정적이고, 이론은 많지만 비즈니스에 적용할 수 있는 방법이 적다고 느껴짐&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;&amp;rarr; 비즈니스 문제 원인에 대한 해결책을 제시할 수 있는 인과추론에 대한 학습을 해보았으나, 실험 환경을 설계되어 있어야(혹은 설계해야)한다는 점에서 어려움을 겪음&lt;/i&gt;&lt;/span&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;&amp;nbsp;&lt;/i&gt;&lt;/span&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;&amp;rarr; 비즈니스의 맥락과 문제 해결 중심으로&amp;nbsp;&lt;/i&gt;&lt;/span&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;u&gt;&lt;i&gt;접근 방식을 전환&lt;/i&gt;&lt;/u&gt;&lt;/span&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;해야 한다.&lt;/i&gt;&lt;/span&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;&amp;nbsp;&lt;/i&gt;&lt;/span&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;문제해결 중심의 학습 방법론에는 뭐가 있을까? 에 대한 답을 얻는 게 내년 목표 ,,&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;span style=&quot;color: #474747;&quot;&gt;&lt;b&gt;4.&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #474747;&quot;&gt;&lt;b&gt;&amp;nbsp;총정리&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt; &lt;/b&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #555555;&quot;&gt;&lt;b&gt;✅&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt; 내 성향&amp;amp;흥미&amp;amp;적성&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;&lt;b&gt;GPT랑 정리하기&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;: 전체를 설계하고 구조화하며, 전략적으로 접근하는 거시적 사고 유형으로, 조직의 리더십, 프로젝트 매니지먼트, 프로세스 설계, 비즈니스 전략과 같은 역할에서 빛을 발할 수 있다고 한다..~~&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;시스템적 사고&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;여러 요소들이 어떻게 상호작용하여 전체 시스템을 구성하는지 이해&lt;/li&gt;
&lt;li&gt;복잡한 프로세스를 단순화하고, 추상적인 현상이나 정의되지 않은 개념을 체계적으로 풀어내서 큰 그림에서 문제를 파악하여 개선점을 찾는 일&lt;/li&gt;
&lt;li&gt;그리고 그 개념을 누구나 이해할 수 있도록 구체화하는 역량&lt;/li&gt;
&lt;li&gt;E2E 프로세스처럼 여러 부서와 단계가 얽힌 복잡한 과정을 체계적으로 이해하고 구조화&lt;/li&gt;
&lt;li&gt;복잡한 데이터와 현상을 단순화하여 조직 내 이해관계자들에게 전달&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;전략적 사고&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;세부적인 디테일보다는 전체적인 목표를 설정하고, 이를 달성하기 위한 거시적인 방향을 설계하는 데 집중&lt;/li&gt;
&lt;li&gt;프로세스 전반에서 '어떤 단계가 전체 비즈니스에 가장 큰 영향을 미칠까?'를 고민하고 최적화 방안을 설계&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;넓고 얕은 분석 성향&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;여러 주제를 폭넓게 다룰 수 있지만, 특정 문제를 깊게 파고드는 데서는 어려움을 느낌&lt;/li&gt;
&lt;li&gt;여러 문제를 연결하고 맥락을 통합하는 데 강점, 세부적인 문제보다는 여러 문제 간의 관계를 파악해 통합적이니 해결책을 제시&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;조율자&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;다양한 이해관계자 간의 커뮤니케이션을 조율하고, 전체적인 방향성을 맞추는 데 능숙&lt;/li&gt;
&lt;li&gt;협업과 통합적인 접근 방식을 통해 조직 내 조화를 이끌어 냄&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;논리적으로 정리하고 설득하기&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;데이터를 통해 자신의 생각을 검증하고, 논리적으로 정리하여 타인을 설득하는 영역에 흥미를 느낌&lt;/li&gt;
&lt;li&gt;데이터 인사이트를 바탕으로 전략을 수립하고, 의사결정권자들을 설득하는 역할&lt;/li&gt;
&lt;li&gt;분석 결과를 시각화하거나, 서사적으로 풀어내어 비즈니스 임팩트 도출&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt; &lt;/b&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #555555;&quot;&gt;&lt;b&gt;✅&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt; 성향을 기반으로 보완할 점&lt;/b&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;u&gt;세부적인 디테일 보완&lt;/u&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;분석을 심화할 때 협업을 통해 디테일을 보강&lt;/li&gt;
&lt;li&gt;특정 문제에 집중하는 습관 기르기 - 문제를 세분화하고, 각각의 세부적인 원인을 탐구하는 연습&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;u&gt;깊이 있는 분석 훈련&lt;/u&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;특정 영역을 깊이 파고드는 연습을 통해 세부적인 통찰력 키우기&lt;/li&gt;
&lt;li&gt;하나의 문제를 설정하고, '왜?'를 반복적으로 질문하며 근본적인 원인을 탐구하는 연습&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #555555;&quot;&gt;&lt;b&gt;✅&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt; 올해 아쉬운 점 - &lt;/b&gt;&lt;b&gt;데이터 기반 실험과 검증과정의 부재 &lt;/b&gt;&lt;b&gt;(&lt;/b&gt;&lt;i&gt;&lt;b&gt;대시보드의 한계)&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;u&gt;A. 대시보드만 제공한 경우&lt;/u&gt;&lt;br /&gt;: 특정 지역의 매출이 낮다는 사실을 대시보드로 보고했다면, '매출이 낮은 지역에 프로모션을 강화해야하나?'라고 추측하고, 실행으로 이어질 수 없음&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;u&gt;B. 실험 설계를 추가한 경우&lt;/u&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;분석 결과: 특정 지역의 매출이 낮음을 발견&lt;/li&gt;
&lt;li&gt;가설 설정: 프로모션 강화가 매출 증가로 이어질 것이다&lt;/li&gt;
&lt;li&gt;실험 설계: 해당 지역 매장의 일부에 할인 쿠폰을 제공하고, 나머지는 그대로 유지&lt;/li&gt;
&lt;li&gt;결과 검증: 할인 쿠폰 제공 매장에서 매출이 15% 증가한 것을 데이터로 확인&lt;/li&gt;
&lt;li&gt;확장: 프로모션 전략을 모든 매장으로 확대 적용&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt; &amp;lt; 가설 도출 &amp;rarr; 실험 설계 &amp;rarr; 결과 분석 &amp;rarr; 확장 및 최적화&amp;gt;로 이어지는 프로세스의 체계화 필요&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&amp;rarr; 시각화한 대시보드만 던져주고 데이터 기반 의사결정을 해라, 업무 방식을 바꾸라고 하면 당연히 현업에서의 활용도가 낮을 것&lt;br /&gt;&amp;rarr;&amp;nbsp; 대시보드와 실험 결과를 연결하는 단계가 필요하다.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;b&gt;※ 실험이 중요한 이유&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;데이터 분석이 유의미함을 검증하여 결과의 신뢰성을 확보할 수 있음 (기존 방식의 변화를 이끌어낼 수 있음)&lt;/li&gt;
&lt;li&gt;비즈니스 리스크를 최소화할 수 있음 (분석의 신뢰성이 확보되지 않은 상태에서 전사적으로 바로 도입하는 것은 불가능)&lt;/li&gt;
&lt;li&gt;의사결정 지원: 의사결정권자에게 구체적인 데이터와 &lt;b&gt;&quot;결과&quot;&lt;/b&gt;를 제공하여 실행 가능성을 높임&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt; &lt;/b&gt;&lt;b&gt;※&lt;/b&gt;&lt;b&gt; 비즈니스 딜레마&lt;/b&gt;&lt;br /&gt;: 비즈니스 효과를 측정하려면 실행해야 하지만, 실행 전에 그 효과를 확신할 수 없다는 딜레마는 데이터 기반 의사결정 과정에서 매우 일반적인 상황&lt;br /&gt;&amp;rarr; 이러한 상황에서 실험 및 검증 과정이 중요한 역할을 할 수 있다. 실행을 먼저 하되, 국소적으로 실험을 진행하여 실행의 리스크를 를 제한된 범위로 축소하여 안전하게 새로운 방안을 테스트할 수 있고, 효과의 신뢰성을 데이터로 입증할 수 있음&lt;br /&gt;&lt;u&gt;&lt;b&gt; &lt;/b&gt;&lt;/u&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;u&gt;&amp;rarr;&lt;/u&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;u&gt; 즉, 실험은 분석 결과를 실행 가능한 형태로 구체화하고, 성과로 이어지는 중간다리 역할을 한다.&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;ex. 실험 및 검증 과정이 추가된 프레임워크&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;목표 정의: 실험을 통해 해결하려는 비즈니스 문제 설정&lt;/li&gt;
&lt;li&gt;가설 설정: 데이터 기반 가설 수립&lt;/li&gt;
&lt;li&gt;&lt;u&gt;실험군/통제군 설정: 실험군(새로운 방식 적용)과 통제군(기존 방식 적용)을 나눔 (ex. 특정 고객 그룹만 할인 적용)&lt;/u&gt;&lt;/li&gt;
&lt;li&gt;KPI 및 측정 방법 설정: 실험 결과를 평가할 수 있는 KPI 정의&lt;/li&gt;
&lt;li&gt;실행 방안 검증 &amp;amp; 결과의 지속적인 개선&lt;/li&gt;
&lt;li&gt;성공사례 확산&lt;/li&gt;
&lt;/ol&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;&lt;i&gt;&lt;b&gt; &lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&lt;b&gt;올해 잘한 일&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&lt;b&gt;1. 스터디 한 것&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #666666;&quot;&gt;: SQL은 다 까먹은 것 같긴하지만..^^ 인과추론을 경험해봐서 좋았다&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&lt;b&gt;2. 운동 시작한 것&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #666666;&quot;&gt;: 재미도 적당히 있고 성취감도 있고 꾸준히 할 수 있는 운동인 것 같아 계속 꾸준히 하려고 한다&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&lt;b&gt;3. 하고 있는 일의 의미를 이해하려고 노력한 것&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt; (뭐든 생각하기 나름~)&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #666666;&quot;&gt;:주입식 교육의 폐해인지 뭔지 효율을 중시하는 기계적인 업무 성향을 가지고 있다는 것을 깨닫고(..) 최대한 주어진 일에 주인 의식을 가지고 주도적으로 하려고 노력 중..~~&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&lt;b&gt;4. 답답할 때 일기 쓴 것&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #666666;&quot;&gt;: 내가 왜 답답했는지, 어떤 점에서 그런 감정을 느꼈는지 알 수 있어서 비슷한 일이 생겼을 때 대처하는 방식이 조금이나마 나아지는 것 같아 앞으로도 종종 쓰려고 한다. 역시 기록하지 않으면 남는 게 없다&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&lt;b&gt;내년 계획&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&lt;b&gt;1. 기록 부지런히 하기&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt; (특히 생각) (월 1회)&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #666666;&quot;&gt;: 연초에 호기롭게 매일 매일 업무한 것, 느낀 점 등을 기록하려고 하다가 주 단위로 줄였다가, 월 단위로 기록하다가 흐지부지 됐는데 이번엔 월 1회만 꾸준히 하는걸로~.~&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&lt;b&gt;2. 현업 업무 용어/프로세스 이해&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #666666;&quot;&gt;: 내가 깊게 파고들고 싶은 영역이 어디인지 찾을 수 있었으면 좋겠다. 지금은 전체적으로 얕게만 알고 있어서 나만의 전문 도메인 영역(?)이 내년 말에 기록할 때 즈음에는 있었으면~&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&lt;b&gt;3. 업무적으로 하고 싶은 프로젝트 구체적으로 생각해보기&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt; (가능하면 수행까지..!)&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #666666;&quot;&gt;: 예를 들어 데이터 기반 실험과 검증 과정을 업무에 도입하고 싶다면, 스스로 작은 실험을 진행하고 성과를 입증하여 제안을 해볼 수 있을텐데, 그 제안이 구체적이려면 혼자서 생각을 많이 해봐야 할 것 같다&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&lt;b&gt;4. 운동 꾸준히 하기&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt; (주 3-4회)&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&lt;b&gt;5. 재테크 공부 주기적으로 하기&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt; (월 1-2회)&lt;/span&gt;&lt;/p&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>계획과 회고</category>
      <author>위나</author>
      <guid isPermaLink="true">https://noelee.tistory.com/252</guid>
      <comments>https://noelee.tistory.com/252#entry252comment</comments>
      <pubDate>Wed, 25 Dec 2024 16:59:21 +0900</pubDate>
    </item>
    <item>
      <title>[1~2] 비즈니스 분석 강의 리뷰</title>
      <link>https://noelee.tistory.com/250</link>
      <description>&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;비즈니스 분석의 역할과 가치&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;분석을 하지 않는 회사의 공통점&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;유저 수는 늘어나지만, &lt;b&gt;이익&lt;/b&gt;은 늘어나지 않음&lt;/li&gt;
&lt;li&gt;프로젝트 수는 늘어나지만, &lt;b&gt;손익&lt;/b&gt;이 개선되지 않음&lt;/li&gt;
&lt;li&gt;&lt;b&gt;매출&lt;/b&gt; 증감의 이유를 모름 (특히 증가하는 이유를 찾지 않음)&lt;/li&gt;
&lt;li&gt;회사의 중단기&lt;b&gt; 목표&lt;/b&gt;를 숫자로 표현하지 못함&lt;/li&gt;
&lt;li&gt;신규 프로젝트의 정량적 &lt;b&gt;목표&lt;/b&gt;를 세우지 못함&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;rarr; 이익, 손익, 매출, 정량적 목표(KPI) .. 회계에 대한 지식이 없다.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;b&gt;비즈니스를 이해하는 법&lt;/b&gt;&lt;br /&gt;: 예를 들어 제조업에서 장비 대여 ▶ 재료 준비 ▶ 환경 세팅 ▶ 제작 ▶ 판매 ▶ 결제 등과 같은 순서를 구조화하면, 각각의 단계에서 도출되는 관리 항목, KPI를 알 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;602&quot; data-origin-height=&quot;256&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bbrYft/btsJ4gcXEqd/l2KEdbHWAMyYCEe0edzPj0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bbrYft/btsJ4gcXEqd/l2KEdbHWAMyYCEe0edzPj0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bbrYft/btsJ4gcXEqd/l2KEdbHWAMyYCEe0edzPj0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbbrYft%2FbtsJ4gcXEqd%2Fl2KEdbHWAMyYCEe0edzPj0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;602&quot; height=&quot;256&quot; data-origin-width=&quot;602&quot; data-origin-height=&quot;256&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;✅전략 방향성 이해&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;예를 들어 제품 단가를 올리는 전략을 세운다면,&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;b&gt;1.&lt;/b&gt;&lt;br /&gt;원가/ARPU(유저 1인당 평균 수익) 상승&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;▶&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt; 유저 수 줄어듦 &amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;▶&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt; 매출은 유사함 &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;▶&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; 왜..? 이유를 찾지 못함 &lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;(Bottom Up,&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;X&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;)&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt; &lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;b&gt;2.&lt;/b&gt;&lt;br /&gt;고급화 전략을 취했을 때에는 원가/ARPU가 상승하고, 유저수는 떨어지니까&amp;nbsp;&lt;br /&gt;▶&amp;nbsp; &lt;u&gt;&lt;b&gt;△P가 △Q보다 크면&lt;/b&gt;&lt;/u&gt; (가격 증가분보다 판매수량 증가분이 더 크면) &lt;u&gt;&lt;b&gt;매출은 늘어나겠다&lt;/b&gt;&lt;/u&gt;고 생각할 수 있다. &lt;b&gt;(Top Down,&lt;/b&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;O)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;✅사업구조를 이해하는 순서&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;ⓐ 사업구조 &amp;rarr; ⓑ 매출&lt;/b&gt;&lt;br /&gt;&lt;b&gt;ⓑ 매출&lt;/b&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;b&gt;&amp;harr;&lt;/b&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;b&gt;&amp;nbsp;비용&lt;/b&gt;&lt;br /&gt;&lt;b&gt;ⓑ 매출&lt;/b&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;b&gt;&amp;rarr;&lt;/b&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;b&gt;ⓓ 마진&lt;/b&gt;&lt;br /&gt;&lt;b&gt;ⓒ&lt;/b&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;b&gt;유저&lt;/b&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;b&gt;&amp;rarr;&lt;/b&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;b&gt;ⓑ 매출&lt;/b&gt;&lt;/p&gt;
&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;비즈니스 모델 캔버스&lt;/b&gt;&lt;br /&gt;: 사업 구성 9요소를 통해 비즈니스 모델을 분석하는 방법&lt;/h4&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;ex. 배달의 민족&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. 고객 세그먼트&lt;/b&gt; &lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;i&gt;[전화 주문을 불편해하는, 모바일 환경에 친숙한 사람]&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;b&gt;2.&lt;/b&gt; &lt;b&gt;가치제안 &lt;/b&gt;(차별화 포인트) &lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;i&gt;[온라인에서 보고 주문할 수 있는 전단지]&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;b&gt;3. 채널&lt;/b&gt;: 고객과의 접점, 내 서비스를 판매하는 공간&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;i&gt; [app]&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;b&gt;4.&lt;/b&gt; &lt;b&gt;고객관계&lt;/b&gt;: 고객과의 관계를 위해 추가로 하는 활동 (브랜딩, SNS)&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;i&gt; [굿즈, 이벤트]&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;b&gt;5.&lt;/b&gt; &lt;b&gt;수익원&lt;/b&gt; (수익창출방법) &lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;i&gt;[거래 수수료/광고 매출/배달 매출]&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;b&gt;6.&lt;/b&gt; &lt;b&gt;핵심자원&lt;/b&gt; &lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;i&gt;[식당/배달원]&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;b&gt;7.&lt;/b&gt; &lt;b&gt;핵심활동&lt;/b&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;i&gt; [식당/프랜차이즈/맛집, 배달 서비스]&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;b&gt;8.&lt;/b&gt; &lt;b&gt;핵심 파트너십&lt;/b&gt; &lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;i&gt;[식당 확보/빠른 배달 서비스]&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;b&gt;9.&lt;/b&gt; &lt;b&gt;비용구조&lt;/b&gt; (주된 비용) &lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;i&gt;[식당 정산비용/배달 비용]&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;b&gt;※ 린 캔버스&lt;/b&gt;&lt;br /&gt;: 비즈니스 캔버스와 유사하나, 스타트업의 문제해결에 최적화된 방법으로, &lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;문제&lt;/b&gt;&lt;/span&gt;, 고객 세그먼트, 가치 제안, &lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;해결책&lt;/b&gt;&lt;/span&gt;, &lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;경쟁 우위&lt;/b&gt;&lt;/span&gt;, 수익 흐름, 비용 구조, &lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;주요 지표&lt;/b&gt;&lt;/span&gt;, 채널로 구성&lt;/p&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt; ✅ 비즈니스 캔버스 2)가치 제안의 유형&lt;/b&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;기능적 가치&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Bundled - 쿠팡 와우(+쿠팡 이츠, 쿠팡 플레이) [리텐션 &amp;uarr;]&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Unbundled(=디커플링)&lt;/b&gt; - 토스 초기 송금 기능과 같이 니치시장으로 시작하여 확대해가는 것, 스타트업에서 주로 진행&lt;/li&gt;
&lt;li&gt;Bait &amp;amp; Hook(면도기&amp;amp;면도날) - 소모품, 캡슐커피와 같이 지속적 변동비가 발생하는 구조&lt;/li&gt;
&lt;li&gt;커스텀 - 개인 맞춤 서비스 제공&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;경제적 가치&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;최소화 - 부가서비스 판매로 수익 형성 (ex.저가 항공)&lt;/li&gt;
&lt;li&gt;멤버십 - 손익관리를 잘해야 함 (ex.코스트코)&lt;/li&gt;
&lt;li&gt;Pay By Others - 이용자가 아닌 사람이 비용 지불 (ex. 입시학원)&lt;/li&gt;
&lt;li&gt;광고모델 (ex.유튜브)&lt;/li&gt;
&lt;li&gt;Freemium - 기본상품 무료, 추가기능 유료 (ex.스포티파이)&lt;/li&gt;
&lt;li&gt;Flat Rate Subscription - 정해진 요금만 내면 무제한 이용&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Pay Per Use (VOD, 종량제) - 이용한만큼 지불, 주로 시장이 확대하여 light-user가 증가할 때&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;심미적 가치&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;캐릭터(ex.카카오뱅크), 스토리텔링 ..&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;사회적 가치 (ESG)&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;기부모델, 업사이클 (ex.프라이탁), 공정무역 (ex.스타벅스)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&amp;nbsp;비즈니스 분석을 위한 서비스 뜯어보기&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt; &lt;b&gt;&lt;b&gt;✅&lt;/b&gt;&lt;/b&gt; 유저 플로우 차트 &lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;: 서비스의 디테일한 흐름을 파악하는 도구 (&amp;rarr; 단순화한 것이 AARRR)&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;rarr; 디테일한 &lt;u&gt;&lt;b&gt;지표&lt;/b&gt;&lt;/u&gt; 도출&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;*비즈니스 모델 도식화 - &lt;u&gt;&lt;b&gt;관리 Point&lt;/b&gt;&lt;/u&gt; 도출&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ex. Funnel 분석&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 인입 &amp;rarr; 약관동의 &amp;rarr; 본인인증 &amp;rarr; 추가정보 기입 &amp;rarr; 신규회원(#)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;ⓐ&lt;/b&gt; [약관 동의~추가정보 기입] 까지의&lt;b&gt; 퍼널 간소화&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;: by UI/UX 개선, 간편가입&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;ⓑ 신규회원 단계 날리기&lt;/b&gt; (ex. 네이버페이)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;: Acquisition 단계를 버리고 최종 Goal인 Revenue에 집중&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;* &lt;b&gt;회계&lt;/b&gt;는 &lt;b&gt;제조기반&lt;/b&gt; 기업을 이해하기에 적합하고,&lt;b&gt; 데이터&lt;/b&gt;는 &lt;b&gt;이커머스&lt;/b&gt; 중심 기업을 이해하기에 적합함&lt;/p&gt;
&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;매출/비용 구조의 이해를 통한 실적 분석&lt;/b&gt;&lt;/h4&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;관리회계의 기본 개념&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;: 회사 내부에서 사람들이 쉽게 이해하고 직관적으로 바라볼 수 있게끔 변형한 개념&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;사업의 수익성 판단&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;매출과 영업이익 기반으로는 사업의 수익성(매출이 증가했을 때 흑자 전환 가능여부)을 알 수 없음&lt;/li&gt;
&lt;li&gt;매출원가, 인건비, 월세 등의 정보가 같이 주어진다면 알 수 있음 (=관리회계)&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;✅&lt;/b&gt;&lt;b&gt; 관리회계의 유일한 규칙&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;: &lt;/b&gt;&lt;b&gt;비용 =&lt;/b&gt; &lt;b&gt;변동비와 고정비 / &lt;span style=&quot;color: #000000;&quot;&gt;공헌이익&lt;/span&gt; =&amp;nbsp;매출-변동비&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;변동비:&lt;/b&gt; 매출의 증감에 따라 같이 증감 (*매출을 만들어내는 데 직접적으로 들어가는 비용)&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ex. 원재료, 포장 운반비, 각종 수수료&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;고정비:&lt;/b&gt; 매출의 증감과 관계없이 발생&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ex. 인원 연동, 사무실 관련, 인프라 관련 비용&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;rarr; 변동비는 비즈니스 모델에 따라 구성요쇼가 조금씩 바뀐다.&lt;/p&gt;
&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;공헌이익, 변동비와 고정비&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;공헌이익&lt;/b&gt;&lt;br /&gt;: 고정비를 회수하는 데 공헌하는 이익&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt; &lt;b&gt;공헌이익&lt;/b&gt; = &lt;span style=&quot;color: #006dd7;&quot;&gt;사업&lt;/span&gt;의 결과&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&amp;rarr; 매출 -&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;u&gt;변동비&lt;/u&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;=&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;공헌이익&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;영업이익 = 회사&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;운영&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;의 결과&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;공헌이익 -&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;u&gt;고정비&lt;/u&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;=&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;영업이익&lt;/b&gt;&lt;br /&gt;&amp;rarr; 즉, 영업이익이 +가 되려면&amp;nbsp;&lt;u&gt;&lt;b&gt;공헌이익 &amp;gt; 고정비&lt;/b&gt;&lt;/u&gt;가 되어야 함&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt; &lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;✅&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt; 다양한 산업에서의 변동비 구성&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;[이커머스(생산/사입)]&lt;/b&gt;&lt;br /&gt;매출 ▶ 매출원가 &amp;nbsp;▶ 포장비&amp;nbsp;▶배송비&amp;nbsp;▶ 수수료&lt;br /&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;변동비&lt;/b&gt;&lt;/span&gt;&lt;b&gt;:&lt;/b&gt; 재고 생산(구매) 비용, 포장비, 운반비, 결제수수료, 판매수수료&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;b&gt;[이커머스(중개)]&lt;/b&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;변동비:&lt;/b&gt;&lt;/span&gt; 판매 정산비, 포장비, 운반비, 결제 수수료&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;b&gt;[컨텐츠 플랫폼]&lt;/b&gt;&lt;br /&gt;매출&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;▶ 매출원가(=저작권료=지급수수료)&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;&lt;/span&gt;▶ 수수료&lt;br /&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;변동비:&lt;/b&gt;&lt;/span&gt; 컨텐츠 이용료, 결제 수수료&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;b&gt;[테크회사] ex.당근마켓&lt;/b&gt;&lt;br /&gt;매출&amp;nbsp;&lt;span style=&quot;color: #333333;&quot;&gt;▶&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt; 수수료&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;변동비가 없는 경우 多&lt;/span&gt;&lt;/p&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;변동비 Base&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;ex. OTT&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;수익 = 컨텐츠 시청 시간/전체 시청 시간 : 시청 시간에 비례해서 금액을 정산 (&lt;b&gt;RS, Revenue Share계약&lt;/b&gt;)&lt;/li&gt;
&lt;li&gt;매출이 늘어남에 따라 같은 비율로 계속 비용이 나감&lt;/li&gt;
&lt;li&gt;마진율이 개선되지 않는다는 단점&lt;/li&gt;
&lt;li&gt;초기 자본이 필요없다는 장점&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;고정비 Base&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;ex. OTT&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;합의한 비용을 초기 1회 지급 (&lt;b&gt;FLAT 계약&lt;/b&gt;)&lt;/li&gt;
&lt;li&gt;매출이 증가해도 추가 비용 없음&lt;/li&gt;
&lt;li&gt;판매가 많아질수록 &lt;b&gt;마진율이 개선&lt;/b&gt;된다는 장점&lt;/li&gt;
&lt;li&gt;초기에 투자해야할 자본이 필요하다는 단점&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;변동비 유형&lt;/b&gt;&lt;/span&gt;&lt;b&gt; - 매출 연동형 VS 주문수 연동형&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;매출 연동형: 매출 금액에 비례하여 발생하는 비용 (판매수수료, PG수수료, 저작권료, 로열티)&lt;/li&gt;
&lt;li&gt;주문수 연동형: 주문수에 비례하여 발생하는 비용 (포장비, ,배송비, SMS 전송비)&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;✅&lt;/b&gt;&lt;b&gt; &lt;/b&gt;&lt;b&gt;AOV (평균주문금액)&lt;/b&gt;&lt;br /&gt;: 일정 기간동안 발생한 모든 고객 주문의 평균 금액&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;405&quot; data-origin-height=&quot;230&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/LhJfz/btsJ4P0hPn9/SXc0nRXHYBCo1LMQGrSSL0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/LhJfz/btsJ4P0hPn9/SXc0nRXHYBCo1LMQGrSSL0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/LhJfz/btsJ4P0hPn9/SXc0nRXHYBCo1LMQGrSSL0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLhJfz%2FbtsJ4P0hPn9%2FSXc0nRXHYBCo1LMQGrSSL0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;405&quot; height=&quot;230&quot; data-origin-width=&quot;405&quot; data-origin-height=&quot;230&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;원가가 증가하면(비싼 물건이 판매되면) &amp;rarr; AOV(평균주문금액)가 증가하고,&amp;nbsp;&amp;rarr; 그에 따른 결제 수수료가 증가함&lt;/li&gt;
&lt;li&gt;배송비/포장비는 주문수 연동형이기에 원가가 증가해도 변동이 없음&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;&amp;rarr;&amp;nbsp;&lt;/b&gt;&lt;/span&gt; 즉, 원가 &amp;amp; AOV &amp;amp; 공헌이익(매출-변동비) 함께 증가&lt;/p&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;✅마케팅 비용(ME)은 변동비?고정비?&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;rarr; 케바케&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;[퍼포먼스]&lt;/b&gt;&lt;br /&gt;: 집행 비용이 매출과 직결, 매출 증가 시 예산 확대&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;(&amp;rarr;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;b&gt;변동비 성격)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;※ 퍼포먼스 마케팅의 성과 분석이 원활하지 않다면, 고정비로 구분하는 게 분석이 용이&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;[브랜딩]&lt;/b&gt;&lt;br /&gt;: 집행 비용이 매출과 직결되지 않음, 고정 예산 수립 후 집행&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;(&amp;rarr;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;b&gt;고정비 성격)&lt;/b&gt;&lt;/p&gt;
&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;손익분기점(BEP) 계산 &lt;/b&gt;&lt;/h4&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Q1. 매출이 10배가 되면, 흑자로 전환될 수 있을까?&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;190&quot; data-origin-height=&quot;127&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b0jrpU/btsJ410uxCH/KO6nH16DrtPeCUZOa1pNc1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b0jrpU/btsJ410uxCH/KO6nH16DrtPeCUZOa1pNc1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b0jrpU/btsJ410uxCH/KO6nH16DrtPeCUZOa1pNc1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb0jrpU%2FbtsJ410uxCH%2FKO6nH16DrtPeCUZOa1pNc1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;190&quot; height=&quot;127&quot; data-origin-width=&quot;190&quot; data-origin-height=&quot;127&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;rarr; 비용이 변동비/고정비로 구분되어 있지 않아 위 내용만으로 사업의 수익성을 &lt;b&gt;판단할 수 없다.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;275&quot; data-origin-height=&quot;84&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ebIzcd/btsJ3q1KuRV/GwuB9YElWfhdmUw3vkg60k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ebIzcd/btsJ3q1KuRV/GwuB9YElWfhdmUw3vkg60k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ebIzcd/btsJ3q1KuRV/GwuB9YElWfhdmUw3vkg60k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FebIzcd%2FbtsJ3q1KuRV%2FGwuB9YElWfhdmUw3vkg60k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;275&quot; height=&quot;84&quot; data-origin-width=&quot;275&quot; data-origin-height=&quot;84&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;rarr;&lt;/span&gt;&amp;nbsp;공헌이익 = 1,000 - 900 = 100&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;238&quot; data-origin-height=&quot;124&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bPEbc6/btsJ3RSqk1W/99sNF6pKya13GFHED9As31/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bPEbc6/btsJ3RSqk1W/99sNF6pKya13GFHED9As31/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bPEbc6/btsJ3RSqk1W/99sNF6pKya13GFHED9As31/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbPEbc6%2FbtsJ3RSqk1W%2F99sNF6pKya13GFHED9As31%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;238&quot; height=&quot;124&quot; data-origin-width=&quot;238&quot; data-origin-height=&quot;124&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt; &amp;rarr;&amp;nbsp; 영업이익 = 100 - 1600 = -1500&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;244&quot; data-origin-height=&quot;52&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bJjL6o/btsJ4hXgApQ/jEvccwn6hocTXavNTHScWk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bJjL6o/btsJ4hXgApQ/jEvccwn6hocTXavNTHScWk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bJjL6o/btsJ4hXgApQ/jEvccwn6hocTXavNTHScWk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbJjL6o%2FbtsJ4hXgApQ%2FjEvccwn6hocTXavNTHScWk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;235&quot; height=&quot;50&quot; data-origin-width=&quot;244&quot; data-origin-height=&quot;52&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;&lt;b&gt;✅ Steps&lt;/b&gt;&lt;br /&gt;&lt;b&gt;ⓐ&lt;/b&gt; 비용을 고정비와 변동비로 나눈다.&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;ⓑ&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt; 공헌이익과 공헌 이익율을 계산한다.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;ⓒ&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;매출 * 10 &amp;gt; 공헌이익 &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;rarr;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;1,000 * 10 - 900 * 10 = 1,000&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;ⓓ&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;공헌이익 - 고정비 &amp;gt; 0&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;rarr; &lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;1,000 - 1600 = -600&lt;/span&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt; (적자)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;※ 매출에서 변동비를 뺀 공헌이익(사업의 수익성)이 고정비보다 높을 때 수익성이 생긴다.&lt;/span&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Q2. BEP 판매량과 영업이익 300만원의 판매량은?&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;275&quot; data-origin-height=&quot;166&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dffOdE/btsJ3mrOTAi/sBNpBeM1Me6oqAirPLNkKK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dffOdE/btsJ3mrOTAi/sBNpBeM1Me6oqAirPLNkKK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dffOdE/btsJ3mrOTAi/sBNpBeM1Me6oqAirPLNkKK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdffOdE%2FbtsJ3mrOTAi%2FsBNpBeM1Me6oqAirPLNkKK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;263&quot; height=&quot;159&quot; data-origin-width=&quot;275&quot; data-origin-height=&quot;166&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;rarr; 공헌이익 = 1,000 * Q - 400 * Q = 600 * Q&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt; &amp;rarr; 영업이익 = 공헌이익 - 600,000(고정비) = 0 이 되려면, 공헌이익이 600,000이 되어야 하므로, &lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;Q = 1000개&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt; &amp;rarr; 영업이익 = 3,000,000 이 되려면, 공헌이익이 3,600,000원이 되어야 하므로, &lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;Q = 6000개&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Q3. BEP 매출은?&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;303&quot; data-origin-height=&quot;208&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cy3cVj/btsJ3Q63pyt/dFrCIzpfBGFxjnMi0z1P2K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cy3cVj/btsJ3Q63pyt/dFrCIzpfBGFxjnMi0z1P2K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cy3cVj/btsJ3Q63pyt/dFrCIzpfBGFxjnMi0z1P2K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcy3cVj%2FbtsJ3Q63pyt%2FdFrCIzpfBGFxjnMi0z1P2K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;303&quot; height=&quot;208&quot; data-origin-width=&quot;303&quot; data-origin-height=&quot;208&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;▶&lt;span style=&quot;color: #333333;&quot;&gt; 433,417,329 / 13.95% = X, 고정비 = 3조&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt; ▶&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;매출을 1조 더 벌면, BEP를 달성할 수 있음&lt;/span&gt;&lt;/p&gt;
&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;P&amp;amp;L &lt;span style=&quot;color: #333333; text-align: center;&quot;&gt;(Profit&amp;amp;Loss)&amp;nbsp;&lt;/span&gt; 개선점 도출&lt;/b&gt;&lt;/h4&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;ⓐ 관리회계 포맷으로 정리, 변동비와 고정비로 구분&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;362&quot; data-origin-height=&quot;288&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CNU20/btsJ5nknkQR/W08cRUPmBKukUTGMCow1bk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CNU20/btsJ5nknkQR/W08cRUPmBKukUTGMCow1bk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CNU20/btsJ5nknkQR/W08cRUPmBKukUTGMCow1bk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCNU20%2FbtsJ5nknkQR%2FW08cRUPmBKukUTGMCow1bk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;207&quot; height=&quot;165&quot; data-origin-width=&quot;362&quot; data-origin-height=&quot;288&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;&lt;b&gt;ⓑ 갭이 큰 항목 확인&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;변동비&lt;/b&gt;는 매출증감과 비교: 변동비 中 매출 증감율보다 너무 크거나 작은 항목&lt;/li&gt;
&lt;li&gt;&lt;b&gt;고정비&lt;/b&gt;는 전년대비 증감액이 크거나 작은 항목 (증감율보다는 금액으로)&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;※ %로 보면, % 변동은 큰데, 전체 금액은 미미한 경우가 있기 때문에 금액 위주로 파악&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt; &lt;b&gt;&lt;b&gt;&lt;span style=&quot;background-color: #fafafa; color: #333333; text-align: start;&quot;&gt;①&lt;/span&gt;&lt;/b&gt;&lt;/b&gt; 무신사&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt; &lt;b&gt;✅&lt;/b&gt; 매출&lt;/b&gt;: 3가지 BM(Business Model, 수익 모델)&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;상품매출:&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&amp;nbsp;사입&lt;/b&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;해서 판매하는 걸 상품매출이라 부름 &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;제품매출:&lt;/b&gt; 제품을 제조해서 판매하는 것 (무신사 스탠다드)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;수수료매출:&lt;/b&gt; 오픈마켓 형태에서 판매수수료를 걷어가는 것 (거래액에서 떼가는 수수료)&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt; &lt;b&gt;✅&lt;/b&gt; 변동비&lt;/b&gt;: 재고를 사거나 만들 때 들어가는 비용&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;재고자산매입&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;지급수수료&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;운반비(택배비)&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;589&quot; data-origin-height=&quot;458&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/baeGNH/btsKlOgiO19/uX8UIqaqYu99OVPvbL6y20/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/baeGNH/btsKlOgiO19/uX8UIqaqYu99OVPvbL6y20/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/baeGNH/btsKlOgiO19/uX8UIqaqYu99OVPvbL6y20/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbaeGNH%2FbtsKlOgiO19%2FuX8UIqaqYu99OVPvbL6y20%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;430&quot; height=&quot;370&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;589&quot; data-origin-height=&quot;458&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;b&gt; &lt;b&gt;✅&lt;/b&gt; 체크 포인트&lt;/b&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;상품 매출 (▲62.26%)&lt;/b&gt; - 플랫폼의 규모를 크게 보이도록 하는 노력 (브랜드를 확장하는 과정에서 많은 사입을 한 것)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;변동비&amp;gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;재고자산매입&lt;/span&gt;&amp;nbsp;(▲52.65% ) / 변동비&amp;gt;운반비 (▲310.61%)&lt;/b&gt;&amp;nbsp; - 오픈마켓은 재고자산을 팔 필요도, 배송할 필요도 없기 때문에 상품/제품에 대해서만 재고자산매입, 운반비가 발생&lt;/li&gt;
&lt;li&gt;&lt;b&gt;공헌이익률&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;(▲62.26%)&lt;span&gt; &lt;/span&gt;&lt;/span&gt;-&lt;/b&gt; 사입해서 판매한 상품이 많다보니, 마진율(공헌이익률)은 소폭 감소함&lt;/li&gt;
&lt;li&gt;&lt;b&gt; 고정비&amp;gt;인건복리비&lt;span&gt;&amp;nbsp;&lt;/span&gt;(▲38.13%) -&lt;/b&gt; 아직도 규모를 키워가는 중임을 알 수 있음&lt;/li&gt;
&lt;li&gt;&lt;b&gt;고정비&amp;gt;광고선전비 (▼-1.73%)&lt;/b&gt; - 역성장, 즉 더 이상 마케팅을 과하게 할 필요가 없어졌다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;영업이익&lt;/b&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;(▼-39.99%)&lt;/b&gt;&lt;/span&gt; - 규모를 키우기 위해서 한시적으로 나가는 비용이 컸을 것으로 파악이 되어, 영업이익이 감소하였다.&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;※ 연결된 개념: 상품/제품 &amp;harr; 재고자산,운반비/포장비 (수수료 매출과 무관)&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;※&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt; &lt;/span&gt;수수료 매출은 비용이 발생하지 않기에, 매출이 그대로 이익으로 꽂히는 구조&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt; &lt;b&gt;&lt;b&gt;&lt;span style=&quot;background-color: #fafafa; color: #333333; text-align: start;&quot;&gt;②&lt;/span&gt;&lt;/b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;오늘의집&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;555&quot; data-origin-height=&quot;416&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bh2YFc/btsKlzcEkPF/kt1rvaL8y2xSUtr7FzyG40/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bh2YFc/btsKlzcEkPF/kt1rvaL8y2xSUtr7FzyG40/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bh2YFc/btsKlzcEkPF/kt1rvaL8y2xSUtr7FzyG40/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbh2YFc%2FbtsKlzcEkPF%2Fkt1rvaL8y2xSUtr7FzyG40%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;403&quot; height=&quot;302&quot; data-origin-width=&quot;555&quot; data-origin-height=&quot;416&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;&lt;b&gt;상품매출 (▲8.10%) / 광고매출(▲100.23%) -&lt;/b&gt; 무신사와 반대로 수수료/광고 매출이 많이 증가하고, 상품 매출이 크게 성장하지 않아, 재고자산,운반비,지급수수료와 같은 변동비 증감도 크지 않음&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;&lt;b&gt;운반비 (▼8.10%) -&lt;/b&gt; 운반비는 상품 금액과 관계 없기에, 고가의 상품이 많이 팔리다보니, 운반비가 감소되는 것처럼 보여질 수 있다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;인건비&lt;span&gt;&amp;nbsp;&lt;/span&gt;(▲38.05%)&lt;/b&gt; - 인건비가 증가하고 있다 &amp;rarr; 회사 규모가 커지고 있다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;마케팅비&lt;/b&gt; &lt;b&gt;(▼30.54%)&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt; - 마케팅비가 감소하고 있다 &lt;span style=&quot;color: #333333;&quot;&gt;&amp;rarr;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;플랫폼 규모를 키웠기에 불필요한 마케팅비를 지출할 필요가 없어졌다.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;rarr; 내가 파는 게 아니라, 남이 들어와서 파는 게 커지다보니, &lt;u&gt;&lt;b&gt;오늘의집은&lt;/b&gt; &lt;b&gt;광고매출로써 매출을 올릴 수 있는 구조로 바뀌어가고 있다&lt;/b&gt;&lt;/u&gt;. (무신사와의 제일 큰 차이점, &lt;b&gt;무신사는&lt;/b&gt; 직접 사입하거나, &lt;b&gt;직접 만드는 매출을 크게 키워나가고 있는 상황&lt;/b&gt;)&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt; &lt;b&gt;&lt;span style=&quot;background-color: #fafafa; color: #333333; text-align: start;&quot;&gt;③-1&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;마켓컬리 (&lt;/b&gt;&lt;b&gt;2020-2021)&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;532&quot; data-origin-height=&quot;421&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dFif4j/btsKl35eXWv/4Kzl5vq7EmS7KXKRxV8h20/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dFif4j/btsKl35eXWv/4Kzl5vq7EmS7KXKRxV8h20/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dFif4j/btsKl35eXWv/4Kzl5vq7EmS7KXKRxV8h20/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdFif4j%2FbtsKl35eXWv%2F4Kzl5vq7EmS7KXKRxV8h20%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;407&quot; height=&quot;322&quot; data-origin-width=&quot;532&quot; data-origin-height=&quot;421&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;매출&lt;/b&gt; (&lt;b&gt;▲63.83%&lt;/b&gt;) &lt;b&gt;/ 변동비&amp;gt;포장비&lt;/b&gt; (&lt;b&gt;▼&lt;/b&gt; &lt;b&gt;-13.87%)&lt;/b&gt; - 매출은 60%이상 증가했는데, 포장비는 오히려 감소&lt;br /&gt;&amp;rarr; 일회용품이 아니라, 컬리 퍼플 박스로 대체하여 포장비가 save되고 공헌이익이 개선됨&lt;/li&gt;
&lt;li&gt;&lt;b&gt;고정비&amp;gt;인건복리비&lt;/b&gt; (&lt;b&gt;▲167.26%&lt;/b&gt;) - 성장하고 있는 회사&lt;/li&gt;
&lt;/ol&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt; &lt;b&gt;&lt;b&gt;&lt;span&gt;&lt;b&gt;&lt;span style=&quot;background-color: #fafafa; color: #333333; text-align: start;&quot;&gt;③-2&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/b&gt; 마켓컬리 (&lt;/b&gt;&lt;b&gt;2021-2022)&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;547&quot; data-origin-height=&quot;416&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sRxZn/btsKk2Ge5df/Yue6Uh82VCoGhsgM9wPCEk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sRxZn/btsKk2Ge5df/Yue6Uh82VCoGhsgM9wPCEk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sRxZn/btsKk2Ge5df/Yue6Uh82VCoGhsgM9wPCEk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsRxZn%2FbtsKk2Ge5df%2FYue6Uh82VCoGhsgM9wPCEk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;444&quot; height=&quot;338&quot; data-origin-width=&quot;547&quot; data-origin-height=&quot;416&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;변동비&amp;gt;운반 및 임차료&lt;/b&gt;&amp;nbsp;&lt;b&gt;(▲16.01%)&lt;/b&gt; - 물류센터가 효율적으로 운영되기 시작하면서 불필요한 비용을 줄일 수 있었다. 매출(30%)에 비해 적게 증가(16%)&lt;/li&gt;
&lt;li&gt;&lt;b&gt; &lt;b&gt;고정비&amp;gt;&lt;/b&gt;인건복리비 &lt;/b&gt;&lt;b&gt;(▲38.90%)&lt;/b&gt; - 성장하고 있다&lt;/li&gt;
&lt;/ol&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;b&gt;&lt;span style=&quot;background-color: #fafafa; color: #333333; text-align: start;&quot;&gt;③-3 &lt;/span&gt;&lt;/b&gt;&lt;/b&gt;&lt;b&gt;마켓컬리 (&lt;/b&gt;&lt;b&gt;2022-2023)&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;538&quot; data-origin-height=&quot;418&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/LqY2S/btsKmqeNIs2/R45gItTKITJHw5AwuOhkM1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/LqY2S/btsKmqeNIs2/R45gItTKITJHw5AwuOhkM1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/LqY2S/btsKmqeNIs2/R45gItTKITJHw5AwuOhkM1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLqY2S%2FbtsKmqeNIs2%2FR45gItTKITJHw5AwuOhkM1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;412&quot; height=&quot;320&quot; data-origin-width=&quot;538&quot; data-origin-height=&quot;418&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;매출&lt;/b&gt;&amp;nbsp;&lt;b&gt;(▲1.97%)&lt;/b&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;- 매출이 거의 성장하지 않음&lt;/li&gt;
&lt;li&gt;&lt;b&gt;변동비&lt;/b&gt; &lt;b&gt;(&lt;b&gt;▼-0.34&lt;/b&gt;%)&lt;/b&gt; - 대부분 역성장, 운반 및 임차료가 증가한 건 물류센터 관련 이슈로 판단됨&lt;/li&gt;
&lt;li&gt;&lt;b&gt;고정비&lt;/b&gt; - 대부분 역성장&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;rarr; 구조를&lt;b&gt; 오픈마켓(3PL, &lt;span style=&quot;background-color: #ffffff; color: #1f1f1f; text-align: left;&quot;&gt;Third Party Logistics, 제3자 물류&lt;/span&gt;)&lt;/b&gt;의 형태로 바꿔나가고 있다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;b&gt;✅&lt;/b&gt; P&amp;amp;L 개선 팁&lt;/b&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;매출이 적으면, 손익 개선이 의미가 없으니, 유의미한 매출을 만드는 게 더 중요&lt;/li&gt;
&lt;li&gt;컨트롤 할 수 있는, 협상력 있는 부분을 공략&lt;/li&gt;
&lt;li&gt;가격을 올리는 것이 가장 효과적인 손익 개선법 (=가격 올리는 건 프로모션을 줄이는 것과 같은 효과)&lt;/li&gt;
&lt;li&gt;고정비 중 가장 줄이기 힘든 고정비는 인건비이기에, 채용에 신중해야 함&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;음악 플랫폼의 P&amp;amp;L 개선 사례&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;450&quot; data-origin-height=&quot;112&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/XTIRb/btsKljOEll3/kOrgaUrPiACCyvCJV7r9ck/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/XTIRb/btsKljOEll3/kOrgaUrPiACCyvCJV7r9ck/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/XTIRb/btsKljOEll3/kOrgaUrPiACCyvCJV7r9ck/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FXTIRb%2FbtsKljOEll3%2FkOrgaUrPiACCyvCJV7r9ck%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;450&quot; height=&quot;112&quot; data-origin-width=&quot;450&quot; data-origin-height=&quot;112&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;[커머스]&lt;br /&gt;매출 ▶ 상품원가 &lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;▶ 포장비 &lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;▶ 물류비 &lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;▶ 수수료&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style=&quot;color: #333333; background-color: #9feec3;&quot;&gt;&lt;b&gt;[음악 플랫폼]&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;매출 &lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;▶ &lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;s&gt;음원비용&lt;/s&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;(저작권법,컨트롤불가)&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;▶ &lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;s&gt;포장비&lt;/s&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;▶ &lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;s&gt;물류비&lt;/s&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;▶ &lt;b&gt;수수료 &amp;rarr; &lt;span style=&quot;color: #ef5369;&quot;&gt;유일한 Loss&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&amp;rarr; P&amp;amp;L개선을 위해서는 결제수수료를 줄여야 함&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;1. &lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;수수료 현황 파악&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;간편 결제(2-3%) &amp;gt; 카드 결제(2-3%) &amp;gt; &lt;b&gt;휴대폰 결제(&lt;span style=&quot;color: #ef5369;&quot;&gt;6-8%&lt;/span&gt;)&lt;/b&gt; &amp;gt; 인앱 결제(15-30%) 순으로 수수료 높음&lt;/li&gt;
&lt;li&gt;휴대폰 결제 수수료율이 타 방식에 비해 2~3배 높음 (사용률은 더 낮음)&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;rarr;&amp;nbsp; 결제 수수료를 줄이기 위해서 휴대폰 결제를 없애기로 판단하고, 없애기 위해서,&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2. 휴대폰 결제 수단 삭제&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;간편결제 수단을 최대한 추가해서 간편결제 유도 (카카오페이, 네이버페이, 토스페이 연동)&lt;/li&gt;
&lt;li&gt;UI개선(간편,카드결제 상단 노출, 기본 설정값)&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3. 결과&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;: 결제 수수료율 1%p 이상 감소&lt;/p&gt;
&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;GMV&lt;/b&gt;(Gross Merchandise Value, 총 상품 가치, 누적 거래액)&lt;/h4&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;GMV를 보는 비즈니스의 특징&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;사입X, 오픈마켓과 같은 &lt;u&gt;&lt;b&gt;단순 중개 플랫폼&lt;/b&gt;&lt;/u&gt;&lt;/li&gt;
&lt;li&gt;매출을 여러 기간에 나눠서 인식&lt;/li&gt;
&lt;li&gt;&lt;u&gt;&lt;b&gt;계약의 성사와 매출 인식의 시간 차이&lt;/b&gt;&lt;/u&gt;가 크다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;GMV를 보면서,&lt;/b&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;&lt;u&gt;&lt;span style=&quot;color: #000000;&quot;&gt;특정 기간&lt;/span&gt;&lt;/u&gt;의 사업 성과&lt;/b&gt;에 대한 직관적인 판단을 내릴 수 있고,&lt;/li&gt;
&lt;li&gt;시장 점유율을 파악할 수 있고,&lt;/li&gt;
&lt;li&gt;&lt;u&gt;&lt;b&gt;매출의 선행 지표&lt;/b&gt;&lt;/u&gt;로 활용할 수 있다.&lt;/li&gt;
&lt;/ol&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;&lt;span style=&quot;background-color: #fafafa; color: #333333; text-align: start;&quot;&gt;① 정가 기준 GMV&lt;/span&gt;&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;&lt;b&gt;목적: 할인 규모 파악&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;실무적 활용도 &amp;darr;&lt;/li&gt;
&lt;li&gt;판매자가 설정한 할인은 정산에 반영됨&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;- 판매자 할인 금액&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;-------------------------------&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;&lt;span style=&quot;background-color: #fafafa; color: #333333; text-align: start;&quot;&gt;② 정산 기준 GMV&lt;/span&gt;&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;&lt;b&gt;목적: 할인 규모 파악 / 정산 수수료 예측&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;플랫폼에서 자체 진행한 할인은 정산 시 제외&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #fafafa; text-align: start;&quot;&gt;- 플랫폼 할인 금액&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #fafafa; color: #333333; text-align: start;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;-------------------------------&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;b&gt;&lt;span style=&quot;background-color: #fafafa; color: #333333; text-align: start;&quot;&gt;③ Net GMV&lt;/span&gt;&lt;/b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;실제로 고객이 지불한 금액의 합&lt;/li&gt;
&lt;li&gt;&lt;b&gt;정산기준 GMV 바탕으로 수수료 계산&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;정산 수수료는 일반적으로 5~30%&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #009a87;&quot;&gt;&lt;b&gt; &lt;span style=&quot;background-color: #fafafa; text-align: start;&quot;&gt;- 판매자 정산 수수료&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;-------------------------------&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;= 매출(Net Revenue)&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt; &lt;b&gt;&lt;b&gt;✅&lt;/b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;9월에서 11월 사이 GMV가 약 10배 성장했다고 했을 때,&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;기간 이슈는 없는지?
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;10배 성장의 기준점이 10-11월 누적 GMV인지, 11월 GMV인지, 21년 전체 GMV인지&lt;/li&gt;
&lt;li&gt;기간을 모호하게 표기했을 수 있다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;지속성 이슈는 없는지?
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;프로모션 진행 여부 및 기간 확인.
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;파격적인 할인을 통해 오더 수를 과하게 늘리고,&lt;/li&gt;
&lt;li&gt;정산 수수료를 낮추거나, 프로모션 지원금을 늘려서 상품 가격을 인위적으로 낮췄을 수 있다&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;재구매율 확인&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;지표 이슈는 없는지 확인해야 한다.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;할인/취소 금액도 포함되어있는 것은 아닌지 등&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>BA</category>
      <author>위나</author>
      <guid isPermaLink="true">https://noelee.tistory.com/250</guid>
      <comments>https://noelee.tistory.com/250#entry250comment</comments>
      <pubDate>Sat, 12 Oct 2024 15:00:39 +0900</pubDate>
    </item>
    <item>
      <title>[알고리즘] 정렬 - K번째 수</title>
      <link>https://noelee.tistory.com/249</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/42748&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/42748&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1725693866486&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;프로그래머스&quot; data-og-description=&quot;코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/42748&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/xcUas/hyWZnDSwrS/Vze8bD6KC1Xe6QSSbMZTGk/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/bi4ZWh/hyWZmLKXJV/hTinf82Z36M0DVlLEVa8V0/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/42748&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/42748&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/xcUas/hyWZnDSwrS/Vze8bD6KC1Xe6QSSbMZTGk/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/bi4ZWh/hyWZmLKXJV/hTinf82Z36M0DVlLEVa8V0/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;프로그래머스&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Q.&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;array가 [1,5,2,6,3,7,4] 이고, 매개변수인 commands가 [i,j,k] = [2, 5, 3]일 때&lt;/li&gt;
&lt;li&gt;array를 2~5번째까지 자르고, 자른 배열 [5,2,6,3] 을 &lt;b&gt;정렬하고&lt;/b&gt;(2,3,5,6), 3번째 수를 return &amp;rarr; 5&lt;/li&gt;
&lt;li&gt;[제한] array의 길이는 1~100, 원소는 1~100, commands의 길이는 1~50 원소의 길이는 3&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 자르고 &amp;rarr; 슬라이싱 활용 list[start:end]&lt;/p&gt;
&lt;pre id=&quot;code_1725689278612&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;array[i:j]&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 정렬&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&amp;rarr;&lt;span&gt; 리스트 정렬 sorted(array) 활용&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1725689348476&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sorted_array = sorted(array)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. n번째 값 반환&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&amp;rarr;&lt;span&gt; 인덱싱 활용 array[n]&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1725689363412&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sorted_array[k]&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;✅&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt; 반복(for)문 사용&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;: 여러 개(i,j,k)의 형태로 주어지는 commands 처리&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1725689249726&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;for command in commands:
	i,j,k = command&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;✅&lt;/b&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;b&gt;유효성 검사&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;: slicing하기 위해 i&amp;lt;=j 조건 필요 (j가 더 작을 경우 순서 바꿔주기)&lt;/p&gt;
&lt;pre id=&quot;code_1725693768966&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;if i&amp;gt;j : i,j=j,i&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;✅ &lt;b&gt;리스트 초기화(&lt;/b&gt;result=[ ]&lt;b&gt;)와 저장공간 할당(&lt;/b&gt;result.append()&lt;b&gt;)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;: commands가 여러 개 들어올 수 있기 때문에 ([i,j,k],[i,j,k]...) 반복적으로 처리하고 연산 결과를 누적해서 저장하기 위함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;정답&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1725691424506&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# slicing -&amp;gt; sorted -&amp;gt; indexing 
def solution(array, commands):
    result = []
    for command in commands:
        i,j,k=command
        if i&amp;gt;j:
            i,j = j,i
        sorted_array = sorted(array[i-1:j]) # j-1(x) , 슬라이싱은 끝 범위를 포함하지 않음
        result.append(sorted_array[k-1]) # k(x)
    return result  # return은 for문 밖에&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;rarr; 슬라이싱/인덱싱 순서 주의&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;답변 비교&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/42748/questions&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/42748/questions&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1725693909901&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;프로그래머스&quot; data-og-description=&quot;코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/42748/questions&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/j7VtJ/hyWZd865Zn/bqcmndKCAF6LkRQRkPFJVk/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/67BGQ/hyWZnjBtpk/FIED3XMa2rrG0N2QK3MXS0/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/42748/questions&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/42748/questions&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/j7VtJ/hyWZd865Zn/bqcmndKCAF6LkRQRkPFJVk/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/67BGQ/hyWZnjBtpk/FIED3XMa2rrG0N2QK3MXS0/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;프로그래머스&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>프로그래머스</category>
      <author>위나</author>
      <guid isPermaLink="true">https://noelee.tistory.com/249</guid>
      <comments>https://noelee.tistory.com/249#entry249comment</comments>
      <pubDate>Sat, 7 Sep 2024 16:54:53 +0900</pubDate>
    </item>
    <item>
      <title>[알고리즘] 해시 - 완주하지 못한 선수</title>
      <link>https://noelee.tistory.com/247</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/42576&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/42576&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1725693948371&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;프로그래머스&quot; data-og-description=&quot;코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/42576&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/dv7n8N/hyWZbDmNyM/FZDCQ0dZGw5kamYXyJxvlK/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/bCNFrM/hyWZg5LpDY/UVkU6ci2ywT6AecKvL9bAk/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/42576&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/42576&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/dv7n8N/hyWZbDmNyM/FZDCQ0dZGw5kamYXyJxvlK/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/bCNFrM/hyWZg5LpDY/UVkU6ci2ywT6AecKvL9bAk/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;프로그래머스&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Q.&amp;nbsp;&lt;/b&gt;&lt;br /&gt;# 참가자, 완주자 2개의 array가 주어짐&lt;br /&gt;# 참여자 수는 1&amp;lt;N&amp;lt;100,000&lt;br /&gt;# 1명을 제외하고 모든 선수가 완주&lt;br /&gt;# 이름은 1&amp;lt;n&amp;lt;20 알파벳 소문자&lt;br /&gt;# 동명이인 존재할 수 있음&lt;br /&gt;# 완주하지 못한 선수 이름 출력&lt;/p&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;필요한 개념/메소드&lt;/b&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;collections.Counter&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;: 주어진 iterable한 요소들이 &lt;u&gt;각각 몇번 등장했는지 세어주는&lt;/u&gt; 도구&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;i&gt;*딕셔너리와 유사하나, 특정 작업을 더 편리하게 수행할 수 있는 유용한 기능을 제공함&lt;/i&gt;&lt;/p&gt;
&lt;pre class=&quot;python&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;python&quot;&gt;&lt;code&gt;from collections import Counter

participants = ['john', 'doe', 'john', 'jane']
counter = Counter(participants)&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&quot;python&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;python&quot;&gt;&lt;code&gt;# 딕셔너리와 유사한 형태
print(counter)
&amp;gt; Counter({'john':2,'doe':1,'jane':1})

# 대응되는 값 출력
print(counter('john'))
&amp;gt; 2&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;most_common()&amp;nbsp;메소드&lt;/p&gt;
&lt;pre class=&quot;python&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;python&quot;&gt;&lt;code&gt;print(counter.most_common(1))
&amp;gt; [('john', 2)]&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;subtract() 메소드&lt;/p&gt;
&lt;pre class=&quot;python&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;python&quot;&gt;&lt;code&gt;competers = ['john', 'jane']
counter.subtract(completers)

print(counter)
&amp;gt; Counter({'john':1, 'doe':1, 'jane':0})&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;연산&lt;/p&gt;
&lt;pre class=&quot;python&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;python&quot;&gt;&lt;code&gt;counter1 = Counter(['a','b','c','a'])
counter2 = Counter(['a','c','d'])

print(counter1 + counter2) 
&amp;gt; Counter({'a':3, 'c':2, 'b':1, 'd':1})&lt;/code&gt;&lt;/pre&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문제를 간단히 정리하면, &lt;b&gt;&amp;ldquo;참가자와 완주자 리스트를 비교해서 &lt;u&gt;없는 것 하나만 찾는&lt;/u&gt; 문제&amp;ldquo;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;✅&lt;b&gt; 조건 정의&lt;/b&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;참가자의 Counter 생성&lt;/li&gt;
&lt;li&gt;완주자의 리스트를 순회하며 Counter 값 차감&lt;/li&gt;
&lt;li&gt;남아있는 참가자 이름 중 값이 0이 아닌 이름 출력&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;A1.&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1725695859048&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;from collections import Counter

def solution(participant, completer):
    participant_counter = Counter(participant)
    for person in completer:
        participant_counter[person] -= 1
    for participant, count in participant_counter.items():
        if count &amp;gt; 0:
            return participant&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;b&gt;A2. &lt;/b&gt;&lt;b&gt;Counter객체 간의 차이 활용&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;participant와 completion의 Counter를 구하고, 둘의 차를 구한 후 남아있는 Counter(완주하지 못한 선수)의 key값을 반환&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;python&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;python&quot;&gt;&lt;code&gt;import collections

def solution(participant, completion):
    answer = collections.Counter(participant) - collections.Counter(completion)
    return list(answer.keys())[0]&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;b&gt;A3. sort/loop를 사용한 방법&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;: 리스트를 정렬한 후, 같은 위치의 값들을 비교하는 방식 (인덱스가 일치하지 않을 경우, 완주하지 못한 선수)&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;&lt;i&gt;*메모리 사용량이 적고, 직관적인 방식이나, 상대적으로 느릴 수 있음 (Counter 방식의 해시맵은 추가적인 메모리를 사용)&lt;/i&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;participant, compeletion 리스트를 정렬 &lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;.sort()&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;for 반복문&lt;/b&gt;을 통해 participant[i]와 completion[i]가 일치하는지 확인&lt;b&gt; (*completion 완주자의 len만큼 반복)&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;python&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;python&quot;&gt;&lt;code&gt;def solution(participant, completion):
    participant.sort()
    completion.sort()
    for i in range(len(completion)):
        if participant[i] != completion[i]:
            return participant[i]
    return participant[-1]&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;✅ 예외처리 (마지막 return문)&lt;/b&gt;&lt;br /&gt;: 위의 코드는 완주자 기준이어서,&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;942&quot; data-origin-height=&quot;341&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zhznE/btsJszXPLAR/OzsKFNmb3G1gT1jDBW5EbK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zhznE/btsJszXPLAR/OzsKFNmb3G1gT1jDBW5EbK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zhznE/btsJszXPLAR/OzsKFNmb3G1gT1jDBW5EbK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FzhznE%2FbtsJszXPLAR%2FOzsKFNmb3G1gT1jDBW5EbK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;263&quot; height=&quot;95&quot; data-origin-width=&quot;942&quot; data-origin-height=&quot;341&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;위와 같이 시작했을 경우, 완주자를 다 돌아도 완주하지 못한 선수를 찾을 수 없다.&lt;br /&gt;&lt;b&gt;&amp;rarr; 이를 위해 마지막에 participant[-1]을 반환하도록 수정&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;A4. 해시를 이용한 방법&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;participant의 해시값을 딕셔너리에 저장하고, 합을 계산 (처음에 &lt;b&gt;초기화&lt;/b&gt; 필요)
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;&lt;b&gt;hash(part):&lt;/b&gt; 각 참가자의 이름을 hash값으로 변환&lt;/li&gt;
&lt;li&gt;&lt;b&gt;hashdict(hash(part) = part)&lt;/b&gt;: hash값과 이름을 딕셔너리로 저장&lt;/li&gt;
&lt;li&gt;&lt;b&gt;sumhash += hash(part):&lt;/b&gt; 참가자들의 hash총합 계산&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;앞서 구한 합에서 completion의 해시 값을 차감&lt;/li&gt;
&lt;li&gt;남은 해시 값의 key를 완주하지 못한 선수로 return&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;python&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;python&quot;&gt;&lt;code&gt;def solution(participant, completion):
    hashDict = {}
    sumHash = 0
    for part in participant:
        hashDict[hash(part)] = part
        sumHash += hash(part)
    for comp in completion:
        sumHash -= hash(comp)
    return hashDict[sumHash]&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;답변 비교&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/42576/questions&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/42576/questions&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1725693970071&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;프로그래머스&quot; data-og-description=&quot;코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/42576/questions&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/E8iqV/hyWZbDsCdc/Jejl238EuXLZgHg95HHc2K/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/i072z/hyWZhqanBP/AlfG2brvJkeysxsO7L55O0/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/42576/questions&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/42576/questions&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/E8iqV/hyWZbDsCdc/Jejl238EuXLZgHg95HHc2K/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/i072z/hyWZhqanBP/AlfG2brvJkeysxsO7L55O0/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;프로그래머스&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>프로그래머스</category>
      <author>위나</author>
      <guid isPermaLink="true">https://noelee.tistory.com/247</guid>
      <comments>https://noelee.tistory.com/247#entry247comment</comments>
      <pubDate>Mon, 2 Sep 2024 20:37:14 +0900</pubDate>
    </item>
    <item>
      <title>[알고리즘] 해시 - 폰켓몬</title>
      <link>https://noelee.tistory.com/246</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/1845&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/1845&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1725693987855&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;프로그래머스&quot; data-og-description=&quot;코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/1845&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cczV9O/hyWZfskfdz/qJkWUjMpPp3dTbwfKmBqJK/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/cfdq3A/hyWZj2AsgY/raKgPIud7mJ1pIgt4DdRZ1/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/1845&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/1845&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cczV9O/hyWZfskfdz/qJkWUjMpPp3dTbwfKmBqJK/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/cfdq3A/hyWZj2AsgY/raKgPIud7mJ1pIgt4DdRZ1/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;프로그래머스&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Q.&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;#&amp;nbsp;N마리&amp;nbsp;중&amp;nbsp;N/2마리&amp;nbsp;선택 &lt;br /&gt;#&amp;nbsp;2마리가&amp;nbsp;같은&amp;nbsp;번호이면&amp;nbsp;따로&amp;nbsp;카운트&amp;nbsp;X &lt;br /&gt;#&amp;nbsp;최대한&amp;nbsp;다른&amp;nbsp;종류&amp;nbsp;선택&amp;nbsp;(3123번&amp;nbsp;존재&amp;nbsp;시,&amp;nbsp;33&amp;nbsp;선택을&amp;nbsp;지양) &lt;br /&gt;#&amp;nbsp;input:&amp;nbsp;값&amp;nbsp;종류&amp;nbsp;nums&amp;nbsp;array &lt;br /&gt;#&amp;nbsp;output:&amp;nbsp;종류&amp;nbsp;nums&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;✅ 조건 정의&lt;/b&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal; background-color: #ffffff; color: #263747; text-align: left;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li style=&quot;list-style-type: inherit; color: #000000;&quot;&gt;n/2 개를 선택가능&lt;/li&gt;
&lt;li style=&quot;list-style-type: inherit; color: #000000;&quot;&gt;n/2 개 선택 중 종을 가장 다양하게 선택&lt;/li&gt;
&lt;li style=&quot;list-style-type: inherit; color: #000000;&quot;&gt;그렇다면 n/2가 종의 수보다 크면 종의 수만큼 선택&lt;/li&gt;
&lt;li style=&quot;list-style-type: inherit; color: #000000;&quot;&gt;아니라면 n/2가 종의 수보다 작다면 n/2를 출력&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;A1.&lt;/b&gt;&lt;/h4&gt;
&lt;pre id=&quot;code_1725175298245&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;def solution(nums):
    size_count = {} # 폰켓몬 종류 nums array 초기화
    for size in nums:
        if size in size_count: # 새로운 종류 num이 기존에 존재하는지 확인
            size_count[size]+=1 # 존재하면 size를 1 증가시킴
        else:
            size_count[size]=1 # 없으면 추가하고 size를 1로 설정
    sorted_counts = sorted(size_count.values(), reverse=True) # N:폰켓몬 종류별 개수(size) N 저장
    
    
    return answer&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;test input&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;: [3,1,2,3]&lt;/p&gt;
&lt;pre id=&quot;code_1725175287136&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;solution([3, 1, 2, 3])&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1725175449008&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;size_count = {} # 폰켓몬 종류 nums array 초기화
 for size in nums:
  if size in size_count: # 새로운 종류 num이 기존에 존재하는지 확인
   size_count[size]+=1 # 존재하면 size를 1 증가시킴
  else:
   size_count[size]=1 # 없으면 추가하고 size를 1로 설정         
&amp;gt;&amp;gt; {3: 2, 1: 1, 2: 1}&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1725175483881&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sorted_counts = sorted(size_count.values(), reverse=True) # N:폰켓몬 종류별 개수(size) N 저장
&amp;gt;&amp;gt; [2, 1, 1]&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1725175572033&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;you_take = int(sum(sorted_counts)/2) # 선택 가능한 개수 N/2 저장, int로 변환
&amp;gt;&amp;gt; 2&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;✅&lt;/b&gt; 최대 선택 가능한 폰켓몬의 개수는 서로 다른 종류의 포켓몬(sorted_counts) 개수의 &lt;b&gt;max이어야 하지만, you_take로 제한&lt;/b&gt;된다. (=N/2보다 클 수 없음) &amp;rarr; &lt;b&gt;&lt;u&gt;min() 활용&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1725175593637&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;answer = min(len(sorted_counts),you_take) # 최대한 다른 종류를 선택하기 위해 min(N/2) 출력
&amp;gt;&amp;gt; 2&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;A2.&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;: &lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;len()&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;으로 입력된 선택 가능한 폰켓몬 수 구하고,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;set()&lt;/b&gt;&lt;/span&gt;으로 고유값(=서로 다른 종류 폰켓몬 수) 구함 &lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1725176871402&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;def solution(nums):
    N = len(nums) // 2 # //는 정수형으로 나눈 몫을 출력함
    uniq = list(set(nums))
    return min(len(uniq), N)&lt;/code&gt;&lt;/pre&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;A3.&lt;/b&gt;&lt;/h4&gt;
&lt;pre id=&quot;code_1725276394314&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;def solution(nums):
    return min(len(set(nums)), len(nums)/2)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;답변 비교&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/1845/questions&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/1845/questions&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1725693997996&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;프로그래머스&quot; data-og-description=&quot;코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/1845/questions&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/TdBMi/hyWZc3q2EB/GV89XBMBCCVezgS2zW4Vd0/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/csvVFH/hyWZnjBuMv/i6jI4nKcjaFvjnuwbw4uvk/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/1845/questions&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/1845/questions&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/TdBMi/hyWZc3q2EB/GV89XBMBCCVezgS2zW4Vd0/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/csvVFH/hyWZnjBuMv/i6jI4nKcjaFvjnuwbw4uvk/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;프로그래머스&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>프로그래머스</category>
      <author>위나</author>
      <guid isPermaLink="true">https://noelee.tistory.com/246</guid>
      <comments>https://noelee.tistory.com/246#entry246comment</comments>
      <pubDate>Sun, 1 Sep 2024 17:03:52 +0900</pubDate>
    </item>
    <item>
      <title>[2] 프로그래머스 - SQL</title>
      <link>https://noelee.tistory.com/244</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;Q1&lt;/span&gt;.&amp;nbsp;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;동물 보호소에&lt;b&gt; 가장 먼저 들어온 &lt;/b&gt;동물의 이름을 조회하는 SQL 문을 작성해주세요.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;# RANK() OVER&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;# LIMIT&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;# ORDER&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1389&quot; data-origin-height=&quot;156&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bhqiOc/btsI1X0nXvC/pPbWFkKUQzyCbgqevtiWOK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bhqiOc/btsI1X0nXvC/pPbWFkKUQzyCbgqevtiWOK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bhqiOc/btsI1X0nXvC/pPbWFkKUQzyCbgqevtiWOK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbhqiOc%2FbtsI1X0nXvC%2FpPbWFkKUQzyCbgqevtiWOK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1389&quot; height=&quot;156&quot; data-origin-width=&quot;1389&quot; data-origin-height=&quot;156&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt; 1. MIN(DATETIME) 활용 &lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;(오답)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;sql&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;sql&quot;&gt;&lt;code&gt;-- '가장 먼저'의 정의
SELECT NAME
FROM(
	SELECT
    	NAME,
        DATETIME,
        MIN(DATETIME)
 	FROM
    	ANIMAL_INS
 ) AS TEMP;
 
 &amp;gt; sugar(오답)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1067&quot; data-origin-height=&quot;94&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oK274/btsI5i39QQO/4vHLxApANGWjcGN5k9K2Rk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oK274/btsI5i39QQO/4vHLxApANGWjcGN5k9K2Rk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oK274/btsI5i39QQO/4vHLxApANGWjcGN5k9K2Rk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoK274%2FbtsI5i39QQO%2F4vHLxApANGWjcGN5k9K2Rk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1067&quot; height=&quot;94&quot; data-origin-width=&quot;1067&quot; data-origin-height=&quot;94&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;rarr; MIN을 같이 SELECT하는 것일 뿐, MIN인 NAME을 찾을 수 없음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #0593d3;&quot;&gt;(정답)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;sql&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;sql&quot;&gt;&lt;code&gt;SELECT NAME
FROM ANIMAL_INS
WHERE DATETIME = (SELECT MIN(DATETIME) FROM ANIMAL_INS)&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;b&gt;2. RANK() OVER, WHERE 조건절 활용&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;sql&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;sql&quot;&gt;&lt;code&gt;WITH TEMP AS(
	SELECT
		NAME,
    	RANK() OVER(
    	ORDER BY DATETIME ASC) AS rnk
    FROM ANIMAL_INS)
SELECT NAME
FROM TEMP
WHERE rnk=1;&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;(주의) '정렬'과 '조건' 순서&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;556&quot; data-origin-height=&quot;370&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/87f8B/btsI4se8DHq/JyYWhHvxzyjMoerlMMUfjk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/87f8B/btsI4se8DHq/JyYWhHvxzyjMoerlMMUfjk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/87f8B/btsI4se8DHq/JyYWhHvxzyjMoerlMMUfjk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F87f8B%2FbtsI4se8DHq%2FJyYWhHvxzyjMoerlMMUfjk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;481&quot; height=&quot;320&quot; data-origin-width=&quot;556&quot; data-origin-height=&quot;370&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;(X)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;WHERE &lt;/b&gt;조건절&lt;b&gt; &amp;rarr; ORDER BY() &lt;/b&gt;정렬&lt;/p&gt;
&lt;pre class=&quot;sql&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;sql&quot;&gt;&lt;code&gt;SELECT NAME
FROM ANIMAL_INS
ORDER BY DATETIME
WHERE ROWNUM = 1&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;rarr; WHERE 조건절이 정렬보다 먼저 적용됨&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;rarr;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;서브쿼리로 정렬 후 조건절을 걸면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #0593d3;&quot;&gt;&lt;b&gt;(O)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;ORDER BY()&lt;/b&gt; 정렬 &lt;b&gt;&amp;rarr;&lt;/b&gt; &lt;b&gt;WHERE&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;조건절&lt;/p&gt;
&lt;pre id=&quot;code_1723700732402&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT NAME
FROM (
SELECT NAME
FROM ANIMAL_INS
ORDER BY DATETIME
)
WHERE ROWNUM = 1&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;rarr;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt; 서브쿼리&amp;nbsp;내에서&amp;nbsp;적용된&amp;nbsp;후&amp;nbsp;조건절이&amp;nbsp;제대로&amp;nbsp;적용됨&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;※&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;ROWNUM은 Oracle에만 있고, 동일한 기능을 하는 함수로는 MySQL에는&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;LIMIT&lt;/span&gt;이 있다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;ORDER BY()&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;정렬&lt;b&gt;&lt;b&gt;&amp;rarr;&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;LIMIT&lt;/b&gt;조건절&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #0593d3;&quot;&gt;&lt;b&gt;(O)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1723702778207&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT
NAME
FROM ANIMAL_INS
ORDER BY DATETIME ASC
LIMIT 1;&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt; Q2&lt;/span&gt;.&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;DOCTOR&lt;span style=&quot;text-align: left;&quot;&gt;&amp;nbsp;테이블에서 진료과가 흉부외과(CS)이거나 일반외과(GS)인 의사의 이름, 의사ID, 진료과, 고용일자를 조회하는 SQL문을 작성해주세요. 이때 결과는 고용일자를 기준으로 내림차순 정렬하고, 고용일자가 같다면 이름을 기준으로 오름차순 정렬해주세요.&lt;/span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;# DATE_FORMAT&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;# IN ()&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1723705936975&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT DR_NAME,DR_ID,MCDP_CD,
DATE_FORMAT(HIRE_YMD, &quot;%Y-%m-%d&quot;) AS HIRE_YMD FROM DOCTOR
WHERE MCDP_CD = 'CS' OR MCDP_CD = 'GS' # = IN ('CS','GS')
ORDER BY HIRE_YMD DESC, DR_NAME ASC;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;※&lt;/b&gt; 참고로 날짜 형식에서 소문자y는 2021에서 21로, 2자리만 나옴&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 style=&quot;text-align: left;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;Q3&lt;/span&gt;.&lt;/b&gt;&lt;/h4&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: left;&quot;&gt; 상반기 &lt;b&gt;아이스크림 총주문량(T1)이 3,000보다 높으면서 아이스크림의 주 성분(T2)이 과일인 아이스크림&lt;/b&gt;의 맛을 총주문량이 큰 순서대로 조회하는 SQL 문을 작성해주세요.&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: left;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;# JOIN&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;# ORDER&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;606&quot; data-origin-height=&quot;150&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/drlldZ/btsI4qWckvd/VDOhDWbhBAr5NzLoWUIrYk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/drlldZ/btsI4qWckvd/VDOhDWbhBAr5NzLoWUIrYk/img.png&quot; data-alt=&quot;총 주문량이 있는 FIRST_HALF&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/drlldZ/btsI4qWckvd/VDOhDWbhBAr5NzLoWUIrYk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdrlldZ%2FbtsI4qWckvd%2FVDOhDWbhBAr5NzLoWUIrYk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;380&quot; height=&quot;94&quot; data-origin-width=&quot;606&quot; data-origin-height=&quot;150&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;총 주문량이 있는 FIRST_HALF&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;457&quot; data-origin-height=&quot;147&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bgrKF1/btsI5j9TGNn/3bbJyjbkcUIdfMQFsXkBek/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bgrKF1/btsI5j9TGNn/3bbJyjbkcUIdfMQFsXkBek/img.png&quot; data-alt=&quot;아이스크림 주 성분이 있는 ICECREAM_INFO&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bgrKF1/btsI5j9TGNn/3bbJyjbkcUIdfMQFsXkBek/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbgrKF1%2FbtsI5j9TGNn%2F3bbJyjbkcUIdfMQFsXkBek%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;311&quot; height=&quot;100&quot; data-origin-width=&quot;457&quot; data-origin-height=&quot;147&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;아이스크림 주 성분이 있는 ICECREAM_INFO&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1723785063807&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT
A.FLAVOR
FROM FIRST_HALF A
JOIN ICECREAM_INFO B
ON A.FLAVOR = B.FLAVOR
WHERE A.TOTAL_ORDER &amp;gt;3000
AND B.INGREDIENT_TYPE = 'fruit_based'
ORDER BY A.TOTAL_ORDER DESC;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;Q4&lt;/span&gt;.&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: left;&quot;&gt; 아이템의 &lt;b&gt;희귀도가 'RARE'인 아이템(T1)들의 모든 다음 업그레이드 아이템(T2)의&lt;/b&gt; 아이템 ID, 아이템 명, 아이템의 희귀도를 출력하는 SQL 문을 작성해 주세요. 이때 결과는 아이템 ID를 기준으로 내림차순 정렬해주세요.&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;PARENT_ITEM:&lt;/b&gt; ITEM A가 B로 업그레이드 되었으면, B의 PARENT_ITEM은 A이다. (업그레이드 되기 이전 아이템)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ROOT_ITEM:&lt;/b&gt; 업그레이드가 시작되는 아이템으로, 이전 아이템이 존재하지 않는(PARENT_ITEM이 존재하지 않는) 아이템&lt;/li&gt;
&lt;li&gt;즉, T2에서 부모 아이템이 RARE인 아이템을 T1에서 조회하는 문제&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;# JOIN&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;# IN()&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;539&quot; data-origin-height=&quot;148&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bN0kG2/btsI5dwiRel/41g68MPSlk6uYjdGfQPac1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bN0kG2/btsI5dwiRel/41g68MPSlk6uYjdGfQPac1/img.png&quot; data-alt=&quot;ITEM_INFO (T1)&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bN0kG2/btsI5dwiRel/41g68MPSlk6uYjdGfQPac1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbN0kG2%2FbtsI5dwiRel%2F41g68MPSlk6uYjdGfQPac1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;331&quot; height=&quot;91&quot; data-origin-width=&quot;539&quot; data-origin-height=&quot;148&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;ITEM_INFO (T1)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;359&quot; data-origin-height=&quot;149&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/StgJ2/btsI5Ch3xXK/sARUS0wAv7W5ChRAkECf9K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/StgJ2/btsI5Ch3xXK/sARUS0wAv7W5ChRAkECf9K/img.png&quot; data-alt=&quot;ITEM_TREE (T2)&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/StgJ2/btsI5Ch3xXK/sARUS0wAv7W5ChRAkECf9K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FStgJ2%2FbtsI5Ch3xXK%2FsARUS0wAv7W5ChRAkECf9K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;188&quot; height=&quot;78&quot; data-origin-width=&quot;359&quot; data-origin-height=&quot;149&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;ITEM_TREE (T2)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;JOIN~WHERE~IN()&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1723792512893&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT
	B.ITEM_ID,
	A.ITEM_NAME,
	A.RARITY 
FROM
	ITEM_INFO A
JOIN
	ITEM_TREE B
	ON A.ITEM_ID = B.ITEM_ID
WHERE
	B.PARENT_ITEM_ID IN (
    SELECT ITEM_ID 
    FROM ITEM_INFO
    WHERE RARITY='RARE')
ORDER BY
	A.ITEM_ID DESC;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;JOIN 2번 활용&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;1번 조인으로 T1에 T2의 PARENT_ITEM_ID 정보를 가져옴&lt;/li&gt;
&lt;li&gt;2번 조인으로 추가한 T1의 PARENT_ITEM_ID가 T2의 ITEM_ID와 동일하고, RARITY=''RARE&quot;인 값 필터링&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1723792813730&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT 
	A.ITEM_ID,
	A.ITEM_NAME,
	A.RARITY
FROM
	ITEM_INFO AS A
JOIN
	ITEM_TREE AS B
	ON A.ITEM_ID = B.ITEM_ID
JOIN
	ITEM_INFO AS C
	ON C.ITEM_ID = B.PARENT_ITEM_ID
WHERE
	C.RARITY='RARE'
ORDER BY
	A.ITEM_ID DESC;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; color: #263747; text-align: left;&quot;&gt;JOIN 없이 WHERE조건절 &amp;amp; 서브쿼리 활용&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1723794906618&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT
    ITEM_ID,
    ITEM_NAME,
    RARITY
FROM ITEM_INFO
WHERE ITEM_ID IN(
    SELECT ITEM_ID
    FROM ITEM_TREE
    WHERE PARENT_ITEM_ID IN (
        SELECT ITEM_ID
        FROM ITEM_INFO
        WHERE RARITY='RARE'))
ORDER BY ITEM_ID DESC;&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;Q6&lt;/span&gt;.&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;DEVELOPERS 테이블에서 Python이나 C# 스킬을 가진 개발자의 정보를 조회하려 합니다. 조건에 맞는 개발자의 ID, 이메일, 이름, 성을 조회하는 SQL 문을 작성해주세요. 결과는 ID를 기준으로 오름차순 정렬해 주세요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;# 비트 연산자&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt; # JOIN~ON~&amp;amp;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;991&quot; data-origin-height=&quot;148&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rqm88/btsI7cJmjWO/YS36kobISso86Rgkh2xhik/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rqm88/btsI7cJmjWO/YS36kobISso86Rgkh2xhik/img.png&quot; data-alt=&quot;DEVELOPERS (T1)&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rqm88/btsI7cJmjWO/YS36kobISso86Rgkh2xhik/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Frqm88%2FbtsI7cJmjWO%2FYS36kobISso86Rgkh2xhik%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;571&quot; height=&quot;85&quot; data-origin-width=&quot;991&quot; data-origin-height=&quot;148&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;DEVELOPERS (T1)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;427&quot; data-origin-height=&quot;147&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cXZ9kI/btsI7jO8hpp/UoR1KIepr8gfEGRN28l3TK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cXZ9kI/btsI7jO8hpp/UoR1KIepr8gfEGRN28l3TK/img.png&quot; data-alt=&quot;SKILL_CODE (T2)&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cXZ9kI/btsI7jO8hpp/UoR1KIepr8gfEGRN28l3TK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcXZ9kI%2FbtsI7jO8hpp%2FUoR1KIepr8gfEGRN28l3TK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;265&quot; height=&quot;91&quot; data-origin-width=&quot;427&quot; data-origin-height=&quot;147&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;SKILL_CODE (T2)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;T1에서Jerami의 경우, SKILL_CODE가 400 = 256 + 128 + 16 으로 Python, Java, JavaScript 스킬을 보유하고 있는 것&lt;/li&gt;
&lt;li&gt;T1의 SKILL_CODE는 T2의 CODE의 합계로 이루어져 있기에, 단순 조인&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1723808199381&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT
A.ID, A.EMAIL, A.FIRST_NAME, A.LAST_NAME
FROM DEVELOPERS A
JOIN SKILLCODES B
ON A.SKILL_CODE &amp;amp; B.CODE
WHERE B.NAME IN ('C#','Python')
ORDER BY A.ID ASC;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;해석&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Python은 128 = 2^7 = 10000000&lt;/li&gt;
&lt;li&gt;C#은 2 = 2^1 = 00000010&lt;/li&gt;
&lt;li&gt;두 값을 합산하면 130 = 10000010이 된다.&lt;/li&gt;
&lt;li&gt;A.SKILL_CODE는 스킬을 2진수로 표현했을 때의 합을, B_CODE는 2진수로 표현된 하나의 비트 값을 의미한다.&lt;/li&gt;
&lt;li&gt;&amp;nbsp;A.SKILL_CODE &lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;&amp;amp;&lt;/b&gt;&lt;/span&gt; B.CODE로&lt;b&gt; SKILL_CODE에 특정 스킬(B.CODE)이 포함되어 있는지 확인&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;C#혹은 Python이 SKILL_CODE 에 포함되어 있으면&lt;b&gt; 0이 아닌 값을 반환하기에, WHERE절에서 조건이 True로 평가&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt; &lt;b&gt;✅&lt;/b&gt; 비트 연산자(Bitwise Operator)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저 10진수와 2진수의 개념에 대해 알아야 한다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;10진수 :&lt;/b&gt; 우리가 일상에서 사용하는 숫자 체계(0~9)로, 각 자리의 값은&lt;b&gt; 10의 제곱수로 증가&lt;/b&gt;함
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;321 = 3 *&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;10^2&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;+ 2 *&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;10&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;+ 1 = 321&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;2진수 :&lt;/b&gt; 컴퓨터가 사용하는 숫자 체계 (0,1)로, 각 자리의 값은 &lt;b&gt;2의 제곱수로 증가&lt;/b&gt;함
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;1011 = 1*2^3 + 0 + 1*2 + 1 = 11&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;table style=&quot;border-collapse: collapse; width: 90.8131%; height: 119px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 20.9876%; text-align: center; height: 17px;&quot;&gt;Operator&lt;/td&gt;
&lt;td style=&quot;width: 44.3503%; text-align: center; height: 17px;&quot;&gt;Description&lt;/td&gt;
&lt;td style=&quot;width: 30.5354%; text-align: center; height: 17px;&quot; colspan=&quot;2&quot;&gt;Example&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 20.9876%; text-align: center; height: 17px;&quot;&gt;&amp;amp;&lt;/td&gt;
&lt;td style=&quot;width: 44.3503%; text-align: center; height: 17px;&quot;&gt;AND 연산, 둘다 참일 때만 만족&lt;/td&gt;
&lt;td style=&quot;width: 16.3093%; text-align: center; height: 17px;&quot;&gt;a &amp;amp; b = 12&lt;/td&gt;
&lt;td style=&quot;width: 14.2261%; text-align: center; height: 17px;&quot;&gt;0000 1100&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 20.9876%; text-align: center; height: 17px;&quot;&gt;|&lt;/td&gt;
&lt;td style=&quot;width: 44.3503%; text-align: center; height: 17px;&quot;&gt;OR 연산, 둘 중 하나만 참이여도 만족&lt;/td&gt;
&lt;td style=&quot;width: 16.3093%; text-align: center; height: 17px;&quot;&gt;a | b = 61&lt;/td&gt;
&lt;td style=&quot;width: 14.2261%; text-align: center; height: 17px;&quot;&gt;0011 1101&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 20.9876%; text-align: center; height: 17px;&quot;&gt;^&lt;/td&gt;
&lt;td style=&quot;width: 44.3503%; text-align: center; height: 17px;&quot;&gt;XOR 연산, 둘 중 하나만 참일 때 만족&lt;/td&gt;
&lt;td style=&quot;width: 16.3093%; text-align: center; height: 17px;&quot;&gt;a^b = 49&lt;/td&gt;
&lt;td style=&quot;width: 14.2261%; text-align: center; height: 17px;&quot;&gt;0011 0001&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 20.9876%; text-align: center; height: 17px;&quot;&gt;~&lt;/td&gt;
&lt;td style=&quot;width: 44.3503%; text-align: center; height: 17px;&quot;&gt;&amp;nbsp;보수 연산&lt;/td&gt;
&lt;td style=&quot;width: 16.3093%; text-align: center; height: 17px;&quot;&gt;~a = -61&lt;/td&gt;
&lt;td style=&quot;width: 14.2261%; text-align: center; height: 17px;&quot;&gt;1100 0011&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 20.9876%; text-align: center; height: 17px;&quot;&gt;&amp;lt;&amp;lt;&lt;/td&gt;
&lt;td style=&quot;width: 44.3503%; text-align: center; height: 17px;&quot;&gt;변수의 값을 왼쪽으로 지정된 비트 수만큼 이동&lt;/td&gt;
&lt;td style=&quot;width: 16.3093%; text-align: center; height: 17px;&quot;&gt;a &amp;lt;&amp;lt; 2 = 240&lt;/td&gt;
&lt;td style=&quot;width: 14.2261%; text-align: center; height: 17px;&quot;&gt;1111 0000&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 20.9876%; text-align: center; height: 17px;&quot;&gt;&amp;gt;&amp;gt;&lt;/td&gt;
&lt;td style=&quot;width: 44.3503%; text-align: center; height: 17px;&quot;&gt;변수의 값을 오른쪽으로 지정된 비트 수만큼 이동&lt;/td&gt;
&lt;td style=&quot;width: 16.3093%; text-align: center; height: 17px;&quot;&gt;a &amp;gt;&amp;gt; 2 = 15&lt;/td&gt;
&lt;td style=&quot;width: 14.2261%; text-align: center; height: 17px;&quot;&gt;0000 1111&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>프로그래머스</category>
      <author>위나</author>
      <guid isPermaLink="true">https://noelee.tistory.com/244</guid>
      <comments>https://noelee.tistory.com/244#entry244comment</comments>
      <pubDate>Mon, 12 Aug 2024 21:25:54 +0900</pubDate>
    </item>
    <item>
      <title>[1] 프로그래머스 - SQL</title>
      <link>https://noelee.tistory.com/243</link>
      <description>&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;b&gt;Q1.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h4 style=&quot;text-align: justify;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;대장균들의 자식 수 구하기&lt;/b&gt;&lt;/h4&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;# Self Join&lt;br /&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/299305&quot; target=&quot;_self&quot;&gt;&lt;span&gt;https://school.programmers.co.kr/learn/courses/30/lessons/299305&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;figure data-ke-type=&quot;opengraph&quot; data-og-title=&quot;프로그래머스&quot; data-ke-align=&quot;alignLeft&quot; data-og-description=&quot;코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/299305&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bL4ZBP/hyWzxT7jgn/C0fZHVznOK4GhTQtZW1TQ0/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/f8eFq/hyWzzRVP4O/dVzIkKSnkFOns9Kwj3XA60/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630&quot; data-og-url=&quot;https://programmers.co.kr/&quot;&gt;&lt;a href=&quot;https://programmers.co.kr/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/299305&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bL4ZBP/hyWzxT7jgn/C0fZHVznOK4GhTQtZW1TQ0/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/f8eFq/hyWzzRVP4O/dVzIkKSnkFOns9Kwj3XA60/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;프로그래머스&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;Q.&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;대장균 개체의 ID(&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;ID&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;)와 자식의 수(&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;CHILD_COUNT&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;)를 출력하는 SQL 문을 작성해주세요. 자식이 없다면 자식의 수는 0으로 출력해주세요. 이때 결과는 개체의 ID 에 대해 오름차순 정렬해주세요.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;649&quot; data-origin-height=&quot;247&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/QOAmy/btsIZsyFnYE/Cbo3TFry03l9mtj0oOab00/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/QOAmy/btsIZsyFnYE/Cbo3TFry03l9mtj0oOab00/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/QOAmy/btsIZsyFnYE/Cbo3TFry03l9mtj0oOab00/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQOAmy%2FbtsIZsyFnYE%2FCbo3TFry03l9mtj0oOab00%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;522&quot; height=&quot;199&quot; data-origin-width=&quot;649&quot; data-origin-height=&quot;247&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;&amp;rarr; 문제가 헷갈리지만, 자식(ID) 기준으로&amp;nbsp;같은 부모를 가진 개체가 몇명인지&amp;nbsp;(사람으로 치면 형제가 몇명인지..) 구하는 것&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1. 자식(ID) 기준&lt;/b&gt;으로 부모(Parent ID)가 나와있는 형태이기에 &lt;b&gt;부모(Parent ID) 기준&lt;/b&gt; 자식(ID)이 보여지도록 변경 필요&lt;br /&gt;&lt;b&gt;2. &lt;/b&gt;자식(ID) 기준으로 부모가 같은 자식 수(=형제) 구하기&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&lt;b&gt;PARENT_ID 기준으로 자식의 수를 구해야하므로,&lt;/b&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;SELF JOIN&lt;/b&gt;&lt;/span&gt;을 활용해서 현재 ID기준 PARENT_ID&amp;nbsp;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;rarr;&amp;nbsp;PARENT_ID 기준 ID 출력하기&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;pre class=&quot;sql&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;sql&quot;&gt;&lt;code&gt;SELECT *
FROM ECOLI_DATA A
LEFT JOIN ECOLI_DATA B ON A.ID = B.PARENT_ID&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1178&quot; data-origin-height=&quot;260&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wNqgR/btsIYBwj9oN/qcuICbNKNeTGvVt5BbKwOk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wNqgR/btsIYBwj9oN/qcuICbNKNeTGvVt5BbKwOk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wNqgR/btsIYBwj9oN/qcuICbNKNeTGvVt5BbKwOk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwNqgR%2FbtsIYBwj9oN%2FqcuICbNKNeTGvVt5BbKwOk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1178&quot; height=&quot;260&quot; data-origin-width=&quot;1178&quot; data-origin-height=&quot;260&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;rarr;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;&lt;/span&gt;&amp;nbsp;A.ID와 PARENT_ID로 SELF JOIN하되, 문제에서&amp;nbsp;&lt;b&gt;자식이 없어도 출력&lt;/b&gt;하라고 되어있었기에&amp;nbsp;&lt;b&gt;LEFT JOIN (ID기준) 해주기&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;145&quot; data-origin-height=&quot;242&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/WhSQR/btsIX5dJzrn/cZOA95PCyse1zGCV6ScHgK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/WhSQR/btsIX5dJzrn/cZOA95PCyse1zGCV6ScHgK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/WhSQR/btsIX5dJzrn/cZOA95PCyse1zGCV6ScHgK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FWhSQR%2FbtsIX5dJzrn%2FcZOA95PCyse1zGCV6ScHgK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;145&quot; height=&quot;242&quot; data-origin-width=&quot;145&quot; data-origin-height=&quot;242&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;기존 ID기준 부모 ID&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;150&quot; data-origin-height=&quot;248&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/TZEbs/btsIYdieUn6/aE9E9uFGFZPbBBHakYia3K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/TZEbs/btsIYdieUn6/aE9E9uFGFZPbBBHakYia3K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/TZEbs/btsIYdieUn6/aE9E9uFGFZPbBBHakYia3K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTZEbs%2FbtsIYdieUn6%2FaE9E9uFGFZPbBBHakYia3K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;150&quot; height=&quot;248&quot; data-origin-width=&quot;150&quot; data-origin-height=&quot;248&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;셀프 조인 후 PARENT_ID 기준 ID&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;b&gt;&amp;rarr;&lt;/b&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;ID는 1~6 모두 존재했지만, PARNET_ID는 1,2,4으로 3개이기에 부모 기준이니까&amp;nbsp;&lt;b&gt;나머지에 해당하는(부모가 없는) ID는 null로 나옴&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;b&gt;2. 최종 쿼리&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;sql&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;sql&quot;&gt;&lt;code&gt;SELECT DISTINCT A.ID, COUNT(DISTINCT B.ID) AS CHILD_COUNT
FROM ECOLI_DATA A
LEFT JOIN ECOLI_DATA B ON A.ID = B.PARENT_ID
GROUP BY A.ID;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;188&quot; data-origin-height=&quot;286&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Qvfer/btsIYuEeaTb/3zh6vyBPLjFA370aamvS5k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Qvfer/btsIYuEeaTb/3zh6vyBPLjFA370aamvS5k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Qvfer/btsIYuEeaTb/3zh6vyBPLjFA370aamvS5k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQvfer%2FbtsIYuEeaTb%2F3zh6vyBPLjFA370aamvS5k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;188&quot; height=&quot;286&quot; data-origin-width=&quot;188&quot; data-origin-height=&quot;286&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;✅ 셀프 조인 예제&lt;/b&gt;&lt;br /&gt;customer_id를 기준으로 작성된 테이블에서, customer_id에 매핑된 spouse_id 배우자의 성과 이름을 보고자 한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;954&quot; data-origin-height=&quot;386&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bKpi1E/btsIYYLDvPK/OLnoI5gjlJ6ImTtxrdDkcK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bKpi1E/btsIYYLDvPK/OLnoI5gjlJ6ImTtxrdDkcK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bKpi1E/btsIYYLDvPK/OLnoI5gjlJ6ImTtxrdDkcK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbKpi1E%2FbtsIYYLDvPK%2FOLnoI5gjlJ6ImTtxrdDkcK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;593&quot; height=&quot;240&quot; data-origin-width=&quot;954&quot; data-origin-height=&quot;386&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;원본 테이블&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;956&quot; data-origin-height=&quot;373&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xxcSR/btsIYtrOibF/aJlViAWUTeJI6uPHJ4kdQK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xxcSR/btsIYtrOibF/aJlViAWUTeJI6uPHJ4kdQK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xxcSR/btsIYtrOibF/aJlViAWUTeJI6uPHJ4kdQK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxxcSR%2FbtsIYtrOibF%2FaJlViAWUTeJI6uPHJ4kdQK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;586&quot; height=&quot;229&quot; data-origin-width=&quot;956&quot; data-origin-height=&quot;373&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;셀프 조인한 테이블&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;rarr; id=1인 John의 spouse인 id=2 Mary의 이름도 나온 모습&lt;/p&gt;
&lt;pre class=&quot;sql&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;sql&quot;&gt;&lt;code&gt;SELECT
 cust.customer_id,
 cust.firstname,
 cust.lastname,
 cust.birthdate,
 cust.spouse_id,
 spouse.firstname AS spouse_firstname,
 spouse_lastname AS spouse_lastname
FROM customer AS cust
INNER JOIN customer AS spouse
&amp;nbsp;&amp;nbsp; ON cust.spouse_id = spouse.customer_id&lt;/code&gt;&lt;/pre&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h4 style=&quot;text-align: justify;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;b&gt;Q2.&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;재구매가 일어난 상품과 회원 리스트 구하기&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;# WHERE과 HAVING 차이 인지&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;※ 참고&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;858&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nUWqk/btsIZrNg8es/ukL0FHHkmGoKKiOm1EjM20/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nUWqk/btsIZrNg8es/ukL0FHHkmGoKKiOm1EjM20/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nUWqk/btsIZrNg8es/ukL0FHHkmGoKKiOm1EjM20/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnUWqk%2FbtsIZrNg8es%2FukL0FHHkmGoKKiOm1EjM20%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;640&quot; height=&quot;429&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;858&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 style=&quot;text-align: justify;&quot; data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;ONLINE_SALE 테이블에서 동일한 회원이 동일한 상품을 재구매한 데이터를 구하여, 재구매한 회원 ID와 재구매한 상품 ID를 출력하는 SQL문을 작성해주세요. 결과는 회원 ID를 기준으로 오름차순 정렬해주시고 회원 ID가 같다면 상품 ID를 기준으로 내림차순 정렬해주세요.&lt;/p&gt;
&lt;pre class=&quot;python&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;python&quot;&gt;&lt;code&gt;-- 재구매의 정의: CNT&amp;gt;1
SELECT user_id, product_id
FROM ONLINE_SALE
GROUP BY user_id, product_id
HAVING COUNT(online_sale_id)&amp;gt;1
ORDER BY user_id ASC, product_id DESC&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;/p&gt;</description>
      <category>프로그래머스</category>
      <author>위나</author>
      <guid isPermaLink="true">https://noelee.tistory.com/243</guid>
      <comments>https://noelee.tistory.com/243#entry243comment</comments>
      <pubDate>Thu, 8 Aug 2024 21:43:53 +0900</pubDate>
    </item>
    <item>
      <title>[11] 실무로 통하는 인과추론 with 파이썬 - 11장. 불응과 도구변수</title>
      <link>https://noelee.tistory.com/242</link>
      <description>&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;400&quot; data-origin-height=&quot;514&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sXujr/btsIJtTnjsj/m8x9n5Kr0bjkWEJRxXsbc1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sXujr/btsIJtTnjsj/m8x9n5Kr0bjkWEJRxXsbc1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sXujr/btsIJtTnjsj/m8x9n5Kr0bjkWEJRxXsbc1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsXujr%2FbtsIJtTnjsj%2Fm8x9n5Kr0bjkWEJRxXsbc1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;311&quot; height=&quot;400&quot; data-origin-width=&quot;400&quot; data-origin-height=&quot;514&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot;&gt;&lt;p data-ke-size=&quot;size18&quot; style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;목차&lt;/b&gt;&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;Part 5. 대안적 실험 설계&lt;/b&gt;&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;&amp;lt;11장. 불응과 도구변수&amp;gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;11.1 불응&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;11.2 잠재적 결과 확장&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;11.3 도구변수 식별 가정&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;11.4 1단계&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;11.5 2단계&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;11.6 2단계 최소제곱법&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;11.7 표준오차&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;11.8 통제변수와 도구변수 추가&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;11.8.1 2SLS 직접 구현&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;11.8.2 행렬 구현&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;11.9 불연속 설계&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;11.9.1 불연속 설계 가정&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;11.9.2 처치 의도 효과&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;11.9.3 도구변수 추정값&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;11.9.4 밀도 불연속 테스트&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;11.10 요약&lt;/span&gt;&lt;/p&gt;&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot;&gt;&lt;p data-ke-size=&quot;size18&quot; style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;b&gt;11장&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;. 불응과 도구변수&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;서비스의 영향을 추론하기 어려운 이유는, 서비스를 고객이 '선택'하는 경우가 많기 때문이다.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;참여 여부는 고객의 선택에 달려있음&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;제공 여부를 무작위로 결정하더라도, 고객에게 이를 받아들이도록 강요할 수는 없다.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;이를 '불응'이라 하며, 처치를 배정받은 모든 사람이 처치 받지는 않음을 의미&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;불응 문제가 있는 실험을 설계할 때 어떤 점을 고려해야할까?&lt;/span&gt;&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;390&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/d19tXL/btsIJbFvtoQ/WtXGlSN8rhY5yQKoOKRJIk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/d19tXL/btsIJbFvtoQ/WtXGlSN8rhY5yQKoOKRJIk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/d19tXL/btsIJbFvtoQ/WtXGlSN8rhY5yQKoOKRJIk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fd19tXL%2FbtsIJbFvtoQ%2FWtXGlSN8rhY5yQKoOKRJIk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;610&quot; height=&quot;340&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;390&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot;&gt;&lt;p data-ke-size=&quot;size18&quot; style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;b&gt;11.1&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt; 불응&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;처치 배정과 처치 적용&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;순응자(complier):&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt; 자신에게 배정된 처치를 받는 사람&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;항시 참여자(always-taker):&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt; 배정과 관계없이 항상 처치 받는 사람&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;항시 불참자(never-taker):&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt; 배정과 관계없이 처치를 한 번도 받지 않은 사람&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;반항자(defier):&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt; 배정된 처치와 반대되는 처치 받는 사람&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;여기서 문제는 각 그룹에 누가 속해 있는지 모른다는 점&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;불응을 DAG 형태로 나타내보면,&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;542&quot; data-origin-height=&quot;203&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/obQHJ/btsIKAxnhxW/m79Z6YSVEJacDeWbXkoLBK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/obQHJ/btsIKAxnhxW/m79Z6YSVEJacDeWbXkoLBK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/obQHJ/btsIKAxnhxW/m79Z6YSVEJacDeWbXkoLBK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FobQHJ%2FbtsIKAxnhxW%2Fm79Z6YSVEJacDeWbXkoLBK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;395&quot; height=&quot;148&quot; data-origin-width=&quot;542&quot; data-origin-height=&quot;203&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt; 
 &lt;li&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;Z가 무작위 처치배정일 때, &lt;b&gt;숨겨진 요인(U)이 처치(T)에 영향&lt;/b&gt;을 준다.&lt;/span&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;Z는 도구변수(IV)의 역할&lt;/b&gt;을 하여,&lt;/span&gt; 
  &lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt; 
   &lt;li&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;교란 없이 처치(T)에 영향을 주고,&lt;/span&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;처치(T)를 거치지 않으면 결과(Y)에 영향을 미치지 않음&lt;/span&gt;&lt;/li&gt; 
  &lt;/ol&gt; &lt;/li&gt; 
 &lt;li&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;U를 순응 그룹을 유발하는 미지의 요인&lt;/b&gt;으로 생각할 수도 있음&lt;/span&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;U를 통과하는 열린 뒷문 경로&lt;/b&gt;때문에 T가 Y에 미치는 영향을 식별할 수 없음&lt;/span&gt;&lt;/li&gt; 
&lt;/ul&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt; 10,000명의 고객을 대상으로 프라임 신용카드 이용 가능 여부를 무작위로 배정하는 실험 데이터&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;949&quot; data-origin-height=&quot;287&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cd9EPB/btsILG4xfzR/tcwtxU3GA2ApFyQxtucs4k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cd9EPB/btsILG4xfzR/tcwtxU3GA2ApFyQxtucs4k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cd9EPB/btsILG4xfzR/tcwtxU3GA2ApFyQxtucs4k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcd9EPB%2FbtsILG4xfzR%2FtcwtxU3GA2ApFyQxtucs4k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;553&quot; height=&quot;167&quot; data-origin-width=&quot;949&quot; data-origin-height=&quot;287&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;구매금액 = pv (Y)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;프라임 신용카드 보유 여부 = prime_card(T)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;프라임 신용카드 사용 가능여부 = prime_elegible(Z)&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot;&gt;&lt;p data-ke-size=&quot;size18&quot; style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;b&gt;11.2&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt; 잠재적 결과 확장&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;잠재적 처치(potential treatment) Tz&lt;/b&gt;&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;: Z가 T의 원인일 때, 잠재적 결과는 도구변수 Z에 대한 새로운 반사실 Yz,t를 가짐&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;처치의도효과(ITTE, Intent-To-Treatment Effect)&lt;/b&gt;&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;u&gt;도구변수 Z가 결과 Y에 미치는 영향&lt;/u&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;으로, 여기에서는 프라임 신용카드 사용 가능 여부가 구매 금액에 미치는 영향&lt;/span&gt;&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;614&quot; data-origin-height=&quot;62&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/2xPuE/btsIJeWx7y2/BVpUfXBdupZyLieVa0M001/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/2xPuE/btsIJeWx7y2/BVpUfXBdupZyLieVa0M001/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/2xPuE/btsIJeWx7y2/BVpUfXBdupZyLieVa0M001/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F2xPuE%2FbtsIJeWx7y2%2FBVpUfXBdupZyLieVa0M001%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;515&quot; height=&quot;52&quot; data-origin-width=&quot;614&quot; data-origin-height=&quot;62&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;처치의도효과(ITTE)를 단순회귀로 추정해보자&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;haskell&quot; style=&quot;color: #212121; text-align: start;&quot;&gt;&lt;code&gt;m = smf.ols(&quot;pv~prime_elegible&quot;, data=df).fit()
m.summary().tables[1]&lt;/code&gt;&lt;/pre&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;773&quot; data-origin-height=&quot;138&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c6dv4u/btsILyS583e/2YsnrALlTXBMvOFV0JzmD0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c6dv4u/btsILyS583e/2YsnrALlTXBMvOFV0JzmD0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c6dv4u/btsILyS583e/2YsnrALlTXBMvOFV0JzmD0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc6dv4u%2FbtsILyS583e%2F2YsnrALlTXBMvOFV0JzmD0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;527&quot; height=&quot;94&quot; data-origin-width=&quot;773&quot; data-origin-height=&quot;138&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt; 
 &lt;li&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;ITTE는 프라임 신용카드의 구매 금액에 대한 제공 영향이자,&lt;/span&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;은행에서 프라임 신용카드를 사용함으로써 기대할 수 있는 고객당 추가 구매금액(PV)를 나타냄( &lt;b&gt;≠ 처치효과&lt;/b&gt;)&lt;/span&gt; 
  &lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt; 
   &lt;li&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;은행의 주요 목표는, &quot;프라임 카드의 혜택이 그 비용을 상회하는가?&quot; = 처치효과가 필요&lt;/span&gt;&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;이 사례에서는 프라임 카드를 &lt;b&gt;사용 가능한 (Z)사람만이 보유 여부(T)를 선택할 수 있도록 통제&lt;/b&gt;되어있다.&lt;/span&gt; 
  &lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt; 
   &lt;li&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;이를 &lt;b&gt;단방향 불응(one-sided non-compliance)&lt;/b&gt;이라 한다.&lt;/span&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;따라서 순응그룹이 4개가 아닌, 항시 참여자(always-taker) = 순응자(complier), &lt;/span&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;반항자(defier) = 항시 불참자(never-taker) 총 2가지로 분류&lt;/span&gt;&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
&lt;/ul&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;ITTE를 프라임 카드 효과의 대리변수로 사용할 수 있을까?&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;바로 사용할 수 없다. ITTE 추정값은 ATE 추정값보다 0에 가깝게 편향될 수 있다.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;실험군인데에도 일부가 처치를 받지 않을 수 있기에 실험-대조군 간의 차이가 줄어들기 때문&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;573&quot; data-origin-height=&quot;443&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/EDLHM/btsILeULfaF/677sQfE0EvRE9j39YCguB1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/EDLHM/btsILeULfaF/677sQfE0EvRE9j39YCguB1/img.png&quot; data-alt=&quot;처치 받은 대상은 '항시 불참자'를 포함하고 있기에, 원래 효과보다 실험-대조군 차이가 미미하게 나옴&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/EDLHM/btsILeULfaF/677sQfE0EvRE9j39YCguB1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEDLHM%2FbtsILeULfaF%2F677sQfE0EvRE9j39YCguB1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;361&quot; height=&quot;279&quot; data-origin-width=&quot;573&quot; data-origin-height=&quot;443&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;처치 받은 대상은 '항시 불참자'를 포함하고 있기에, 원래 효과보다 실험-대조군 차이가 미미하게 나옴&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;반대로 &lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;실험군-대조군 간의 단순평균 비교&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;를 하면, 관심있는 효과 추정값을 대체해서 사용할 수 있는지 확인&lt;/span&gt;&lt;/p&gt;&lt;pre data-ke-type=&quot;codeblock&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot;&gt;&lt;code&gt;m = smf.ols(&quot;pv~prime_card&quot;, data=df).fit()
m.summary().tables[1]&lt;/code&gt;&lt;/pre&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;782&quot; data-origin-height=&quot;144&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/I34h0/btsIOmthKNK/vaPkAmWRo2NSfi5qQ07Xb1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/I34h0/btsIOmthKNK/vaPkAmWRo2NSfi5qQ07Xb1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/I34h0/btsIOmthKNK/vaPkAmWRo2NSfi5qQ07Xb1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FI34h0%2FbtsIOmthKNK%2FvaPkAmWRo2NSfi5qQ07Xb1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;543&quot; height=&quot;100&quot; data-origin-width=&quot;782&quot; data-origin-height=&quot;144&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;568&quot; data-origin-height=&quot;552&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bnqQRs/btsIQwVdbUj/RPXKL6E5fDOcNU8FLmaM71/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bnqQRs/btsIQwVdbUj/RPXKL6E5fDOcNU8FLmaM71/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bnqQRs/btsIQwVdbUj/RPXKL6E5fDOcNU8FLmaM71/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbnqQRs%2FbtsIQwVdbUj%2FRPXKL6E5fDOcNU8FLmaM71%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;302&quot; height=&quot;293&quot; data-origin-width=&quot;568&quot; data-origin-height=&quot;552&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;이 경우에는 &lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;항시 불참자(eligible 하지만 보유 X)가 빠져있고 대조군에 있어서, 대조군 Y0가 더 낮아져&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&amp;nbsp;효과에 상향편향이 존재한다.&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;불응 상태에서는 처치 선택이 무작위가 아니므로,&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;ATE를 식별할 수 없고,&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;ITTE는 ATE에 대한 편향 추정값이 어려운 상황&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot;&gt;&lt;p data-ke-size=&quot;size18&quot; style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;b&gt;11.3&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt; 도구변수 식별 가정&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;488&quot; data-origin-height=&quot;153&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bO3b9A/btsIN47sLdP/K7ccch2KZMgQkuMKfytkb1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bO3b9A/btsIN47sLdP/K7ccch2KZMgQkuMKfytkb1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bO3b9A/btsIN47sLdP/K7ccch2KZMgQkuMKfytkb1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbO3b9A%2FbtsIN47sLdP%2FK7ccch2KZMgQkuMKfytkb1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;389&quot; height=&quot;122&quot; data-origin-width=&quot;488&quot; data-origin-height=&quot;153&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;도구변수 식별 가정에 필요한 가정을 정리해보면,&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt; 
 &lt;li&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;독립성&lt;/b&gt;&lt;/span&gt; 
  &lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt; 
   &lt;li&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;도구변수(Z)와 처치(T)는 독립&lt;/span&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;도구변수(Z)와 결과(Y)는 독립&lt;/span&gt;&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;배제 제약:&lt;/b&gt; 처치(T)를 통하지 않고는, 도구변수(Z)에서 결과(Y)로 가는 경로가 없어야 함&lt;/span&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;연관성:&lt;/b&gt; 도구변수(Z)가 처치(T)가 영향을 미쳐야 함&lt;/span&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;단조성:&lt;/b&gt; 도구변수(Z)가 처치(T)를 한 방향으로만 영향 주는 것&lt;/span&gt; 
  &lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt; 
   &lt;li&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;처치 받을 확률이 증가하는 경우, 반항자가 없다고 가정&lt;/span&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;처치 받을 확률이 감소하는 경우, 순응자가 없다고 가정&lt;/span&gt;&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
&lt;/ol&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;ITTE를 시작점으로 삼고, 위의 가정을 만족하는 ITTE를 ATE로 정의&lt;/span&gt;&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;708&quot; data-origin-height=&quot;111&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/POqSh/btsIPr1FSqt/rRxGs1GYu2FjDKfyJUjeL0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/POqSh/btsIPr1FSqt/rRxGs1GYu2FjDKfyJUjeL0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/POqSh/btsIPr1FSqt/rRxGs1GYu2FjDKfyJUjeL0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FPOqSh%2FbtsIPr1FSqt%2FrRxGs1GYu2FjDKfyJUjeL0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;606&quot; height=&quot;95&quot; data-origin-width=&quot;708&quot; data-origin-height=&quot;111&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;배제 제약&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt; → Yz,t의 도구변수 첨자 제거&lt;/span&gt;&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;687&quot; data-origin-height=&quot;70&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FXfWn/btsIOEUQLpH/K7tMDazZnC89z5ILqIPYx0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FXfWn/btsIOEUQLpH/K7tMDazZnC89z5ILqIPYx0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FXfWn/btsIOEUQLpH/K7tMDazZnC89z5ILqIPYx0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFXfWn%2FbtsIOEUQLpH%2FK7tMDazZnC89z5ILqIPYx0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;618&quot; height=&quot;63&quot; data-origin-width=&quot;687&quot; data-origin-height=&quot;70&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;독립성 가정&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;→ 두 기댓값 묶기&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;460&quot; data-origin-height=&quot;52&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lL5pt/btsIO1WwW1N/w3TIkCNgBTGT0kk7RAaBZK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lL5pt/btsIO1WwW1N/w3TIkCNgBTGT0kk7RAaBZK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lL5pt/btsIO1WwW1N/w3TIkCNgBTGT0kk7RAaBZK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlL5pt%2FbtsIO1WwW1N%2Fw3TIkCNgBTGT0kk7RAaBZK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;372&quot; height=&quot;42&quot; data-origin-width=&quot;460&quot; data-origin-height=&quot;52&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;식을 단순화하면,&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;264&quot; data-origin-height=&quot;58&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bRmwNP/btsIOG59xdJ/Smfa5s12xVyuRKuwG4eDF1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bRmwNP/btsIOG59xdJ/Smfa5s12xVyuRKuwG4eDF1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bRmwNP/btsIOG59xdJ/Smfa5s12xVyuRKuwG4eDF1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbRmwNP%2FbtsIOG59xdJ%2FSmfa5s12xVyuRKuwG4eDF1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;205&quot; height=&quot;45&quot; data-origin-width=&quot;264&quot; data-origin-height=&quot;58&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;단조성 가정&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;을 사용하여, 가능한 경우인 T1&amp;gt;T0과 T1=T0으로 확장&lt;/span&gt;&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;543&quot; data-origin-height=&quot;108&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/brFCY5/btsIOCpaag8/H5DKZmB1cYGWlXO3T7E8wK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/brFCY5/btsIOCpaag8/H5DKZmB1cYGWlXO3T7E8wK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/brFCY5/btsIOCpaag8/H5DKZmB1cYGWlXO3T7E8wK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbrFCY5%2FbtsIOCpaag8%2FH5DKZmB1cYGWlXO3T7E8wK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;402&quot; height=&quot;80&quot; data-origin-width=&quot;543&quot; data-origin-height=&quot;108&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;T1=T0일 때에는 T1-T0이 0이 되므로 첫 번째 항만 남음&lt;/span&gt;&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;695&quot; data-origin-height=&quot;46&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/TTwY7/btsIOl82A8d/DBEbkEaalj85iV8FnrSDvK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/TTwY7/btsIOl82A8d/DBEbkEaalj85iV8FnrSDvK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/TTwY7/btsIOl82A8d/DBEbkEaalj85iV8FnrSDvK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTTwY7%2FbtsIOl82A8d%2FDBEbkEaalj85iV8FnrSDvK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;483&quot; height=&quot;32&quot; data-origin-width=&quot;695&quot; data-origin-height=&quot;46&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt; 
 &lt;li&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;T1&amp;gt;T0은 순응자 (자신에게 배정된 처치를 받는 사람)&lt;/b&gt;&lt;/span&gt; 
  &lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt; 
   &lt;li&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;카드를 사용 가능 여부가 미소유 → 소유 로 전환하는 집단&lt;/span&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;즉, 카드를 사용 가능하면, 무조건 카드를 보유하는 집단&lt;/b&gt;&lt;/span&gt;&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;즉, 도구변수(Z)가 결과(Y)에 미치는 영향(가정을 만족한 ITTE) &lt;b&gt;= 순응자의 처치효과(E(Y1-Y0|T1&amp;gt;T0])에 순응률(P(T1&amp;gt;T0))을 곱한 값&lt;/b&gt;&lt;/span&gt;&lt;/li&gt; 
&lt;/ul&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;→ P(T1&amp;gt;T0)만 추정할 수 있으면, 이전 추정량을 보정할 수 있음&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;※ &lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;순응률&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;:&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt; 도구변수(Z)가 처치(T)에 미치는 영향&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;순응률을 구하기 위해 단조성 가정을 활용해보면, 순응자이면 T1-T0=1이고, 그렇지 않으면 0이기에 이 효과의 기댓값은 순응률이다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;T1-T0=1&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt; : 순응자는, 카드를 사용 가능하지 않을 때(T&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;0&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;) 카드를 보유하는 사람(&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;span style=&quot;color: #1a5490;&quot;&gt;&lt;b&gt;T&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;1) = 0 이니까..?&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;→&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt; E[T1-T0] = P(T1&amp;gt;T0)&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;→ 도구변수(Z)가 결과(Y)에 미치는 영향을, 도구변수(Z)가 처치(T)에 미치는 영향인&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt; &quot;순응률&quot;로 조정함으로써, 순응자들에 대한 평균 처치효과를 식별할 수 있음&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;597&quot; data-origin-height=&quot;79&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/NYXw7/btsIQmZuSLb/JuLWqoSnkkfaErTpEOKUU1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/NYXw7/btsIQmZuSLb/JuLWqoSnkkfaErTpEOKUU1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/NYXw7/btsIQmZuSLb/JuLWqoSnkkfaErTpEOKUU1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNYXw7%2FbtsIQmZuSLb%2FJuLWqoSnkkfaErTpEOKUU1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;476&quot; height=&quot;63&quot; data-origin-width=&quot;597&quot; data-origin-height=&quot;79&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size14&quot; style=&quot;text-align: right;&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;(순응률이 0~1 사이이므로 ATE * 순응률 = ITTE가 하향편향되어 나왔던 것)&lt;/span&gt;&lt;/p&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;하지만 여전히 ITTE * 순응률도 ATE라 할 수 없고, &lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;LATE&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;(Local Average Treatment Effect, 국지적 평균 처치효과)만 구할 수 있게 된다.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt; 
 &lt;li&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;LATE는 프라임 카드를 사용가능할 때(Z), 보유(T)한 사람들의 효과&lt;/b&gt;&lt;/span&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;추가로 더 알고 싶은 건, &lt;b&gt;고객당 추가 구매금액(Y)의 효과가 프라임 카드의 비용을 상회하는지&lt;/b&gt; 여부&lt;/span&gt; 
  &lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt; 
   &lt;li&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;위 값은 모두 프라임 카드를 선택한 사람들에게만 발생하기에, &lt;b&gt;ATE가 아닌 LATE만 구해도 충분하다.&lt;/b&gt; (은행은 카드를 선택하지 않을 사람들의 효과에는 신경 쓰지 X)&lt;/span&gt;&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
&lt;/ul&gt;&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot;&gt;&lt;p data-ke-size=&quot;size18&quot; style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;b&gt;11.4&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt; 1단계&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;954&quot; data-origin-height=&quot;289&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/edjoKb/btsIPtFf4Zr/fYmfKIBl2KEByGJQl5zOXK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/edjoKb/btsIPtFf4Zr/fYmfKIBl2KEByGJQl5zOXK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/edjoKb/btsIPtFf4Zr/fYmfKIBl2KEByGJQl5zOXK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FedjoKb%2FbtsIPtFf4Zr%2FfYmfKIBl2KEByGJQl5zOXK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;560&quot; height=&quot;170&quot; data-origin-width=&quot;954&quot; data-origin-height=&quot;289&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;도구변수 분석의 첫 단계를 1단계 회귀라 부른다.&lt;/span&gt;&lt;/p&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;1단계 회귀&lt;/b&gt;&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;: 처치(T)를 도구변수(Z)에 회귀하는 단계로, &lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;연관성 가정(Z가 T에 영향을 미쳐야함)을 &lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;확인하는 과정&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;haskell&quot; style=&quot;color: #212121; text-align: start;&quot;&gt;&lt;code&gt;first_stage = smf.ols(&quot;prime_card ~ prime_elegible&quot;, data=df).fit()
first_stage.summary().tables[1]&lt;/code&gt;&lt;/pre&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;734&quot; data-origin-height=&quot;138&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cA8MX4/btsIOWnrEqg/nv98ayjKxQSOArMHvZEyoK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cA8MX4/btsIOWnrEqg/nv98ayjKxQSOArMHvZEyoK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cA8MX4/btsIOWnrEqg/nv98ayjKxQSOArMHvZEyoK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcA8MX4%2FbtsIOWnrEqg%2Fnv98ayjKxQSOArMHvZEyoK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;479&quot; height=&quot;90&quot; data-origin-width=&quot;734&quot; data-origin-height=&quot;138&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;순응률은 약 42%로 추정되며, 유의하다.&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;이 예제에서는&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt; 실제 순응률을 알고 있기에 확인해보면, 실제 순응률과 일치함&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;python&quot; style=&quot;color: #212121; text-align: start;&quot; data-ke-language=&quot;python&quot;&gt;&lt;code&gt;df.groupby(&quot;categ&quot;).size()/len(df)
&amp;gt; categ
complier       0.4269
never-taker    0.5731
dtype: float64&lt;/code&gt;&lt;/pre&gt;&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot;&gt;&lt;p data-ke-size=&quot;size18&quot; style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;b&gt;11.5&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt; 2단계&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;2단계(축약형)&lt;/b&gt;&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;: 결과(Y)를 도구변수(Z)에 회귀하여 &lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;처치의도효과(ITTE)&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;를 추정&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;haskell&quot; style=&quot;color: #212121; text-align: start;&quot;&gt;&lt;code&gt;red_form = smf.ols(&quot;pv ~ prime_elegible&quot;, data=df).fit()
red_form.summary().tables[1]&lt;/code&gt;&lt;/pre&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;769&quot; data-origin-height=&quot;139&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/NR6UG/btsIQLkmtIU/rVnEWMnSi57o5K1OTafpYK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/NR6UG/btsIQLkmtIU/rVnEWMnSi57o5K1OTafpYK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/NR6UG/btsIQLkmtIU/rVnEWMnSi57o5K1OTafpYK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNR6UG%2FbtsIQLkmtIU%2FrVnEWMnSi57o5K1OTafpYK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;470&quot; height=&quot;85&quot; data-origin-width=&quot;769&quot; data-origin-height=&quot;139&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;1단계 회귀의 매개변수 추정값으로 나누면 LATE에 대한 추정값을 얻을 수 있다.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;python&quot; style=&quot;color: #212121; text-align: start;&quot; data-ke-language=&quot;python&quot;&gt;&lt;code&gt;late = (red_form.params[&quot;prime_elegible&quot;] /
        first_stage.params[&quot;prime_elegible&quot;])
late
&amp;gt; 757.6973795343938&lt;/code&gt;&lt;/pre&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;이 예제에서는 실제 순응자에 대한 효과를 계산할 수 있기에 구한 LATE 추정값이 실제값에 근접한지 확인&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;python&quot; style=&quot;color: #212121; text-align: start;&quot; data-ke-language=&quot;python&quot;&gt;&lt;code&gt;df.groupby(&quot;categ&quot;)[&quot;tau&quot;].mean()
&amp;gt; categ
complier       700.0
never-taker    200.0
Name: tau, dtype: float64&lt;/code&gt;&lt;/pre&gt;&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;완전히 일치하지는 않는다.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;도구변수 추정값의 표준오차를 계산할 수 있는, LATE를 추정하는 다른 방법인 2단계 최소제곱법을 살펴보자&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot;&gt;&lt;p data-ke-size=&quot;size18&quot; style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;b&gt;11.6&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt; 2단계 최소제곱법&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;300&quot; data-origin-height=&quot;155&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/beZM3B/btsIODn8tJP/LiiKnitAwJgkMWUuB55oFK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/beZM3B/btsIODn8tJP/LiiKnitAwJgkMWUuB55oFK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/beZM3B/btsIODn8tJP/LiiKnitAwJgkMWUuB55oFK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbeZM3B%2FbtsIODn8tJP%2FLiiKnitAwJgkMWUuB55oFK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;231&quot; height=&quot;119&quot; data-origin-width=&quot;300&quot; data-origin-height=&quot;155&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;처치(T)의 원인은 두 가지 변수이다.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;랜덤화된 도구변수(Z)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;교란편향이 발생하는 U변수&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt; 
 &lt;li&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;앞서 살펴본 1단계 회귀(T~Z) 단계는 본질적으로 경로 Z→T를 추정하는 것을 의미함&lt;/span&gt; 
  &lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt; 
   &lt;li&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;1단계에서의 예측값인 T햇을 편향이 제거된 T로 볼 수 있다.&lt;/span&gt;&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;그리고 2단계 축약형(Y~Z) 단계는 Y를 편향이 제거된 T에 회귀하여 이전과 같은 도구변수 추정값을 얻게 됨&lt;/span&gt;&lt;/li&gt; 
&lt;/ul&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;코드로 확인해보면,&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;haskell&quot; style=&quot;color: #212121; text-align: start;&quot;&gt;&lt;code&gt;iv_regr = smf.ols(
    &quot;pv ~ prime_card&quot;,
    data=df.assign(prime_card=first_stage.fittedvalues)).fit()

iv_regr.summary().tables[1]&lt;/code&gt;&lt;/pre&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;740&quot; data-origin-height=&quot;145&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/HrWwU/btsIOHcRACb/dPi0HDVBDX4V71xijzCAM0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/HrWwU/btsIOHcRACb/dPi0HDVBDX4V71xijzCAM0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/HrWwU/btsIOHcRACb/dPi0HDVBDX4V71xijzCAM0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FHrWwU%2FbtsIOHcRACb%2FdPi0HDVBDX4V71xijzCAM0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;475&quot; height=&quot;93&quot; data-origin-width=&quot;740&quot; data-origin-height=&quot;145&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt; 
 &lt;li&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;위 접근법을 &lt;b&gt;2단계 최소제곱법(two-stage least square, 2SLS)&lt;/b&gt;라 한다.&lt;/span&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;위 접근법이 더 유용한 이유는,&amp;nbsp;&lt;/span&gt; 
  &lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt; 
   &lt;li&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;표준오차를 적절하게 계산할 수 있고,&lt;/span&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;회귀 모델에서 변수를 추가할 때만큼 쉽게 도구변수(Z),공변량을 더 추가할 수 있기 때문&lt;/span&gt;&lt;/li&gt; 
  &lt;/ol&gt; &lt;/li&gt; 
&lt;/ul&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;두 가지 이유에 대해 더 살펴보자.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot;&gt;&lt;p data-ke-size=&quot;size18&quot; style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;b&gt;11.7&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt; 표준오차&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;2단계 축약형(Y~Z) 단계 예측의 잔차는 다음과 같이 정의된다.&lt;/span&gt;&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;187&quot; data-origin-height=&quot;61&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/8LQT9/btsIPxAMywx/KrCyg2slGSDpouuOaVB0X1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/8LQT9/btsIPxAMywx/KrCyg2slGSDpouuOaVB0X1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/8LQT9/btsIPxAMywx/KrCyg2slGSDpouuOaVB0X1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F8LQT9%2FbtsIPxAMywx%2FKrCyg2slGSDpouuOaVB0X1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;162&quot; height=&quot;53&quot; data-origin-width=&quot;187&quot; data-origin-height=&quot;61&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;여기에서 T는 예측된 T햇이 아니라, 기존의 처치를 사용&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;위의 잔차로 도구변수(Z) 추정값에 대한 표준오차를 계산하면,&lt;/span&gt;&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;315&quot; data-origin-height=&quot;96&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kBSKJ/btsIPxneDY3/OwgOjfRw2JyWOZiN7fLBN1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kBSKJ/btsIPxneDY3/OwgOjfRw2JyWOZiN7fLBN1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kBSKJ/btsIPxneDY3/OwgOjfRw2JyWOZiN7fLBN1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkBSKJ%2FbtsIPxneDY3%2FOwgOjfRw2JyWOZiN7fLBN1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;220&quot; height=&quot;67&quot; data-origin-width=&quot;315&quot; data-origin-height=&quot;96&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #1f1f1f;&quot;&gt; βz,lst 는 1단계 회귀 단계에서 얻은 예상 순응률을 의미&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;python&quot; style=&quot;color: #212121; text-align: start;&quot; data-ke-language=&quot;python&quot;&gt;&lt;code&gt;Z = df[&quot;prime_elegible&quot;]
T = df[&quot;prime_card&quot;]
n = len(df)&lt;/code&gt;&lt;/pre&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;잔차(e_iv) 구하기&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt; (표준오차의 분자)&lt;/span&gt;&lt;/p&gt;&lt;pre data-ke-type=&quot;codeblock&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot;&gt;&lt;code&gt;# iv_regr.resid 와 다름에 유의 (T햇이 아닌 T를 사용)
e_iv = df[&quot;pv&quot;] - iv_regr.predict(df)&lt;/code&gt;&lt;/pre&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;순응률 구하기&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre data-ke-type=&quot;codeblock&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot;&gt;&lt;code&gt;compliance = np.cov(T, Z)[0, 1]/Z.var()&lt;/code&gt;&lt;/pre&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;표준오차(se) 구하기&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre data-ke-type=&quot;codeblock&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot;&gt;&lt;code&gt;se = np.std(e_iv)/(compliance*np.std(Z)*np.sqrt(n))&lt;/code&gt;&lt;/pre&gt;&lt;pre data-ke-type=&quot;codeblock&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot;&gt;&lt;code&gt;print(&quot;SE IV:&quot;, se)
print(&quot;95% CI:&quot;, [late - 2*se, late + 2*se])

&amp;gt; SE IV: 80.52861026141942
95% CI: [596.6401590115549, 918.7546000572327]&lt;/code&gt;&lt;/pre&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;패키지(&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;IV2SLS&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;)를 이용해서 LATE 추정값과 표준오차 구하기&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;python&quot; style=&quot;color: #212121; text-align: start;&quot; data-ke-language=&quot;python&quot;&gt;&lt;code&gt;from linearmodels import IV2SLS
# 1단계 회귀(T~Z)를 공식 안에 넣고
formula = 'pv ~ 1 + [prime_card ~ prime_elegible]'
# 도구변수 모델 적합
iv_model = IV2SLS.from_formula(formula, df).fit(cov_type=&quot;unadjusted&quot;)

iv_model.summary.tables[1]&lt;/code&gt;&lt;/pre&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;830&quot; data-origin-height=&quot;139&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/loybd/btsIQETeBdA/rizJZAoU1VLHS6p8F8Sjq1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/loybd/btsIQETeBdA/rizJZAoU1VLHS6p8F8Sjq1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/loybd/btsIQETeBdA/rizJZAoU1VLHS6p8F8Sjq1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Floybd%2FbtsIQETeBdA%2FrizJZAoU1VLHS6p8F8Sjq1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;525&quot; height=&quot;88&quot; data-origin-width=&quot;830&quot; data-origin-height=&quot;139&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;표준오차 공식을 다시 보면,&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;315&quot; data-origin-height=&quot;96&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b2Awx5/btsIQ1UXPdM/048KK76yWSdijaNgRAFGD1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b2Awx5/btsIQ1UXPdM/048KK76yWSdijaNgRAFGD1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b2Awx5/btsIQ1UXPdM/048KK76yWSdijaNgRAFGD1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb2Awx5%2FbtsIQ1UXPdM%2F048KK76yWSdijaNgRAFGD1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;233&quot; height=&quot;71&quot; data-origin-width=&quot;315&quot; data-origin-height=&quot;96&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;분모에 순응률 &lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #1f1f1f;&quot;&gt;βz,lst이라는 추가 항이 생겨서&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt; 
 &lt;li&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;만약 &lt;b&gt;순응률이 100%&lt;/b&gt;인 경우, Z=T,&amp;nbsp; &lt;span style=&quot;background-color: #ffffff; color: #1f1f1f; text-align: left;&quot;&gt;βz,lst=1이 되고&lt;b&gt; OLS 표준오차를 다시&lt;/b&gt; 얻게될 것이고,&lt;/span&gt;&lt;/span&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;span style=&quot;color: #1f1f1f;&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;b&gt;순응률이 50%라면,&lt;/b&gt; 분모에있는 &amp;nbsp;&lt;span style=&quot;background-color: #ffffff; color: #1f1f1f; text-align: left;&quot;&gt;βz,lst=0.5가 되어 &lt;/span&gt;도구변수 표준오차는 OLS때보다 &lt;b&gt;2배 커짐&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; 
  &lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt; 
   &lt;li&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;따라서 &lt;b&gt;순응률이 50%인 실험에 필요한 표본 크기는&lt;/b&gt; 순응률이 100%인 경우의&lt;b&gt; 4배가 된다.&lt;/b&gt;&lt;/span&gt;&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
&lt;/ul&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;예상 순응률을 가정하여 LATE 매개변수 추정값에 대한 신뢰구간 크기를 비교해보면,&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1049&quot; data-origin-height=&quot;455&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Xe5gE/btsIOT5s40U/wwhmiZDSoRTZli1lZoyFmk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Xe5gE/btsIOT5s40U/wwhmiZDSoRTZli1lZoyFmk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Xe5gE/btsIOT5s40U/wwhmiZDSoRTZli1lZoyFmk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FXe5gE%2FbtsIOT5s40U%2FwwhmiZDSoRTZli1lZoyFmk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;565&quot; height=&quot;245&quot; data-origin-width=&quot;1049&quot; data-origin-height=&quot;455&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;순응률이 커질 수록 신뢰구간은 좁아지고, 필요한 표본의 수는 줄어든다.&lt;/b&gt;&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;→ &lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;실제 사례에서는&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt; 카드를 선택하는(Z) 고객이 일부이기에, &lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;순응률이 50%만큼 높기 쉽지 않아&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt; LATE를 추정하기 어려움&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt; → 순응률이 낮으면 큰 표본이 필요하기 때문에 &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;큰 표본을 수집하는 것도 비현실적&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;이다.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;위와 같은 문제가 있을 때, 도구변수 표준오차를 낮출 수 있는 방법이 있다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot;&gt;&lt;p data-ke-size=&quot;size18&quot; style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;b&gt;11.8&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt; 통제변수와 도구변수 추가&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;954&quot; data-origin-height=&quot;289&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/beOkdB/btsIOl2pBRv/CwaGZl09O6FWk8aB3a6meK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/beOkdB/btsIOl2pBRv/CwaGZl09O6FWk8aB3a6meK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/beOkdB/btsIOl2pBRv/CwaGZl09O6FWk8aB3a6meK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbeOkdB%2FbtsIOl2pBRv%2FCwaGZl09O6FWk8aB3a6meK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;563&quot; height=&quot;171&quot; data-origin-width=&quot;954&quot; data-origin-height=&quot;289&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;프라임 신용카드 데이터에 세 가지 공변량(소득, 나이, 신용점수)이 있었다.&lt;/span&gt;&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;482&quot; data-origin-height=&quot;305&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/djBKQl/btsIPZRfwJi/s82MHsDJucK6EyFK2XszHk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/djBKQl/btsIPZRfwJi/s82MHsDJucK6EyFK2XszHk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/djBKQl/btsIPZRfwJi/s82MHsDJucK6EyFK2XszHk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdjBKQl%2FbtsIPZRfwJi%2Fs82MHsDJucK6EyFK2XszHk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;271&quot; height=&quot;171&quot; data-origin-width=&quot;482&quot; data-origin-height=&quot;305&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;소득:&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt; 결과(Y) 예측력이 높지만, 순응 여부(Z→T) 는 예측하지 못함&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;신용점수:&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt; 순응 여부(Z→T)는 예측하지만, 결과(Y)는 예측하지 못함&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;나이:&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt; 순응 여부(Z→T) 와 결과(Y)에 모두 영향을 미치는 교란 요인&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;→ 여기서&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt; 신용점수&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;는 도구변수(Z)처럼 3가지 가정을 만족하며, 추가적으로 단조성만 가정하면 추가 도구변수로 취급할 수 있다.&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;pre data-ke-type=&quot;codeblock&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot;&gt;&lt;code&gt;formula = 'pv ~ 1 + [prime_card ~ prime_elegible + credit_score]'
iv_model = IV2SLS.from_formula(formula, df).fit()

iv_model.summary.tables[1]&lt;/code&gt;&lt;/pre&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;820&quot; data-origin-height=&quot;142&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nAK25/btsIPLyY16M/OCkUsF0SRSF4lLZ8O98dyK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nAK25/btsIPLyY16M/OCkUsF0SRSF4lLZ8O98dyK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nAK25/btsIPLyY16M/OCkUsF0SRSF4lLZ8O98dyK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnAK25%2FbtsIPLyY16M%2FOCkUsF0SRSF4lLZ8O98dyK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;543&quot; height=&quot;94&quot; data-origin-width=&quot;820&quot; data-origin-height=&quot;142&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;두 가지 문제가 생긴다.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt; 
 &lt;li&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;신용점수를 도구변수로 취급하는 대신, 조건부로 두고 2번째(축약형, Y~Z) 단계에도 추가하면, 오차가 증가한다.&lt;/span&gt; 
  &lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt; 
   &lt;li&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;결과(Y)가 아닌,&lt;b&gt; 처치(T)의 원인을 조건으로 두면 추정값의 분산이 증가&lt;/b&gt;한다.(4장)&lt;/span&gt;&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;도구변수(Z) 배정 메커니즘을 알지 못하면, &lt;b&gt;배제 제약이 위배되는지 알기 어려움&lt;/b&gt;&lt;/span&gt; 
  &lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt; 
   &lt;li&gt;&lt;span style=&quot;font-family: 'Noto Serif KR'; color: #333333; text-align: left;&quot;&gt;&lt;b&gt; 배제 제약:&lt;/b&gt; 처치(T)를 통하지 않고는, 도구변수(Z)에서 결과(Y)로 가는 경로가 없어야 함 &lt;/span&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;이 예제에서는 신용점수가 Y에 미치지 않는다고 가정했지만, &lt;b&gt;현실에서는 찾기 어려움&lt;/b&gt;(&lt;b&gt;나이 처럼 Y와 순응 모두에 영향 주는 경우가 多&lt;/b&gt;)&lt;/span&gt;&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
&lt;/ol&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;결과(Y, 구매 금액)를 잘 예측할 통제변수(고객 소득, 나이)를 포함해서 도구변수 추정값의 분산을 줄여보자.&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;awk&quot; style=&quot;color: #212121; text-align: start;&quot;&gt;&lt;code&gt;formula = '''pv ~ 1 
+ [prime_card ~ prime_elegible + credit_score]
+ income + age'''

iv_model = IV2SLS.from_formula(formula, df).fit(cov_type=&quot;unadjusted&quot;)

iv_model.summary.tables[1]&lt;/code&gt;&lt;/pre&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;819&quot; data-origin-height=&quot;240&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dP3BNT/btsIO13n5ct/2Xus1k8armWLOavuC9arF0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dP3BNT/btsIO13n5ct/2Xus1k8armWLOavuC9arF0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dP3BNT/btsIO13n5ct/2Xus1k8armWLOavuC9arF0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdP3BNT%2FbtsIO13n5ct%2F2Xus1k8armWLOavuC9arF0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;474&quot; height=&quot;139&quot; data-origin-width=&quot;819&quot; data-origin-height=&quot;240&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;→ 하지만, 나이는 순응과 결과 모두에 영향을 미쳐 순응에 더 큰 영향을 미친다면(처치에 대한 설명력이 더 높다면) 분산이 커질 수 있다.&lt;/span&gt;&lt;/p&gt;&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot;&gt;&lt;p data-ke-size=&quot;size18&quot; style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;b&gt;11.8.1&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt; 2SLS 직접 구현&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;1단계:&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt; T ~ Z &lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;+ X&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;2단계:&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt; Y ~ T_hat &lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;+ X&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;pre class=&quot;python&quot; style=&quot;color: #212121; text-align: start;&quot; data-ke-language=&quot;python&quot;&gt;&lt;code&gt;formula_1st = &quot;prime_card ~ prime_elegible + credit_score + income+age&quot;
first_stage = smf.ols(formula_1st, data=df).fit()

iv_model = smf.ols(
    &quot;pv ~ prime_card + income + age&quot;,
    data=df.assign(prime_card=first_stage.fittedvalues)).fit()&lt;/code&gt;&lt;/pre&gt;&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot;&gt;&lt;p data-ke-size=&quot;size18&quot; style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;b&gt;11.8.2&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt; 행렬 구현&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p data-ke-size=&quot;size18&quot; style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;위와 같이 구하면 linearmodels 사용했을 때와 표준오차가 달라지는데, 이는 &lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;표준오차 행렬&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;로 구할 수 있음&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;python&quot; style=&quot;color: #212121; text-align: start;&quot; data-ke-language=&quot;python&quot;&gt;&lt;code&gt;Z = df[[&quot;prime_elegible&quot;, &quot;credit_score&quot;, &quot;income&quot;, &quot;age&quot;]].values
X = df[[&quot;prime_card&quot;, &quot;income&quot;, &quot;age&quot;]].values
Y = df[[&quot;pv&quot;]].values&lt;/code&gt;&lt;/pre&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;처치 행렬과 도구변수 행렬 모두에 추가 공변량을 두어야 한다.&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt; &lt;/span&gt;&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;250&quot; data-origin-height=&quot;62&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bP9Prd/btsIOGZtnSZ/7YHSfWa6khOKMUuAQR0pB1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bP9Prd/btsIOGZtnSZ/7YHSfWa6khOKMUuAQR0pB1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bP9Prd/btsIOGZtnSZ/7YHSfWa6khOKMUuAQR0pB1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbP9Prd%2FbtsIOGZtnSZ%2F7YHSfWa6khOKMUuAQR0pB1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;190&quot; height=&quot;47&quot; data-origin-width=&quot;250&quot; data-origin-height=&quot;62&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;pre data-ke-type=&quot;codeblock&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot;&gt;&lt;code&gt;def add_intercept(x):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return np.concatenate([np.ones((x.shape[0], 1)), x], axis=1)

Z_ = add_intercept(Z)
X_ = add_intercept(X)&lt;/code&gt;&lt;/pre&gt;&lt;pre data-ke-type=&quot;codeblock&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot;&gt;&lt;code&gt;# Z_.dot(...) 는 사전에 곱해야 함
# NxN matrix 생성
X_hat = Z_.dot(np.linalg.inv(Z_.T.dot(Z_)).dot(Z_.T).dot(X_))&lt;/code&gt;&lt;/pre&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;222&quot; data-origin-height=&quot;47&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/udLDl/btsIOqWSGgj/kKNsoJfji5coj8JjCTYzjK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/udLDl/btsIOqWSGgj/kKNsoJfji5coj8JjCTYzjK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/udLDl/btsIOqWSGgj/kKNsoJfji5coj8JjCTYzjK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FudLDl%2FbtsIOqWSGgj%2FkKNsoJfji5coj8JjCTYzjK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;184&quot; height=&quot;39&quot; data-origin-width=&quot;222&quot; data-origin-height=&quot;47&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;pre data-ke-type=&quot;codeblock&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot;&gt;&lt;code&gt;b_iv = np.linalg.inv(X_hat.T.dot(X_hat)).dot(X_hat.T).dot(Y)
b_iv[1]
&amp;gt; array([693.12072518])&lt;/code&gt;&lt;/pre&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;얻게 된 계수(b_iv)로 &lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;도구변수의 잔차와 분산 계산&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;438&quot; data-origin-height=&quot;70&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Cc4dO/btsIPZcGuI4/kDfXea5hSvqzEsFzwjfPvk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Cc4dO/btsIPZcGuI4/kDfXea5hSvqzEsFzwjfPvk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Cc4dO/btsIPZcGuI4/kDfXea5hSvqzEsFzwjfPvk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCc4dO%2FbtsIPZcGuI4%2FkDfXea5hSvqzEsFzwjfPvk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;275&quot; height=&quot;44&quot; data-origin-width=&quot;438&quot; data-origin-height=&quot;70&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;pre class=&quot;python&quot; style=&quot;color: #212121; text-align: start;&quot; data-ke-language=&quot;python&quot;&gt;&lt;code&gt;e_hat_iv = (Y - X_.dot(b_iv))
var = e_hat_iv.var()*np.diag(np.linalg.inv(X_hat.T.dot(X_hat)))
np.sqrt(var[1])
&amp;gt; 12.164694395033125&lt;/code&gt;&lt;/pre&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;추가 공변량 없이 &lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;이전과 유사한 표준오차&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt; 값을 구할 수 있다.&lt;/span&gt;&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;287&quot; data-origin-height=&quot;98&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lK3YY/btsIOUXzySC/syeYtnk73LJZ7h3a2tlo0k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lK3YY/btsIOUXzySC/syeYtnk73LJZ7h3a2tlo0k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lK3YY/btsIOUXzySC/syeYtnk73LJZ7h3a2tlo0k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlK3YY%2FbtsIOUXzySC%2FsyeYtnk73LJZ7h3a2tlo0k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;170&quot; height=&quot;58&quot; data-origin-width=&quot;287&quot; data-origin-height=&quot;98&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;pre data-ke-type=&quot;codeblock&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot;&gt;&lt;code&gt;t_tilde = smf.ols(&quot;prime_card ~ income + age&quot;, data=df).fit().resid
e_hat_iv.std()/(t_tilde.std()*np.sqrt(n*first_stage.rsquared))
&amp;gt; 12.156252763192523&lt;/code&gt;&lt;/pre&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;위 표준오차 공식을 통해 표본 크기를 늘리는 방법 이외에 표준오차를 줄이는 방법을 3가지 알 수 있다.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;1단계의 R^2 증가시키기 - &lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;u&gt;순응을 잘 예측하는 강력한 도구변수&lt;/u&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt; 찾기&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;u&gt;T에 대한 예측력이 높은 변수를 제거&lt;/u&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;하기&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;Y에 대한 예측력이 높은 변수를 찾아서&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt; 2단계 잔차 줄이기 (가장 현실적)&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot;&gt;&lt;p data-ke-size=&quot;size18&quot; style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;b&gt;11.9&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt; 불연속 설계&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;회귀 불연속 설계(RDD, Regression Discontinuity Design)&lt;/b&gt;&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;: 처치배정에 인위적인 불연속성을 활용하여 처치효과를 식별하는 방법&lt;/span&gt;&lt;br&gt;&amp;nbsp;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;적용 사례&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt; 
 &lt;li&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;소득이 $50 미만인 빈곤층 가정만 혜택을 받을 수 있는 상황&lt;/span&gt; 
  &lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt; 
   &lt;li&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;$50에서 프로그램 배정에 불연속성을 만듦&lt;/span&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;두 그룹이 유사하다는 전제하에, 연구자가 &lt;b&gt;임곗값 바로 위/아래&lt;/b&gt;에 있는 가정을 비교하여 프로그램의 효과를 측정할 수 있게 함&lt;/span&gt;&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;대학 입시의 영향을 구하고자할 때: &lt;b&gt;합격 기준선 바로 위/아래&lt;/b&gt;에서 점수를 받은 학생들을 비교&lt;/span&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;여성이 정치에 미치는 영향을 평가할 때: 여성 후보가&lt;b&gt; 소수점 차이로 패배한 도시와 승리한 도시를 비교&lt;/b&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt; 
&lt;/ol&gt;&lt;p data-ke-size=&quot;size14&quot; style=&quot;text-align: right;&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;※ 학계에서는 널리 사용되지만, 실전에서 적용이 제한적이다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;임곗값을 하나의 '도구변수'로 이해&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;은행이 &lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;모든 고객에게&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt; 신용카드를 &lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;제공하되&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt; 잔고가&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;$5000 이하인 고객에게 수수료를 부과&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;한다면,&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;카드 &lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;제공 방식에 불연속성&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;이 만들어져 &lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;잔액이 임곗값 이상인 고객은 프라임 카드를 선택&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;할 가능성이 높고, 이하인 고객은 낮음&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;따라서 임곗값을 초과하는 고객과 그렇지 않은 고객의 특성이 비슷하다면, 회귀 불연속 설계를 활용할 수 있음&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot;&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;✅&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt; 회귀 불연속 설계와 도구변수의 관계&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;불연속 설계에서의 도구변수&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;Z = 계좌 잔고(임곗값, $5,000)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;처치(프라임 카드)를 받을 확률을 높임 - &lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;임곗값을 넘으면 P(T=1)이 급증함&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;1. 불연속 설계에서 잠재적 결과 Y&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;556&quot; data-origin-height=&quot;225&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cTn0v6/btsIPlnmIVy/wlMSRabZs6hJ6YAqK51eVk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cTn0v6/btsIPlnmIVy/wlMSRabZs6hJ6YAqK51eVk/img.png&quot; data-alt=&quot;실선 - 관측값, 점선 - 반사실 (X축은 계좌 잔고, 세로 선은 $5,000)&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cTn0v6/btsIPlnmIVy/wlMSRabZs6hJ6YAqK51eVk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcTn0v6%2FbtsIPlnmIVy%2FwlMSRabZs6hJ6YAqK51eVk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;418&quot; height=&quot;169&quot; data-origin-width=&quot;556&quot; data-origin-height=&quot;225&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;실선 - 관측값, 점선 - 반사실 (X축은 계좌 잔고, 세로 선은 $5,000)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;도구변수(계좌 잔고)로 인한 처치(T) 확률의 변화가 결과(Y)에 미치는 영향을 보여줌&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;임곗값 바로 위/아래가 불연속 - 잔고 $5,000 기준으로 결과(Y)에 차이가 난다.&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;2. 불연속 설계에서 잠재적 처치 T&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;556&quot; data-origin-height=&quot;255&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/DnGpn/btsIQf7HoK9/B8ffkn2NAmGDF4gEzCFSd1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/DnGpn/btsIQf7HoK9/B8ffkn2NAmGDF4gEzCFSd1/img.png&quot; data-alt=&quot;실선 - 관측값, 점선 - 반사실&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/DnGpn/btsIQf7HoK9/B8ffkn2NAmGDF4gEzCFSd1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FDnGpn%2FbtsIQf7HoK9%2FB8ffkn2NAmGDF4gEzCFSd1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;416&quot; height=&quot;191&quot; data-origin-width=&quot;556&quot; data-origin-height=&quot;255&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;실선 - 관측값, 점선 - 반사실&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;계좌 잔고(도구변수)에 따른 반사실 처치를 보여줌&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;도구변수는 $5,000을 임곗값으로 &lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;잔고가 $5,000 미만일 때 T0 (임곗값 아래일 때 &lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;, 그렇지 않으면 T1을 관측할 수 있음&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt; ❗임곗값에서의 처치효과는 실제보다 작게 보인다.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;임곗값을 초과하더라도 처치 확률이 1보다 작으면 관측한 결과(Y)가 실제 잠재적 결과 Y1보다 작아짐&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;임곗값 아래에서 관측한 결과는 실제 잠재적 결과 Y0보다 높음&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;→ 도구변수를 사용해서 이를 보정해야 한다.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot;&gt;&lt;p data-ke-size=&quot;size18&quot; style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;b&gt;11.9.1&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt; 불연속 설계 가정&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;도구 변수 가정 이외에 &lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;추가 가정이 필요&lt;/b&gt;&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;: 잠재적 결과 및 잠재적 처치 함수의 평활도에 대한 추가 가정&lt;/b&gt;&lt;/span&gt;&lt;br&gt;&amp;nbsp;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;1. 처치 확률이 임곗값 R=c에서 불연속 함수가 되도록 &lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;배정 변수 R(running variable)&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;을 정의하고자 함&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;R: 계좌 잔고&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;c: 5,000&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;❗&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;불연속 지점인 R=c에서 잠재적 결과 Yt와 잠재적 처치 Tz는 왼쪽에서 접근하든(r→c-) 오른쪽에서 접근하든(r→c+) 동일&lt;/span&gt;&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;310&quot; data-origin-height=&quot;82&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ba0fNB/btsIPszWL45/y0btwU8KlQM5dBBD5nWij1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ba0fNB/btsIPszWL45/y0btwU8KlQM5dBBD5nWij1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ba0fNB/btsIPszWL45/y0btwU8KlQM5dBBD5nWij1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fba0fNB%2FbtsIPszWL45%2Fy0btwU8KlQM5dBBD5nWij1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;310&quot; height=&quot;82&quot; data-origin-width=&quot;310&quot; data-origin-height=&quot;82&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;위 가정을 바탕으로 회귀 불연속 설계에 대한 LATE 추정량을 유도하면,&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;444&quot; data-origin-height=&quot;121&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/9wWL1/btsIPlOwb7f/fBk9gQVaFnO9sv7a9KCk7k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/9wWL1/btsIPlOwb7f/fBk9gQVaFnO9sv7a9KCk7k/img.png&quot; data-alt=&quot;회귀 불연속 설계에 대한 LATE&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/9wWL1/btsIPlOwb7f/fBk9gQVaFnO9sv7a9KCk7k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F9wWL1%2FbtsIPlOwb7f%2FfBk9gQVaFnO9sv7a9KCk7k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;444&quot; height=&quot;121&quot; data-origin-width=&quot;444&quot; data-origin-height=&quot;121&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;회귀 불연속 설계에 대한 LATE&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;위 추정량은 &lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;두 가지 의미에서 국소적&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;임곗값 R=c에서만&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt; 처치효과를 줌&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;순응자&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;의 처치효과만 추정함&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot;&gt;&lt;p data-ke-size=&quot;size18&quot; style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;b&gt;11.9.2&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt; 처치 의도 효과&lt;/b&gt;&lt;/span&gt;&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;배정 변수(R)인 balance(잔고)가 추가된 프라임 카드 데이터&lt;/span&gt;&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;608&quot; data-origin-height=&quot;277&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vEOCZ/btsIOIXAsNz/kaYCAJUGfRRJm84cTcpl11/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vEOCZ/btsIOIXAsNz/kaYCAJUGfRRJm84cTcpl11/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vEOCZ/btsIOIXAsNz/kaYCAJUGfRRJm84cTcpl11/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvEOCZ%2FbtsIOIXAsNz%2FkaYCAJUGfRRJm84cTcpl11%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;478&quot; height=&quot;218&quot; data-origin-width=&quot;608&quot; data-origin-height=&quot;277&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt; 
 &lt;li&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;배정 변수인 잔고를 중심으로 조정하여 임곗값을 0으로 옮겨주기 (+해석도 더 쉬워짐) &lt;/span&gt; 
  &lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt; 
   &lt;li&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;불연속 지점($5,000)을 배정변수에서 빼줌&lt;/span&gt;&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;임곗값 위에 있는지 여부를 나타내는 더미변수 l(ri&amp;gt;0)&lt;/b&gt; 와, 상호작용하는 중심이 조정된 배정변수 R을 사용하여 결과변수에 대한 회귀분석을 진행(R&amp;gt;0)&lt;/span&gt; 
  &lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt; 
   &lt;li&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt; &lt;b&gt;l(ri&amp;gt;0) = 1 :&lt;/b&gt; ri가 0보다 클 때&lt;/span&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;&lt;b&gt;l(ri&amp;gt;0) = 0 :&lt;/b&gt;&lt;/b&gt; ri가 0보다 작거나 같 때&amp;nbsp;&lt;/span&gt;&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
&lt;/ol&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;367&quot; data-origin-height=&quot;41&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bqO91r/btsIQGqiPXX/DFKki9Om7ik4vhYPT0KELk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bqO91r/btsIQGqiPXX/DFKki9Om7ik4vhYPT0KELk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bqO91r/btsIQGqiPXX/DFKki9Om7ik4vhYPT0KELk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbqO91r%2FbtsIQGqiPXX%2FDFKki9Om7ik4vhYPT0KELk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;367&quot; height=&quot;41&quot; data-origin-width=&quot;367&quot; data-origin-height=&quot;41&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt; 
 &lt;li&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;β1​&lt;/span&gt;:&lt;/span&gt;&lt;/b&gt;&lt;span aria-hidden=&quot;true&quot;&gt; &lt;/span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;ri​&lt;/span&gt;가 종속 변수 &lt;span aria-hidden=&quot;true&quot;&gt;yi​&lt;/span&gt;에 미치는 기본적인 영향&lt;/span&gt;&lt;/span&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;&lt;span aria-hidden=&quot;true&quot;&gt;β2​&lt;/span&gt;: r&lt;span aria-hidden=&quot;true&quot;&gt;i​&lt;/span&gt;가 0보다 클 때&lt;/b&gt; 추가적으로 영향을 미치는 상수적인 요소&lt;/span&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;β3&lt;span aria-hidden=&quot;true&quot;&gt;​&lt;/span&gt;:&lt;/b&gt; &lt;span aria-hidden=&quot;true&quot;&gt;ri​&lt;/span&gt;가 0보다 클 때 &lt;b&gt;&lt;span aria-hidden=&quot;true&quot;&gt;ri​&lt;/span&gt;와 상호작용하여 종속 변수 &lt;span aria-hidden=&quot;true&quot;&gt;yi​&lt;/span&gt;에 미치는 추가적인 영향&lt;/b&gt;&lt;/span&gt; 
  &lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt; 
   &lt;li&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;임곗값 전후 기울기가 동일해서, 불연속 점프만을 포착하고자 한다면, 필요하지 않은 부분 ?&lt;/span&gt;&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
&lt;/ul&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;→ 여기에서 임곗값을 초과하는 것과 관련된 매개변수 추정값인 &lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;β2을 처치 의도 효과로 해석할 수 있음&lt;/b&gt;&lt;/span&gt;&lt;br&gt;&amp;nbsp;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;①&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt; 값을 5,000만큼 뺀 balance 값을 생성하고, &lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;②&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt; balance가 0보다 큰지 여부를 나타내는 &lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;더미 변수와&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;③&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt; 더미 변수와의 &lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;상호작용 항을 포함&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;한 회귀 모델 정의하기&lt;/span&gt;&lt;/p&gt;&lt;pre data-ke-type=&quot;codeblock&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot;&gt;&lt;code&gt;m = smf.ols(f&quot;pv~balance*I(balance&amp;gt;0)&quot;,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;df_dd.assign(balance = lambda d: d[&quot;balance&quot;] - 5000)).fit()
m.summary().tables[1]&lt;/code&gt;&lt;/pre&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;792&quot; data-origin-height=&quot;222&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bPUVFa/btsIRlF1CS9/jcqcQAFfSWdpUejWk4WEq0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bPUVFa/btsIRlF1CS9/jcqcQAFfSWdpUejWk4WEq0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bPUVFa/btsIRlF1CS9/jcqcQAFfSWdpUejWk4WEq0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbPUVFa%2FbtsIRlF1CS9%2FjcqcQAFfSWdpUejWk4WEq0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;628&quot; height=&quot;176&quot; data-origin-width=&quot;792&quot; data-origin-height=&quot;222&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;574&quot; data-origin-height=&quot;288&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/3vsnx/btsIRubNeeY/BMPXJYcwUTKzaw6Vj6Lzf0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/3vsnx/btsIRubNeeY/BMPXJYcwUTKzaw6Vj6Lzf0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/3vsnx/btsIRubNeeY/BMPXJYcwUTKzaw6Vj6Lzf0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F3vsnx%2FbtsIRubNeeY%2FBMPXJYcwUTKzaw6Vj6Lzf0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;484&quot; height=&quot;243&quot; data-origin-width=&quot;574&quot; data-origin-height=&quot;288&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;→ 위 식은 임곗값 위아래 두 개의 회귀선을 추정함&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt; → 여기에서 순응률이 100%라면, ITTE는 ATE가 된다. (앞서 증명함)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot;&gt;&lt;p data-ke-size=&quot;size18&quot; style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;11.9.3&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt; 도구변수 추정값&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;하지만 순응률이 100%가 아니기 때문에, ITTE를 순응률로 나누어야 ATE를 구할 수 있다.&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&amp;nbsp;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;불연속 설계에서의 순응률&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;: 임곗값을 넘을 때 처치(T) 확률이 얼마나 변하는지&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;→ 순응률을 구하기 위해서는, 이전 과정을 반복하되, &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;결과(Y) pv를 처치(T) prime_card로 대체&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;하면 됨&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&amp;nbsp;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;불연속 설계에서&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt; ITTE와 순응률을 추&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;정&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;하여&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt; 도구변수 추정값&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;(ITTE/순응률)&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;을 계산하는 함수 정의하기&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;python&quot; style=&quot;color: #212121; text-align: start;&quot; data-ke-language=&quot;python&quot;&gt;&lt;code&gt;def rdd_iv(data, y, t, r, cutoff):
    # cutoff($5,000)을 빼서 중앙정렬
    centered_df = data.assign(**{r: data[r]-cutoff})
    # 순응률 - 결과변수가 T인 회귀모델 적합
    compliance = smf.ols(f&quot;{t}~{r}*I({r}&amp;gt;0)&quot;, centered_df).fit()
    # ITTE - 결과변수가 Y인 회귀모델 적합
    itte = smf.ols(f&quot;{y}~{r}*I({r}&amp;gt;0)&quot;, centered_df).fit()
    
    param = f&quot;I({r} &amp;gt; 0)[T.True]&quot;
    # ITTE를 순응률로 나누기
    return itte.params[param]/compliance.params[param]&lt;/code&gt;&lt;/pre&gt;&lt;pre data-ke-type=&quot;codeblock&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot;&gt;&lt;code&gt;rdd_iv(df_dd, y=&quot;pv&quot;, t=&quot;prime_card&quot;, r=&quot;balance&quot;, cutoff=5000)
&amp;gt; 732.8534752298891&lt;/code&gt;&lt;/pre&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt; balance=5000이고 categ가 'complier'(순응자)인 행만 필터링&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre data-ke-type=&quot;codeblock&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot;&gt;&lt;code&gt;(df_dd
 .round({&quot;balance&quot;:-2}) # round to nearest hundred
 .query(&quot;balance==5000 &amp;amp; categ=='complier'&quot;)[&quot;tau&quot;].mean())
 &amp;gt; 700.0&lt;/code&gt;&lt;/pre&gt;&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot;&gt;&lt;p data-ke-size=&quot;size18&quot; style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;b&gt;11.9.4&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt; 밀도 불연속 테스트&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;불연속 설계에 대한 식별의 잠재적 문제&lt;/b&gt;&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;고객들이 배정변수(잔고)를 조작&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;할 수 있다면, &lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;스스로 실험군에 포함&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;시킬 수 있다.&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;예시에서 고객이 프라임 카드를 무료로 받기 위해 계좌 잔고를 $5,000까지 늘린다면, 임곗값 바로 위/아래 사람들을 비교할 수 없게 됨(평활도 가정 위배)&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;임곗값 주변의 밀도를 그래프로 나타내서 원인을 시각적으로 확인해보면,&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;707&quot; data-origin-height=&quot;360&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dA5XGv/btsIO2O4I4X/X4Ktdm9KjkoMxE4kLH8Os1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dA5XGv/btsIO2O4I4X/X4Ktdm9KjkoMxE4kLH8Os1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dA5XGv/btsIO2O4I4X/X4Ktdm9KjkoMxE4kLH8Os1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdA5XGv%2FbtsIO2O4I4X%2FX4Ktdm9KjkoMxE4kLH8Os1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;562&quot; height=&quot;286&quot; data-origin-width=&quot;707&quot; data-origin-height=&quot;360&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;뭉침(bunching, 집군) 현상:&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt; 임곗값($5,000)에서 밀도가 증가하는 현상&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt; → 이 데이터에서는 해당 현상이 나타나지 않음&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot;&gt;&lt;p data-ke-size=&quot;size18&quot; style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;span style=&quot;background-color: #9feec3;&quot;&gt;&lt;b&gt;11.10&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt; 요약&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;많은 회사들은 &lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;고객이 직접 선택할 수 있는 제품/서비스&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;를 제공하기에, &lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;불응은 흔하게 발생&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;하는 일&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;이러한 상황에서는 처치를 무작위 배정하더라도, &lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;고객의 선택이 교란&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;으로 작용함&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;1.&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;도구변수 Z&lt;/b&gt;&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;①&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt; 교란 없이 처치에 영향을 주고,&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt; ②&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt; 처치를 거치지 않으면 결과에 영향을 미치지 않는 변수&lt;/span&gt;&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;351&quot; data-origin-height=&quot;121&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/2gTCH/btsIRgdLgVR/GhdQeFJ6VqVIIAK6jmPUuK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/2gTCH/btsIRgdLgVR/GhdQeFJ6VqVIIAK6jmPUuK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/2gTCH/btsIRgdLgVR/GhdQeFJ6VqVIIAK6jmPUuK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F2gTCH%2FbtsIRgdLgVR%2FGhdQeFJ6VqVIIAK6jmPUuK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;351&quot; height=&quot;121&quot; data-origin-width=&quot;351&quot; data-origin-height=&quot;121&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;도구변수가 한 방향으로만 처치를 준다고 가정하면(단조성 가정), &lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;순응률&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;을 곱해 순응자의 ATE를 구할 수 있음&lt;/span&gt;&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;412&quot; data-origin-height=&quot;67&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/z94vt/btsIP79OqL5/CVfLLeKzIClptM23zmEWI1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/z94vt/btsIP79OqL5/CVfLLeKzIClptM23zmEWI1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/z94vt/btsIP79OqL5/CVfLLeKzIClptM23zmEWI1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fz94vt%2FbtsIP79OqL5%2FCVfLLeKzIClptM23zmEWI1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;412&quot; height=&quot;67&quot; data-origin-width=&quot;412&quot; data-origin-height=&quot;67&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;→ 처치 의도 효과(ITTE)를 순응률로 정규화해서 ATE 파악&lt;/span&gt;&lt;/p&gt;&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;2.&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;순응률이 낮은 경우,&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;분산이 커지는 문제&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;를 해결하기 위해서 더 많은 표본이 필요하지만, 부족한 경우 &lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;결과(Y)를 잘 예측하는 공변량을 찾는 방법&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;이 있음&lt;/span&gt;&lt;/p&gt;&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;3.&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;불연속성을 도구변수로 취급하여 LATE를 식별할 수 있음&lt;/span&gt;&lt;/p&gt;&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot;&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;✅ 도구변수를 활용한 실제 사례&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;380&quot; data-origin-height=&quot;129&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kV7cB/btsIQxtwFBN/UaD37L3Gn1CdU0866cRtGk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kV7cB/btsIQxtwFBN/UaD37L3Gn1CdU0866cRtGk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kV7cB/btsIQxtwFBN/UaD37L3Gn1CdU0866cRtGk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkV7cB%2FbtsIQxtwFBN%2FUaD37L3Gn1CdU0866cRtGk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;380&quot; height=&quot;129&quot; data-origin-width=&quot;380&quot; data-origin-height=&quot;129&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;학교 교육(T)이 소득(Y)에 미치는 영향&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;을 식별하고자 &lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;출생 분기(Z)를 도구변수로 활용&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;마지막 분기에 태어나면 학교를 더 오래 다닐 가능성이 높음&lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt; (처치에 영향)&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;출생분기는 수입에 직접적인 영향을 미치지 않음 &lt;/span&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;&lt;b&gt;(처치를 거치지 않으면 무작위 배정된 것처럼 보임)&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;이를 활용해서 교육 기간(T)이 1년 늘어날 때마다 평균 8.5%의 임금 상승(Y)을 기대할 수 있다고 추정하였다.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot;&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>데이터 분석/인과추론</category>
      <author>위나</author>
      <guid isPermaLink="true">https://noelee.tistory.com/242</guid>
      <comments>https://noelee.tistory.com/242#entry242comment</comments>
      <pubDate>Tue, 23 Jul 2024 22:30:17 +0900</pubDate>
    </item>
  </channel>
</rss>