인과 영향 예측의 품질 평가

게시 됨: 2022-02-15

CausalImpact는 SEO 실험에 사용되는 가장 인기 있는 패키지 중 하나입니다. 그 인기는 이해할 수 있습니다.

SEO 실험은 SEO가 작업의 가치에 대해 보고할 수 있는 흥미로운 통찰력과 방법을 제공합니다.

그러나 모든 기계 학습 모델의 정확도는 제공된 입력 정보에 따라 다릅니다.

간단히 말해서 잘못된 입력은 잘못된 추정을 반환할 수 있습니다.

이 게시물에서 우리는 CausalImpact가 얼마나 신뢰할 수 있는지(그리고 신뢰할 수 없는지) 보여줄 것입니다. 또한 실험 결과에 더 자신감을 갖는 방법도 배우게 됩니다.

먼저 CausalImpact가 작동하는 방식에 대한 간략한 개요를 제공합니다. 그런 다음 CausalImpact 추정의 신뢰성에 대해 논의합니다. 마지막으로 자신의 SEO 실험 결과를 추정하는 데 사용할 수 있는 방법론에 대해 알아봅니다.

CausalImpact는 무엇이며 어떻게 작동합니까?

CausalImpact는 베이지안 통계를 사용하여 실험이 없을 때 이벤트의 효과를 추정하는 패키지입니다. 이러한 추정을 인과 추론이라고 합니다.

인과 추론은 관찰된 변화가 특정 이벤트로 인해 발생한 경우 추정합니다.

SEO 실험의 성능을 평가하는 데 자주 사용됩니다.

예를 들어, 이벤트 날짜가 주어지면 CausalImpact(CI)는 개입 이전의 데이터 요소를 사용하여 개입 후 데이터 요소를 예측합니다. 그런 다음 예측을 관찰된 데이터와 비교하고 특정 신뢰 임계값으로 차이를 추정합니다.

또한 통제 그룹을 사용하여 예측을 더 정확하게 할 수 있습니다.

다른 매개변수도 예측 정확도에 영향을 미칩니다.

  • 테스트 데이터의 크기입니다.
  • 실험 이전 기간의 길이입니다.
  • 비교할 대조군의 선택.
  • 계절성 하이퍼파라미터.
  • 반복 횟수.

이러한 모든 매개변수는 모델에 더 많은 컨텍스트를 제공하고 신뢰성을 높이는 데 도움이 됩니다.

온크롤 BI

필요할 때마다 OnCrawl 데이터를 사용할 수 있도록 하여 비즈니스 인텔리전스 및 데이터 분석을 통해 더 나은 전략적 의사 결정을 내리십시오.
발견하다

SEO 실험의 정확성을 평가하는 것이 중요한 이유는 무엇입니까?

지난 몇 년 동안, 저는 많은 SEO 실험을 분석했고 무언가가 저를 놀라게 했습니다.

여러 번 동일한 테스트 세트와 개입 날짜에 다른 통제 그룹과 시간 프레임을 사용하면 다른 결과를 얻을 수 있습니다.

설명을 위해 다음은 동일한 이벤트의 두 가지 결과입니다.

첫 번째는 통계적으로 유의미한 감소를 반환했습니다.

두 번째는 통계적으로 유의하지 않았습니다.

간단히 말해서 동일한 이벤트에 대해 선택한 매개변수에 따라 다른 결과가 반환되었습니다.

어떤 예측이 정확한지 궁금해야 합니다.

결국 "통계적으로 유의미한" 것이 우리의 추정치에 대한 신뢰도를 높여야 하는 것 아닙니까?

정의

SEO 실험의 세계를 더 잘 이해하려면 독자는 SEO 실험의 기본 개념을 알고 있어야 합니다.

  • 실험 : 가설을 검증하기 위해 수행한 절차. 인과 추론의 경우 특정 시작 날짜가 있습니다.
  • 테스트 그룹 : 변경 사항이 적용되는 데이터의 하위 집합입니다. 전체 웹 사이트 또는 사이트의 일부일 수 있습니다.
  • 제어 그룹 : 변경 사항이 적용되지 않은 데이터의 하위 집합입니다. 하나 이상의 제어 그룹을 가질 수 있습니다. 이것은 동일한 산업의 별도 사이트이거나 동일한 사이트의 다른 부분일 수 있습니다.

아래 예는 이러한 개념을 설명하는 데 도움이 됩니다.

