I am currently working on a university project in which I am trying to compare the impact of postitive critic scores on video game sales (basically comparing positive user scores with positive critic scores). The data set has almost 7000 entries. Now, probability distributions for both sets seem to be exponential and I also did a Pearson chi-square normality test which stated that data is not normally distributed. Am I supposed to perform a non-parametric variation of a T-Test, like a Wilcoxon Test or a standard t-test will be a good fit? It doesn't seem like a viable option to follow CLT and assume that data is normally distributed or am I misinterpreting that? I'd greatly appreciate any help.

  • $\begingroup$ This is unclear. What is format of data? What is scale of the scores? This is 7000 video games, with one data line for each game, with GameID, UserScore, CriticScore or otherwise? Can you post an excerpt of data, or some plots/summary stats? $\endgroup$ – kjetil b halvorsen Jul 21 at 18:20
  • $\begingroup$ this is the data set i am using: kaggle.com/rush4ratio/video-game-sales-with-ratings positive score means that ratings are filtered to above 5.0/10 for each group; critics and users $\endgroup$ – stereosanctity Jul 22 at 14:34

I looked at the data at kaggle. They have much missing, so that should be tackled somehow, maybe multiple imputation, but I will not touch that. A simple plot is

Smoothed plot of sales versus critic score

Which shows that there is indeed higher (global) sales when the critic score is high, but the effect really starts at somewhat high scores.

What you propose seems to be to cut in two groups based on a cutoff on critic score, that is not a natural idea (for instance, the result could depend on choice of cutoff.)

This is really a regression problem, and you would be better off treating it as such. Since the distribution are heavily skewed, as you observed, I would try a glm (generalized linear model), and try first a gamma model. As proposed by commenters, I will show how this can be done with additive models as implemented in R's mgcv package. One could also use regression splines with glm's. The main result is

Smooth fit as plotted bt mgcv

The wide confidence bands when the critic score is lesser than about 40 reflects the paucity of data there, above that level there is a clearly significant positive dependence on sales by the critic score, and it is not linear. The used code:

mod.mgcv  <-  mgcv::gam(Global_Sales ~ s(Critic_Score), family=Gamma(link="log"), data=videodf)


Family: Gamma 
Link function: log 

Global_Sales ~ s(Critic_Score)

Parametric coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) -0.61540    0.02706  -22.74   <2e-16 ***
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Approximate significance of smooth terms:
                 edf Ref.df     F p-value    
s(Critic_Score) 7.68  8.395 67.74  <2e-16 ***
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

R-sq.(adj) =  0.124   Deviance explained = 23.9%
GCV = 1.5538  Scale est. = 5.9578    n = 8137

(Again it must be said that there is a lot of missing data, which I have just omitted. No results should be trusted until that is somehow trusted.)

The code used for the first plot is:

videodf <- read.csv("Video_Games_Sales_as_at_22_Dec_2016.csv")
videodf <- within(videodf, User_Score <- as.numeric(levels(User_Score))[User_Score])

ggplot2::ggplot(videodf, aes(x=Critic_Score, y=Global_Sales)) + geom_jitter() + geom_smooth()  
  • $\begingroup$ Quickly, it might be best to use some sort of generalized additive model. As kjetil mentions, the effect doesn't seem to be present at lower critic scores, and so you might want to use adaptive smooths in the mgcv package to account for this. I think mgcv allows users to fit a gamma family to the data. $\endgroup$ – Demetri Pananos Jul 23 at 15:28
  • $\begingroup$ mgcv::gam(sales ~ s(score), family=Gamma(link="log"), data=...) $\endgroup$ – Ben Bolker Jul 23 at 19:20
  • 1
    $\begingroup$ thank you for the extensive response! i've already removed missing data when i was estimating confidence intervals and used gam from mgcv package after commenters suggested it and i found the same results, but i am glad you put that nicely in your post as well. this really helped me, not to mention that i've also learnt a lot, thank you! $\endgroup$ – stereosanctity Jul 23 at 20:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.