책 저자의 github repo

https://github.com/BuissonFlorent/BehavioralDataAnalysis

 

GitHub - BuissonFlorent/BehavioralDataAnalysis: Support files for the O'Reilly book "Behavioral Data Analysis with R and Python"

Support files for the O'Reilly book "Behavioral Data Analysis with R and Python" by Florent Buisson - BuissonFlorent/BehavioralDataAnalysis

github.com

 

블로그 작성자의 github repo

https://github.com/woongCat/behavior_data_anlysis

 

GitHub - woongCat/behavior_data_anlysis: 행동데이터분석을 확인한 책입니다.

행동데이터분석을 확인한 책입니다. Contribute to woongCat/behavior_data_anlysis development by creating an account on GitHub.

github.com

 

1장 인과 행동 프레임워크

  • 응용 분석의 핵심
    : 인간의 행동을 변화시키려면 무엇이 행동을 유발하는지 이해하기

ex) 왜 같은 제품을 보고도 일부 사람은 구매를 하지만, 다른 사람은 구매하지 않았을까요?

  • 인과-행동 프레임워크
    : 행동이 가장 우선시 되고 이를 인관관계 다이어그램과 데이터로 이해할 수 있습니다.

행동 데이터 분석 ch.1 31페이지

1-1. 인과관계 분석을 선택한 이유

기술과 예측만으로는 인간의 행동을 파악하기 어렵기 때문이다.

- 분석의 유형
    1. 기술 분석 : 데이터에 대한 설명을 제공
    2. 예측 분석 : "현재와 같은 조건이 지속된다면~는 무엇이 될까?" 또는 "아직 측정하지 않은 것 확인"
    3. 인과관계 분석 : "만약 이렇다면?" 또는 "다른 조건에서는 어떻게 될까?"
        가장 널리 알려진 인과관계 분석 도구 = A/B 테스트
- 인간은 복잡한 존재다
    1. 여러 요인에 영향을 받는다 : 하나의 변수가 갖는 예측력은 높지 않다.
    2. 상황에 따라 다르다 : 작은 변화로 환경이 달라지면 결과를 예측하기 어렵다.
    3. 가변적이다 : 매번 굉장히 다른 행동을 보인다.
    4. 혁신적이다 : 환경조건이 변하면 한 번도 하지 않은 행동을 할 수 있다.
    5. 전략적이다 : 일부러 속임수를 쓰기도 한다.

    +) 이를 공감하지 못하는 수학적인 독자들에게
        1. 보간법(interpolation) : 새로운 데이터를 구할 때 예측한 숫자를 관측한 숫자 사이의 있는 값으로 설정하는 방법
        2. 보외법(extrapolation) : 수학에서 원래의 관찰 범위를 넘어서서 다른 변수와의 관계에 기초하여 변수의 값을 추정하는 과정
        3. 차원의 저주 : 데이터 학습을 위해 차원이 증가하면서 학습데이터 수가 차원의 수보다 적어져 성능이 저하되는 현상

1-2. 회귀 분석을 방해하는 교란

- 회귀 분석의 용도
    1. 예측 분석 : 알 수 없는(주로 미래)의 값을 추정할 때 사용
    2. 인과관계 분석 : 종속변수와 독립변수와의 관계 자체가 중요. 상관계수가 독립변수의 인과 효과를 나타내는 좋은 지표

- 데이터
    위에 허브에서 가져오면 된다

- 상관관계가 인과관계가 아닌 이유

    온도와 아이스크림 판매량이 온도가 1도씩 올라갈 때 마다 1.171달러씩 늘어난다.
    유난히 더운 10월의 아이스크림을 추가 구매해도 매출이 예측값을 미치지 못할 수 있다.
    왜냐하면, 예측에 영향을 끼치는 결정적인 요인을 포함시키지 않았기 때문이다.

    여름방학에 학생들이 아이스크림을 많이 구매하러 가서 온도가 높은 기간에 매출이 높아지는 것이다.
    판매시점은 기온과 매출의 관계를 교란하는 교란변수인 것이다.
    교란 변수가 있다면 회귀모델의 계수를 상관관계로 해석해야한다.

- 날씨의 영향을 추가한다면

    둘다 적절한 값으로 추정하는 것을 확인할 수 있다
# 인과관계가 상관관계가 아닌 이유
print(ols("icecream_sales ~ temps", data=stand_data_df).fit().summary())

# 날짜의 영향을 추가한 모델
print(ols("icecream_sales ~ temps + summer_months", data=stand_data_df).fit().summary())

- 사공이 많으면 배가 산으로 간다 (다중공선성)

    그렇다면 변수를 더 많이 추가하면 어떨까? 
    기온 변수에 더해, 여름철 여부 변수, 아이스크림 매출 변수, 아이스 커피 매출 변수 3가지를 추가한다.

    temps와 iced_coffee_sales 높은 p-value를 갖게 되고 summer_months만 의미 있는 변수가 된다.
# 다중공선성
print(ols("icecream_sales ~ temps + summer_months + iced_coffee_sales",data=stand_data_df).fit().summary())

- 허위 상관관계 벅슨의 역설(Berkson’s paradox) = 해명 효과(explain-away effect)

    아이스크림을 구매한 사람 중 초콜릿 아이스크림을 구매한 사람, 바닐라 아이스크림을 구매한 사람의 인과관계를 보면 음의 상관관계가 나타난다.

    초콜릿 아이스크림을 구매한 사람은 바닐라 아이스크림이 싫어지거나 반대의 일도 일어나는 것일까?

    초콜릿 아이스크림을 구매한 사람이 바닐라 아이스크림까지 구매한 일이 없기 때문에 음의 상관관계가 일어난 것이다.
    초콜릿 맛을 좋아해서 아이스크림을 구매했다는 설명할 수 있지만, 초콜릿 맛을 좋아한다고 해서 바닐라 맛과의 상관관계는 구할 수 없다.

    애초에 이 데이터에는 두가지 맛 다 싫어하는 사람이 없기 때문이다.

    허위 상관관계가 발생한 것이다.

+ Recent posts