제목(실험)을 수정하면 5개 도시(테스트 그룹)에서 제품 페이지의 유기적 CTR이 1%(가설) 증가해야 합니다. 다른 모든 도시(대조군)에 변경되지 않은 제목을 사용하여 추정치가 개선됩니다.

정확한 SEO 실험 예측의 기둥

  • 단순화를 위해 SEO 전문가가 실험의 정확성을 향상시키는 방법을 배우는 몇 가지 흥미로운 통찰력을 수집했습니다.
  • CausalImpact의 일부 입력은 통계적으로 유의한 경우에도 잘못된 추정을 반환합니다. 이것은 우리가 "거짓 긍정" 및 "거짓 부정"이라고 부르는 것입니다.
  • 테스트 세트에 대해 사용할 컨트롤을 제어하는 ​​일반적인 규칙은 없습니다. 특정 테스트 세트에 사용할 최상의 컨트롤 데이터를 정의하려면 실험이 필요합니다.
  • CausalImpact를 올바른 컨트롤과 올바른 길이의 기간 전 데이터와 함께 사용하면 평균 오류가 0.1%로 낮아 매우 정확할 수 있습니다.
  • 또는 잘못된 컨트롤과 함께 CausalImpact를 사용하면 높은 오류율이 발생할 수 있습니다. 개인 실험은 실제로 변화가 없었음에도 최대 20%의 통계적으로 유의한 변화를 보여주었습니다.
  • 모든 것을 테스트할 수 있는 것은 아닙니다. 일부 테스트 그룹은 거의 정확한 추정치를 반환하지 않습니다.
  • 대조군이 있거나 없는 실험은 개입 전에 다양한 길이의 데이터가 필요합니다.

모든 테스트 그룹이 정확한 추정치를 반환하지는 않습니다.

일부 테스트 그룹은 항상 부정확한 예측을 반환합니다. 실험용으로 사용해서는 안 됩니다.

비정상적인 트래픽 변동이 큰 테스트 그룹은 종종 신뢰할 수 없는 결과를 반환합니다.

예를 들어, 같은 해에 웹 사이트에 사이트 마이그레이션이 있었고 코로나 바이러스 전염병의 영향을 받았으며 기술 오류로 인해 사이트의 일부가 2주 동안 "노인덱싱"되었습니다. 해당 사이트에서 실험을 하면 신뢰할 수 없는 결과를 얻을 수 있습니다.

위의 내용은 아래에 설명된 방법론을 사용하여 수행한 광범위한 일련의 테스트를 통해 수집되었습니다.

제어 그룹을 사용하지 않을 때

  • 간단한 사전 포스트 대신 컨트롤을 사용하면 추정 정확도가 최대 18배까지 증가할 수 있습니다.
  • 16개월 전의 데이터를 사용하는 것은 3년을 사용하는 것만큼 정확합니다.

제어 그룹을 사용할 때

  • 여러 컨트롤을 사용하는 것보다 올바른 컨트롤을 사용하는 것이 더 나은 경우가 많습니다. 그러나 단일 컨트롤은 컨트롤의 트래픽이 많이 변하는 경우 잘못된 예측의 위험을 증가시킵니다.
  • 올바른 컨트롤을 선택하면 정밀도가 10배 증가할 수 있습니다(예: 실제로 +3%인 경우 하나는 +3.1%를 보고하고 다른 하나는 +4.1%로 보고함).
  • 테스트 데이터와 제어 데이터 간의 대부분의 상관된 트래픽 패턴이 반드시 더 나은 추정을 의미하는 것은 아닙니다.
  • 16개월 전의 데이터를 사용하는 것은 3년을 사용하는 것만큼 정확하지 않았습니다.

실험 전 데이터 길이에 주의

흥미롭게도 대조군으로 실험할 때 16개월 전의 데이터를 사용하면 매우 높은 오류율이 발생할 수 있습니다.

실제로 오류는 실제 변경 사항이 없을 때 트래픽이 3배 증가할 것으로 추정하는 것만큼 클 수 있습니다.

그러나 3년 간의 데이터를 사용하여 그 오류율을 제거했습니다. 이는 16개월에서 36개월로 기간을 늘려도 오류율이 증가하지 않은 단순한 사전 사후 실험과 대조됩니다.

그렇다고 해서 컨트롤을 사용하는 것이 나쁘다는 것은 아닙니다. 그 반대입니다.

