2015-10-12 17 views
0

我們在R中有2個數據集goodbad它包含usersgames。遊戲包含10種不同的遊戲類型1,2,...,10。數據集good包含玩過很長時間的用戶,並且bad包含已經玩了很短時間然後停止玩的用戶。要比較兩組的退出率

head(good) 
user game 
1  4 
2  3 
3  4 
1  1 
15  4 
1  2 

head(bad) 
user game 
10  4 
22  3 
37  4 
37  1 
38  4 
46  2 

我已經找到了最新的遊戲的用戶,他之前扮演/她停止播放。 因此,對於一個固定的遊戲組,我們有它被「最後遊戲」/它玩過的總時間。 這給我們一個退出率。如果退出率很高,則意味着它很可能是最新的遊戲,如果退出率較低,則意味着遊戲不是最後一場遊戲。

就R我們可以看到出口速率爲組good

exitrate_good 
game exitrate 
1  0.133333 
2  0.127772 
3  0.090332 
... 
9  0.317307 
10 0.190854 

而對於其他組bad

exitrate_bad 
game exitrate 
1  0.186522 
2  0.045888 
3  0.192556 
... 
9  0.365899 
10 0.119331 

這裏類似,我們可以例如看到遊戲9具有一個高在goodbad的退出率。

我的問題是:如何找到不流行的遊戲並導致玩家停止遊戲?

上次爲用戶播放的遊戲可能會導致用戶停止播放。我應該如何比較兩組的退出率?

-------(擴展)

讓我們看一下組good。 在R I型last_game_good,我們得到如下的輸出

latest_game_played not_latest_game_played 
734     3917 
645     3507 
... 
765     2100 
112     535 

所以第一行簡單地說734+3917已經玩過這個遊戲,它是734箱子玩最新的遊戲。

在這裏,我們還可以看到遊戲ID爲9(第二個最後一行)與not_latest_game_played相比有很高的latest_game_played。爲此,我使用pairwise.prop.test,我得到所有的成對相關性,其中一些具有較低的p值,一些具有高於0.05的p值。我如何使用這些信息,如果我爲其他組運行相同的事情,如何比較它,如bad組?

+1

你的第一個問題是(更多)一般,它並不真正需要2個不同的數據集(好/壞) ,但一個數據集(用戶)。第二個更適合你的情況,因爲你想單獨調查好/壞用戶。所以,正如你所說的,第9場比賽的退場率很高(你可以把它描述爲不受歡迎(?)),但對於不好的用戶來說更糟糕。你可能需要對好/壞用戶中的遊戲進行配對比較。另外,使用「因果關係」術語解釋結果時要小心。通常這是一件很重要的事情,因爲一種模式與相關性有關,但並不總是與因果關係相關。 – AntoniosK

+1

此外,對於百分比的比較,您需要成功次數,失敗次數(或總數),否則您將嘗試統計比較兩個數字(實際百分比),這是不可能的。檢查這個:https://stat.ethz.ch/R-manual/R-patched/library/stats/html/pairwise.prop.test.html – AntoniosK

+0

我已經更新了這個問題。我製作了一張包含成功和總數的表格,但我仍然不確定如何使用它來比較羣組。 –

回答

1

所以,你可以做的一件事是比較你的羣體之間的遊戲差異。例如。在優秀組中,X遊戲與Y遊戲相比有更高的退出率嗎?那個壞小組呢?它是一樣的模式嗎?也許完全不同的模式?

你可以做的另一件事是比較不同組別的比賽。例如。好羣體中的X遊戲在壞羣體中的出場率是否高於X遊戲?

第三件事是預先指定並修復對您不利的退出率,並將所有組中的所有遊戲與此對比。例如。我知道40%的退出率對我不利。任何團體中有任何遊戲的退出率高於40%?

我會專注於第一例。

我創建這樣

dt = read.table(text= 
"latest_game_played not_latest_game_played 
734     3917 
645     3507 
765     2100 
112     535", header=T) 

# create game id 
dt$game_id = c(1,2,9,10) 

# create total numbers 
dt$totals = dt$latest_game_played + dt$not_latest_game_played 

dt 

# latest_game_played not_latest_game_played game_id totals 
# 1    734     3917  1 4651 
# 2    645     3507  2 4152 
# 3    765     2100  9 2865 
# 4    112     535  10 647 

數據集。然後我計算的百分比,並檢查是否有至少一個統計上顯著差異

# check percentages 
prop.test(dt$latest_game_played, dt$totals) 

# 4-sample test for equality of proportions without continuity correction 
# 
# data: dt$latest_game_played out of dt$totals 
# X-squared = 176.51, df = 3, p-value < 2.2e-16 
# alternative hypothesis: two.sided 
# sample estimates: 
# prop 1 prop 2 prop 3 prop 4 
# 0.1578155 0.1553468 0.2670157 0.1731066 

請注意,您還可以保存這些百分比在新列可以創建自己。你在那裏看到的p值小於0.05,所以至少有一場比另一場比賽更高的出場率。或者換句話說,檢查成對差異/比較是合理的。不知道(還)哪種差異具有統計顯着性,或者是否存在更多差異。下一步是去發現。

# check pairwise comparisons 
pairwise.prop.test(dt$latest_game_played, dt$totals) 

# Pairwise comparisons using Pairwise comparison of proportions 
# 
# data: dt$latest_game_played out of dt$totals 
# 
#  1  2  3  
# 2 0.82 -  -  
# 3 < 2e-16 < 2e-16 -  
# 4 0.82 0.82 3.2e-06 
# 
# P value adjustment method: holm 

這是成對的p值表。你可以看到第9場比賽(第3場比賽)在統計上顯着高於其他所有比例。其他遊戲的退出率沒有區別。

您可以爲另一組做一個類似的過程,看看你是否發現同樣的事情/模式

+0

在我的情況下,我會做一個pairwise.prop.test在我的組中也是如此,我得到的結果是,第9場的所有p值都低於0.05。這必然意味着第9場比賽有一個影響,即prop.test的p值很低?其他成對p值對於其他遊戲對來說更爲零星,所以在我刪除遊戲9並將新的遊戲與舊遊戲進行比較的情況下創建一個新表是有意義的? –

+0

在壞組中找到相同的模式意味着無論用戶是好還是壞,遊戲9都有高/低的退出率。這是您從分析中獲得的洞察力。你現在可以做的是開始一個實驗,在這個實驗中你有一些用戶玩所有的遊戲,一些用戶玩遊戲9之外的所有遊戲。然後比較平均退出率,看看現實生活中發生了什麼。如果你只是從已有的數據中刪除遊戲9,那麼它只是對實際情況的理論近似。你不知道如果通過移除遊戲9,所有其他遊戲將具有相同的退出率。這只是一個假設。 – AntoniosK

+0

假設我有10場比賽中有3場比賽的p值非常低。進一步分析這個問題的下一步應該是什麼?到目前爲止,這三場比賽的p值很低,只是說這兩場比賽在這兩場比賽中有所不同。 –