한국어
    • 한국어
    • ENGLISH
    • 日本語
    • 中文-繁體

    2020.08.20 Data Science

    PK를 당한 유저는 게임에서 이탈할까?

    ‘PK(Player Killing)’는 그대로 온라인 게임(특히, MMORPG)에서 다른 캐릭터를 공격해 죽이는 행위를 의미합니다. ‘PK’에 관해선 다양한 찬반 논란이 있습니다. ‘Killing’이란 행위 자체가 지니는 폭력성 때문에 PK를 게임에서 허용하는 것이 바람직하지 않다고 비난하는 의견이 많은 반면, 다른 한편에서는 공격당한 캐릭터는 일정한 페널티만 받을 뿐 실제 죽는 것이 아니니 ‘PK’를 흥미로운 게임 콘텐츠의 하나로 받아들이고 즐기면 된다는 주장도 있습니다.

    이런 논란은 게임 개발사 내부에도 있습니다. PK를 허용하면 소수의 강한 캐릭터가 다수의 약한 저 레벨 캐릭터들을 학살하고 다닐 수 있으므로 다수 유저의 이탈을 초래할 뿐만 아니라 신규 유저의 유입에도 부정적인 영향을 끼칠 것이라는 의견이 있습니다. 반면, 유저들의 경쟁심이나 성장 욕구를 자극해 게임을 활성화하는 데 긍정적이라는 의견도 있지요.

    어쨌든 이런 숱한 논란에도 불구하고 PK가 유저의 게임 활동에 어떤 영향을 미치는지 정량적이고 인과적으로 분석한 자료는 거의 찾아보기 힘듭니다. 아마도 이 주제가 (분석을 수행할 가장 좋은 조건을 갖춘) 게임 회사로서는 공개적으로 논의하기에 다소 불편한 주제라는 점이 가장 큰 이유가 아닐까 싶습니다. 하지만 자극적인 논쟁을 걷어내고 분석적인 관점으로만 본다면 그 자체로도 흥미로울 뿐 아니라 실제 사회에서 분석하기 힘든 사회학적인 현상을 풍부한 데이터를 통해 확인해 볼 수 있는 좋은 주제라 생각합니다.

    한편, PK의 인과 효과를 정량적으로 추정하는 것은 전형적인 인과 추론의 영역입니다. 인과 추론은 주로 경제학이나 심리학 등 사회 과학 분야에서 많이 사용하는 분석 기법으로, 도메인 지식과 통계적 지식 그리고 분석적 사고력이 고르게 필요합니다. 최근 데이터 분석 분야가 다소 예측 분석에 편중되어 있습니다만, 소위 말하는 ‘데이터 과학’이라는 용어에 더 적합한 것은 예측 분석이 아니라 인과 추론 분석이 아닌가 싶습니다.

    이번 글에서는 인과 추론의 사례 연구를 목적으로 수행한 PK가 게임 유저의 이탈에 미치는 인과 효과 분석 내용을 정리하고자 합니다.

    1. 단순 비교 분석의 문제점

    PK를 당한 경험이 유저의 이탈에 어떤 영향을 주는지 확인하기 위한 가장 단순한 접근 방법은 PK 경험 집단과 미경험 집단을 나누고 집단의 이탈률 차이를 비교하는 것입니다. 이를 위해 L모 게임에서 동일한 시기에 신규 유입해 플레이한 유저 중 유입 후 1주일 이내에 PK를 한 번 이상 당한 유저와 그렇지 않은 유저를 나누었습니다. 두 집단에서 일정 기간이 지난 후 게임에서 이탈한 비율을 비교한 결과는 다음과 같습니다.

    PK 경험 집단 이탈률: 11.9%

    PK 미경험 집단 이탈률: 79.5%

    놀랍게도 PK를 당한 경험이 있는 집단이 그렇지 않은 집단보다 이탈률이 현저히 낮게 관측됩니다. 따라서 이 결과만 놓고 생각하면 PK 경험은 (일반적인 사람들의 생각과 다르게) 유저의 이탈률을 크게 낮추는 효과가 있다는 결론이 나옵니다. 그러나 이런 단순 비교 분석에는 다음과 같은 문제가 있습니다.

    1.1. 역인과 관계로 인한 오해

    ‘역인과 관계’란 X가 Y의 원인이 아니라 반대로 Y가 X의 원인이 되는 것을 말합니다. 이를테면, 지역별 경찰관 수와 범죄율 데이터를 집계했더니 경찰이 많은 지역의 범죄율이 높다는 결과가 나왔다고 해서 ‘경찰관 수가 많을수록 범죄율이 높다’라고 해석해서는 안 되는 것이지요(반대로 ‘범죄율이 높은 지역에 경찰관이 많이 배치된다’라고 해석하는 것이 더 합리적일 겁니다).

    앞서 보여 드린 이탈률에 관한 비교 분석 결과에도 비슷한 문제가 있습니다. 왜냐하면 애초에 게임 플레이 기간이 매우 짧으면 PK를 당할 확률 또한 매우 낮기 때문입니다(극단적으로 보자면, 게임을 시작한 지 몇 분 만에 이탈한 유저와 일주일 동안 하루에 10시간 이상씩 꾸준히 플레이하는 유저 중 어떤 유저가 더 PK를 경험할 확률이 높을지 생각해 보면 됩니다). 다시 말해 PK 경험이 게임의 이탈을 낮춘 것이 아니라 더 오랫동안 게임을 하는 유저일수록 PK를 당할 확률이 올라가는 ‘역인과’ 관계가 있을 수 있는 것입니다. 따라서 PK 경험이 실제 이탈률에 어떤 인과적 영향을 끼치는지 추정하려면 이러한 역인과 효과를 제거해야 합니다.

    [그림1] PK와 유저 이탈 사이에 역인과 관계가 있을 수 있습니다.

    1.2. 교란 요인으로 인한 오해

    교란 요인은 X와 Y 양쪽에 영향을 미치는 제3의 요인을 말합니다. 이와 관련해 흔히 ‘아이스크림 판매량과 물놀이 사망자 수의 관계’를 예로 듭니다. 아이스크림 판매량이 올라갈수록 물놀이 사망자 수가 올라간다고 해서 아이스크림 판매가 물놀이 사고의 원인이라고 볼 수는 없습니다. 실제로는 온도가 올라갈수록 아이스크림 판매량과 물놀이 이용객이 증가하고, 이로 인해 물놀이 사망자 수도 높아지는 것이지요. 즉, 기온 상승이라는 교란 요인으로 인해 아이스크림 판매량과 물놀이 사고 사이에 마치 인과 관계가 있는 것처럼 보이는 것입니다.

    [그림2] 교란 요인으로 인해 상관 관계를 인과 관계로 오해할 수 있습니다.

    PK와 이탈률 역시 이 모두에 영향을 미치는 교란 요인이 존재할 수 있습니다. 이를테면, ‘캐릭터 레벨’을 생각해 볼 수 있습니다. 대개 온라인 게임에서는 초반 성장에 방해가 되지 않도록 저 레벨 캐릭터의 활동 지역에서 플레이어 간 전투를 금지하는 경우가 많습니다. 따라서 만약 캐릭터의 레벨이 너무 낮다면 PK를 당할 일이 애초에 없을 수 있습니다.

    또한 캐릭터 레벨은 이탈률에도 영향을 미칠 수 있습니다. 레벨이 높다는 것은 게임을 시작한 지 얼마 되지 않은 유저에 비해 게임에 대한 충성도가 높다고 볼 수 있으며, 따라서 고 레벨 유저는 저 레벨 유저에 비해 이탈률이 낮을 가능성이 큽니다. 결국 예로 든 캐릭터 레벨과 같은 교란 요인을 적절하게 통제하지 않으면 캐릭터 레벨 차이로 발생한 PK 경험 여부와 이탈률 사이의 상관관계를 자칫 인과 관계로 오해할 수 있습니다.

    [그림3] 캐릭터 레벨은 PK와 이탈률 모두에 영향을 주는 교란 요인이 될 수 있습니다.

    1.3. 우연한 현상에 대한 오해

    분석에 사용된 데이터에만 나타나는 우연한 차이를 모집단의 일반적인 특징으로 오해할 수도 있습니다. 이런 오류를 피하기 위한 방법의 하나는 ‘통계적 유의성’을 확인하는 것입니다.

    PK가 이탈에 미치는 영향을 분석할 때 단순히 분석에 사용한 데이터에서 PK를 당한 집단과 그렇지 않은 집단 사이의 이탈률 차이만 볼 것이 아니라, 이 차이가 통계적으로 충분히 의미가 있을 만큼 큰지 확인해야 합니다. 여기서 ‘충분히 의미가 있다’라는 말은 분석에 사용한 관측 데이터에만 발생한 우연한 차이가 아니라 차후 다른 관측 데이터를 수집해 분석했을 때도 일관된 결과가 나올 것으로 기대될 만큼 차이가 크다는 뜻입니다.

    2. 분석 방법

    위에서 언급한 세 가지 문제를 해결하기 위해 사용한 방법은 다음과 같습니다.

    첫째, 역인과 관계를 해소하기 위해 PK 경험 집단을 최초 PK를 당한 일자별로 분류한 후, 최소한 해당 일자까지 접속한 이력이 있는 PK 미경험 집단을 샘플링해 대조군으로 선정했습니다. 이렇게 하면 조기 이탈로 PK를 당할 일조차 없었던 유저들을 비교 대상에서 제외할 수 있으므로 위에서 설명한 역인과 관계에 따른 문제를 해결할 수 있습니다.

    [그림4] 역인과 관계를 통제하기 위해 PK 집단과 비교할 대조군을 선정할 때는 게임 접속 일자와 PK 당한 일자를 고려해야 합니다.

    둘째, 교란 요인을 통제하기 위해 ‘성향 점수 매칭(PSM: Propensity Score Matching)’ 기법을 사용했습니다. 성향 점수 매칭은 실험군(PK 경험 집단)과 대조군(PK 미경험 집단)에 속한 개체들의 여러 특징을 대표하는 수치(성향 점수)를 만든 후, 실험군에 속한 개체들 각각의 점수와 동일하거나 비슷한 값을 갖는 대조군 개체들을 비교 대상으로 선정하는 기법입니다. 이렇게 하면 대조군과 실험군의 사전 조건이 비슷해지기 때문에 두 집단의 결과 변수 차이에 영향을 준 것은 원인 변수(PK 경험 여부)밖에 없는 것으로 추정할 수 있습니다. 과학 실험을 할 때 실험 결과에 영향을 줄 수 있는 환경을 최대한 동일하게 맞춰 주는 작업과 비슷합니다.

    ‘성향 점수 매칭(PSM)’에 관한 더 자세한 설명은 아래 두 링크를 참고하시기 바랍니다.

    참고로 통제한 변인들은 다음과 같습니다.

    (최초로 PK를 당한 시점 직전까지) 접속 일수 및 하루평균 플레이 시간

    (최초로 PK를 당한 시점 직전까지) 하루평균 결제 금액

    (최초로 PK를 당한 시점 직전까지) 캐릭터 레벨 및 기타 게임 콘텐츠 활동량

    다른 유저를 PK한 경험 여부: 본인이 다른 사람을 공격한 경험이 있는 경우는 제외

    셋째, 회귀 분석을 통해 PK가 이탈에 미치는 영향이 통계적으로 유의한지 확인했습니다. 참고로 분석에 사용한 종속 변수는 유저별로 이탈 여부를 0과 1로 표현한 값이기 때문에 로지스틱 회귀 모델을 사용했습니다.

    3. 분석 결과

    우선 역인과 관계를 제거하기 위해 위에서 언급한 첫 번째 방법으로 대조군을 다시 샘플링해 비교했습니다. 이를 통해 PK 경험 집단과 미경험 집단 사이의 이탈률 차이가 크게 줄어드는 것을 확인할 수 있었습니다(67.6%p→10.4%p). 그 결과는 다음과 같습니다.

    PK 경험 집단 이탈률: 13.9%

    PK 미경험 집단 이탈률: 24.3%

    이렇게 선별한 집단을 대상으로 이번에는 교란 요인을 통제하기 위해 PK를 당한 유저와 비슷한 특징을 갖는 PK 미경험 유저를 선별하는 PSM 작업을 수행했습니다. 아래 그림의 QQ plot은 PSM 전후에 PK 경험 집단과 미경험 집단 사이의 데이터 분포가 어떻게 다른지 보여 주는 그래프입니다.

    [그림5] PSM 적용 전후의 PK 경험 집단과 미경험 집단 데이터 분포 비교

    [그림 5]에서 왼쪽 그래프(All)는 PSM 작업 전 PK 경험 집단과 미경험 집단의 몇 가지 데이터에 대한 QQ plot입니다. 그리고 오른쪽 그래프(Matched)는 PSM 작업 결과입니다. PSM 전에는 두 집단의 데이터 분포 차이가 크지만, PSM 작업 후에는 분포가 비교적 비슷하게 나타나는 것을 확인할 수 있습니다(굵은 점들이 대각선에 있는 실선에 가까울수록 두 집단의 분포가 비슷하다는 것을 의미합니다).

    이를 통해 두 집단의 이탈률 차이는 두 집단의 유일한 차이인 PK 경험이 준 효과일 것으로 추정할 수 있는 것이지요.

    마지막으로 PK가 이탈률에 미친 영향력을 추정하기 위해 이렇게 추출한 두 집단으로 로지스틱 회귀 모델을 구하면 [그림 6]과 같은 결과가 나옵니다. 회귀 모델 결과에서 ‘is.pk’는 PK를 당한 경험 여부를 나타내는 변수인데, 이 변수의 회귀 계수에 대한 p-value가 매우 낮은 것으로 보아 통계적으로 충분히 유의하다고 볼 수 있습니다.

    [그림6] 로지스틱 회귀 모델 결과

    하지만 로지스틱 회귀 모델에서 회귀 계수가 의미하는 것은 이탈 확률이 아니라 로그 오즈비입니다. 따라서 PK의 인과 효과를 이해하기 쉬운 직관적인 수치로 표현하기 위해 모델에서 제공한 회귀 계수를 이탈 확률에 대한 한계 효과로 변환하고 표준 오차 역시 이에 맞게 다시 계산하는 작업을 진행했습니다. 아쉽게도 R의 GLM 라이브러리는 이런 기능을 자동으로 제공하지 않기 때문에 ‘https://www.r-bloggers.com/probitlogit-marginal-effects-in-r/’를 참고해 아래와 같은 함수를 만들었습니다.

    [그림6] 로지스틱 회귀 모델 결과

    이 함수를 적용한 결과와 시각화 자료는 다음과 같습니다.

    <표 1> 회귀 분석 결과

    [그림7] 로지스틱 회귀 분석 결과 시각화. PK 경험은 이탈률을 약 7%p 낮추는 효과가 있으며, 95% 신뢰도 기준 적용 시 통계적으로 유의합니다.

    이 결과는 PK를 한 번이라도 당한 집단은 그렇지 않은 집단보다 평균적으로 이탈률이 7%p 정도 낮다는 것을 의미합니다. 앞서 언급했듯이 이탈률에 영향을 줄 만한 다른 요인들을 최대한 통제한 상태이기 때문에 이러한 차이는 PK 경험에 의한 것으로 볼 수 있습니다. 또한 표준 오차와의 비교를 통해 이 차이가 통계적으로도 충분히 유의하다는 것을 확인할 수 있습니다.

    결국 PK를 당한 유저는 게임에서 이탈할 것이라는 일반적인 생각과 달리 오히려 PK를 당한 유저의 이탈률이 소폭 감소합니다. 하지만 최초 PK를 당한 집단과 그렇지 않은 집단 간 이탈률 차이를 비교하면 PK가 이탈에 미치는 영향은 그리 크지는 않습니다.

    4. 결론

    데이터 분석을 통해 어떤 사건이나 행동이 특정 변수에 미치는 인과적 영향을 추정할 때는 해당 변수에 영향을 있는 다양한 인과적 관계를 먼저 파악한 후, 인과 효과를 잘못 해석할 있는 다른 요인들을 최대한 통제하는 작업이 필요합니다.

    이번 사례에서 보다시피 이런 통제 작업이 전혀 이뤄지지 않은 상태에서는 마치 PK가 이탈률을 무려 67%p나 낮추는 것처럼 보입니다. 그러나 역인과 관계나 교란 요인을 통제하면 PK가 이탈률에 실제로 미치는 인과 효과는 약 7%p를 낮추는 정도에 불과합니다.

    물론 여기서 소개한 분석 결과가 정확한 것인지에 대해서는 확신할 수 없습니다. 미처 고려하지 못한 다른 교란 요인이나 인과 효과를 왜곡하는 또 다른 오류가 있을 수 있기 때문입니다. 더 나아가 이번 분석에서는 다양한 변인을 통제하기 위해 데이터에 여러 가지 제약을 가했기 때문에 결과는 PK의 일반적인 인과 효과가 아닐 가능성이 높습니다.

    이를테면 특정 기간에 신규 유입된 유저만을 대상으로 했기 때문에 다른 기간을 적용하면 그 결과가 달라질 수 있습니다. 또한 신규 유저가 아닌 기존 유저들이 PK에 느끼는 피로도 역시 다를 수 있습니다. 심지어 이 결과는 분석 대상이 된 게임만의 특징일 뿐 다른 게임에서는 PK가 이탈률을 높이는 인과 효과가 있을 수도 있습니다. 따라서 다양한 상황과 데이터에 대한 반복적인 분석과 검증이 필요합니다(사실 이 글을 쓰는 시점에 다른 게임을 대상으로 비슷한 분석을 수행했는데, 그 게임에서는 PK가 이탈률에 미치는 영향이 통계적으로 유의하지 않은 결과가 나왔습니다). 그러니 결과 자체에 큰 의미를 부여하기보다 이런 식의 분석이 가능하다는 정도로 받아들여 주시면 좋겠습니다.


    NCSOFT DANBI BLOG

    Data Analytics aNd Business Insights.
    엔씨에 존재하는 다양한 데이터에 대한
    분석을 통해 인사이트를 찾고
    기계학습 및 통계 모델링을 이용해
    고도화된 지표 및 시스템을 개발합니다.
    엔씨의 살아있는 데이터 이야기,
    DANBI BLOG 바로 가기

    Data Analytics aNd Business Insights.
    엔씨에 존재하는 다양한 데이터에 대한
    분석을 통해 인사이트를 찾고
    기계학습 및 통계 모델링을 이용해
    고도화된 지표 및 시스템을 개발합니다.
    엔씨의 살아있는 데이터 이야기,
    DANBI BLOG 바로 가기