제어 추가가 예측에 미치는 영향을 간단히 보여줍니다.

대조군에 큰 변동이 있는 경우입니다.

이 테이크 아웃은 지난 1년 동안 비정상적인 트래픽 변동이 있었던 웹 사이트(중요한 기술 오류, 코로나바이러스 전염병 등)에 특히 중요합니다.

CausalImpact 예측을 평가하는 방법은 무엇입니까?

이제 CausalImpact 라이브러리에 구축된 정확도 점수가 없습니다. 따라서 달리 추론해야 합니다.

다른 기계 학습 모델이 예측의 정확도를 추정하는 방법을 살펴보고 SSE(Sum of Squares Errors)가 매우 일반적인 메트릭임을 알 수 있습니다.

제곱합 오차 또는 잔차 제곱합은 기대치(yi)와 실제 결과(f(xi)) 간의 모든 (n) 차이의 합을 제곱하여 계산합니다.

SSE가 낮을수록 결과가 더 좋습니다.

문제는 SEO 트래픽에 대한 사전 사후 실험에서는 실제 결과가 없다는 것입니다.

현장에서는 변경 사항이 없었지만 일부 변경 사항은 사용자가 제어할 수 없는 범위에서 발생했을 수 있습니다(예: Google 알고리즘 업데이트, 새로운 경쟁업체 등). SEO 트래픽은 고정된 수만큼 변하지 않지만 점진적으로 위아래로 변합니다.

SEO 전문가는 문제를 극복하는 방법을 궁금해 할 수 있습니다.

가짜 변형 소개

이벤트로 인한 변동의 크기를 확인하기 위해 실험자는 다양한 시점에 고정된 변동을 도입하고 CausalImpact가 변경을 성공적으로 추정했는지 확인할 수 있습니다.

더 좋은 점은 SEO 전문가가 다양한 테스트 및 제어 그룹에 대해 프로세스를 반복할 수 있다는 점입니다.

Python을 사용하여 사후 기간 동안 다른 개입 날짜에 데이터에 고정 변형이 도입되었습니다.

그런 다음 CausalImpact에서 보고한 변동과 도입된 변동 사이의 오차 제곱합을 추정했습니다.

아이디어는 다음과 같습니다.

  1. 테스트 및 제어 데이터를 선택합니다.
  2. 다른 날짜에 실제 데이터에 가짜 개입을 도입합니다(예: 5% 증가).
  3. CausalImpact 추정치를 도입된 각 변형과 비교하십시오.
  4. SSE(제곱 오차 합계)를 계산합니다.
  5. 여러 컨트롤을 사용하여 1단계를 반복합니다.
  6. 실제 실험을 위해 SSE가 가장 작은 컨트롤을 선택하십시오.

방법론

아래 방법론을 사용하여 서로 다른 시점에서 오류율이 가장 좋은 컨트롤과 가장 낮은 컨트롤을 식별하는 데 사용할 수 있는 표를 만들었습니다.

먼저 테스트 및 제어 데이터를 선택하고 -50%에서 50%까지 변형을 도입합니다.

그런 다음 CausalImpact(CI)를 실행하고 실제로 도입한 변형에서 CI에서 보고한 변형을 뺍니다.

그런 다음 이러한 차이의 제곱을 계산하고 모든 값을 합산합니다.

다음으로, 특정 날짜의 실제 변동으로 인한 편향의 위험을 줄이기 위해 다른 날짜에 동일한 프로세스를 반복합니다.

다시 여러 컨트롤 그룹으로 반복합니다.

마지막으로 제곱합 오류가 가장 작은 컨트롤이 테스트 데이터에 사용하기에 가장 좋은 컨트롤 그룹입니다.

각 테스트 데이터에 대해 각 단계를 반복하면 결과가 달라집니다.

결과 테이블에서 각 행은 제어 그룹을 나타내고 각 열은 테스트 그룹을 나타냅니다. 내부 데이터는 SSE입니다.


그 표를 ​​정렬하면 이제 각 테스트 그룹에 대해 가장 적합한 통제 그룹을 선택할 수 있다는 확신이 생깁니다.

통제 그룹을 사용해야 하나 말아야 하나?

증거는 통제 그룹을 사용하는 것이 단순한 사전 사후보다 더 나은 추정을 하는 데 도움이 된다는 것을 보여줍니다.

