NPS(ネットプロモータースコア)結果の誤差を計算するにはどうすればよいですか?


21

ウィキペディアにNPSの計算方法を説明します。

ネットプロモータースコアは、0〜10の評価尺度で顧客に1つの質問をすることで得られます。10は「非常に可能性が高い」、0は「まったくそうではない」です。友達ですか?」回答に基づいて、顧客は3つのグループ(プロモーター(9〜10の評価)、受動的(7〜8の評価)、および中傷者(0〜6の評価)のいずれかに分類されます。次に、中傷者の割合をプロモーターの割合から差し引いて、ネットプロモータースコア(NPS)を取得します。NPSは、-100程度の低さ(全員が批判者)、または+100程度の高さ(全員がプロモーター)です。

この調査は数年間定期的に実施されています。毎回数百の応答があります。結果のスコアは、時間の経過とともに20〜30ポイント変化しました。私は、もしあれば、どのスコアの動きが重要かを見極めようとしています。

それが単純に難しすぎると判明した場合、計算の基本の誤差を把握することに興味があります。各「バケツ」(プロモーター、パッシブ、ディトラクター)の許容誤差はどのくらいですか?スコアの平均を見るだけで、データを調査の実行ごとに1つの数値に減らした場合、誤差の範囲はどのくらいでしょうか?それは私をどこにでも連れて行くでしょうか?

ここでのアイデアは役に立ちます。「NPSを使用しないでください」を除きます。その決定は、私の変化する能力の範囲外です!

回答:


32

あなたがランダムにサンプリングしていると仮定する母集団には、割合で、プロモーターの、受動の、および者のが含まれているとします。NPSをモデル化するために、与えられた比率で、プロモーターの、パッシブの、批判者のとラベル付けされた膨大な数のチケット(人口の各メンバーに1つ)で大きな帽子を満たし、ランダムに。サンプル NPSが描かれたチケットの平均値です。真の NPSは、帽子のすべてのチケットの平均値として計算される:それはありますp 0 p 1 p 1 + p 0 + p 1 = 1 + 1 0 1 np1p0p1p1+p0+p1=1+101n帽子の期待(または期待値)。

真のNPSの適切な推定量は、サンプルNPSです。サンプルNPSにも期待があります。これは、可能なすべてのサンプルNPSの平均であると考えることができます。この期待は、真のNPSに匹敵します。サンプルNPS の標準誤差は、サンプルNPSが通常ランダムサンプル間でどれだけ変化するかの尺度です。幸いなことに、SEを見つけるためにすべての可能なサンプルを計算する必要はありません。帽子のチケットの標準偏差を計算し、割ることにより、より簡単に見つけることができます。(サンプルが母集団のかなりの割合である場合、わずかな調整を行うことができますが、ここでは必要ないでしょう。)n

たとえば、プロモーター、、および批判者の集団を考えます。真のNPSは、P 0 = 1 / 3 、P - 1 = 1 / 6p1=1/2p0=1/3p1=1/6

NPS=1×1/2+0×1/3+1×1/6=1/3.

分散はそのためであります

Var(NPS)=(1NPS)2×p1+(0NPS)2×p0+(1NPS)2×p1=(11/3)2×1/2+(01/3)2×1/3+(11/3)2×1/6=5/9.

標準偏差は、にほぼ等しく、この平方根である0.75.

したがって、たとえばサンプルでは、標準誤差約%で%付近のNPSが観測されると予想されます。3241/3=330.75/324=4.1

実際、帽子のチケットの標準偏差はわからないので、代わりにサンプルの標準偏差を使用して推定します。サンプルサイズの平方根で割ると、NPSの標準誤差が推定されます。この推定値は、誤差(MoE)です。

各タイプの顧客の数がかなり多い場合(通常、それぞれ約5人以上)、サンプルNPSの分布は正常に近くなります。これは、MoEを通常の方法で解釈できることを意味します。 特に、サンプルNPSが真のNPSの1 MoE以内にある時間の約2/3と、サンプルNPSが真のNPSの2 MoE内にある時間の約19/20(95%)です。この例では、許容誤差が実際に4.1%であれば、調査結果(サンプルNPS)が母集団NPSの8.2%以内にあるという95%の信頼が得られます。

各調査には独自の誤差範囲があります。このような2つの結果を比較するには、それぞれのエラーの可能性を考慮する必要があります。調査のサイズがほぼ同じである場合、それらの差の標準誤差はピタゴラスの定理によって見つけることができます。それらの平方の合計の平方根を取ります。たとえば、ある年のMoEが4.1%で、別の年のMoEが3.5%である場合、これら2つの結果の差について、 = 5.4%の誤差範囲をおおよそ計算します。この場合、2つの調査結果の差が10.8%以上であれば、人口 NPSが調査間で変化したと95%の信頼で結論付けることができます。3.52+4.12

長期間にわたって多くの調査結果を比較する場合、多くの別個のエラーマージンに対処する必要があるため、より洗練された方法が役立ちます。誤差範囲がすべて非常に似ている場合、大まかな目安として、3つ以上のMoEの変更を「重要」と見なします。この例では、MoEが4%前後にある場合、いくつかの調査の期間中に12%以上の変更が注意を引く必要があり、小さな変更は調査エラーとして有効に却下できます。とにかく、ここで提供される分析と経験則は、通常、調査間の違いが何を意味するかを考える際の良い出発点となります。

観測されたNPSだけから誤差範囲を計算することはできません。3種類の回答者それぞれの観測数に依存します。たとえば、ほとんどすべての人が「パッシブ」である場合、調査NPSはわずかな誤差でに近くなります。人口がプロモーターと中傷者の間で等しく極性化されている場合、調査NPSはに近くなりますが、可能な最大の誤差範囲(人のサンプルでに等しい)があります。00 n1/nn


1
これは素晴らしい答えでした。とても感謝しています。
ダン・ダン

1
「誤差範囲」は一般に、サンプルから抽出された統計の95%信頼区間として解釈されませんか?つまり、その統計のサンプリング標準誤差(または標準偏差)の約1.96です。「統計の標準偏差」または「標準誤差」と同義として誤差範囲を使用します。
ピーターエリス

1
ありがとう@whuber。用語が明確に定義されている限り(ハンプティダンプティの原則)、用語について議論することは決してありません。また、馬はこの用語について一貫した慣習に基づいていると思います。私が持っている唯一の証拠はstats.stackexchange.com/questions/21139/…での私自身の質問への回答です。これは、一般的に(普遍的ではなく)誤差の割合が見積りの割合として引用されていることを正しく示しています。
ピーターエリス

2
@ Charles、whuberは離散確率変数の基本的な分散を行っていると思います。参照stat.yale.edu/Courses/1997-98/101/rvmnvar.htm
B_Miner

2
分散の式は簡略化できます。Var=p1+p1NPS2
スティーブンマカティア

3

連続変数に対して分散推定量を使用することもできます。実際、サンプル分散を計算するための既知の修正があるため、ランダム離散変数の分散推定器よりもそれを好むでしょう:https : //en.wikipedia.org/wiki/Unbiased_estimation_of_standard_deviation他の人が指摘したように、Whubersソリューション母集団の式に基づいています。ただし、調査を実行しているので、サンプルを描画したことは確かです。したがって、不偏推定量(2乗和をnだけでなくn-1で除算する)を使用することをお勧めします。もちろん、サンプルサイズが大きい場合、バイアス付き推定器とバイアスなし推定器の違いは事実上存在しません。

サンプルサイズが中程度の場合は、zスコアアプローチを使用する代わりに、t検定手順を使用することもお勧めします:https : //en.wikipedia.org/wiki/Student 's_t-test

@whuber:他の人もそれを求めているので、ランダム離散変数アプローチの分散/ sdの不偏サンプル推定量をどのように計算しますか?私は自分でそれを見つけようとしましたが、成功しませんでした。ありがとう。


1

ブートストラップを使用して、計算を簡素化できます。Rでは、コードは次のようになります。

library(bootstrap)

NPS=function(x){
  if(sum(!x%%1==0)>0){stop("Non-integers found in the scores.")}
  if(sum(x>10|x<0)>0){stop("Scores not on scale of 0 to 10.")}
  sum(ifelse(x<7,-1,ifelse(x>8,1,0)))/length(x)*100
}

NPSconfInt=function(x,confidence=.9,iterations=10000){
  quantile(bootstrap(x,iterations,NPS)$thetastar,c((1-confidence)/2, 1-(1-confidence)/2))
}


npsData=c(1,5,6,8,9,7,0,10,7,8,
          6,5,7,8,2,8,10,9,8,7,0,10)    # Supply NPS data
hist(npsData,breaks=11)                 # Histogram of NPS responses

NPS(npsData)            # Calculate NPS (evaluates to -14)
NPSconfInt(npsData,.7)  # 70% confidence interval (evaluates to approx. -32 to 5)

Rコードをまったく理解していない人があなたが言おうとしていることをまだ十分に理解できるように、アプローチが何であるかを最初に説明することで答えを広げてもらえますか?自分の好きな言語でそれを実装するのに苦労しますか?
Glen_b -Reinstateモニカ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.