그러나 이것은 올바른 통제 그룹을 선택한 경우에만 해당됩니다.

추정 기간은 얼마나 되어야 합니까?

그에 대한 대답은 우리가 선택하는 컨트롤에 따라 다릅니다.

대조군을 사용하지 않을 때는 16개월 전 실험으로 충분해 보입니다.

컨트롤을 사용할 때 16개월만 사용하면 엄청난 오류율이 발생할 수 있습니다. 3년을 사용하면 오역의 위험을 줄이는 데 도움이 됩니다.

하나의 컨트롤을 사용해야 하나요 아니면 여러 컨트롤을 사용해야 하나요?

해당 질문에 대한 답은 테스트 데이터에 따라 다릅니다.

매우 안정적인 테스트 데이터는 여러 컨트롤과 비교할 때 잘 수행될 수 있습니다. 이 경우 많은 제어를 사용하면 제어 중 하나에서 예상치 못한 변동의 영향을 덜 받는 모델이 되기 때문에 이것이 좋습니다.

다른 데이터 세트에서 여러 컨트롤을 사용하면 단일 컨트롤을 사용하는 것보다 10-20배 덜 정확할 수 있습니다.

SEO 커뮤니티의 흥미로운 작업

CausalImpact는 SEO 테스트에 사용할 수 있는 유일한 라이브러리가 아니며 위의 방법론이 정확성을 테스트하는 유일한 솔루션도 아닙니다.

대체 솔루션을 알아보려면 SEO 커뮤니티의 사람들이 공유한 놀라운 기사를 읽어보세요.

먼저 Andrea Volpini는 CausalImpact Analysis를 사용하여 SEO 효과를 측정하는 방법에 대한 흥미로운 글을 작성했습니다.

그런 다음 Daniel Heredia는 Prophet 및 Python을 사용하여 SEO 트래픽을 예측하기 위한 Facebook의 Prophet 패키지를 다루었습니다.

Prophet 라이브러리는 실험보다 예측에 더 적합하지만 예측의 세계를 확실히 이해하려면 다양한 라이브러리를 학습할 가치가 있습니다.

마지막으로, 저는 브라이튼 SEO에서 Sandy Lee가 SEO 테스팅을 위한 데이터 과학에 대한 통찰력을 공유하고 SEO 테스팅의 몇 가지 함정을 제기한 프레젠테이션에 매우 기뻤습니다.

SEO 실험을 할 때 고려해야 할 사항

  • 타사 SEO 분할 테스트 도구는 훌륭하지만 부정확할 수도 있습니다. 솔루션을 선택할 때는 철저히 하십시오.
  • 과거에 그것에 대해 썼지만 서버 측이 아닌 한 Google 태그 관리자로 SEO 분할 테스트 실험을 할 수 없습니다. 가장 좋은 방법은 CDN을 통해 배포하는 것입니다.
  • 테스트할 때는 과감하게 대하십시오. 작은 변경 사항은 일반적으로 CausalImpact에 의해 선택되지 않습니다.
  • SEO 테스트가 항상 첫 번째 선택이 되어서는 안 됩니다.
  • 제목 태그와 같은 작은 변경 사항을 테스트하는 대안이 있습니다. Google Ads A/B 테스트 또는 플랫폼 내 A/B 테스트 실제 A/B 테스트는 SEO 분할 테스트보다 정확하며 일반적으로 타이틀 품질에 대한 더 많은 통찰력을 제공합니다.

재현 가능한 결과

이 튜토리얼에서는 코딩 방법을 모른다는 부담 없이 SEO 실험의 정확도를 향상시킬 수 있는 방법에 초점을 맞추고 싶었습니다. 또한 데이터의 출처가 다를 수 있으며 사이트마다 다릅니다.

따라서 이 콘텐츠를 생성하는 데 사용한 Python 코드는 이 기사의 범위에 포함되지 않았습니다.

그러나 논리를 사용하면 위의 실험을 재현할 수 있습니다.

결론

이 기사에서 단 하나의 시사점을 얻을 수 있다면 CausalImpact 분석은 매우 정확할 수 있지만 항상 빗나갈 수 있다는 것입니다.
SEO가 이 패키지를 사용하여 처리하는 내용을 이해하는 것은 매우 중요합니다. 내 여정의 결과는 먼저 입력 데이터에 대한 모델의 정확성을 테스트하지 않고 CausalImpact를 신뢰하지 않을 것이라는 것입니다.