This document introduces and generally explains the Hierarchical Bayes models (BANOVA) which are particularly useful for analysis of experimental categorical repeated measures data. The modelling is done in R with BANOVA package.

It replicates the analysis from section 4.3. Application 3: Gist perception of advertising from an article “BANOVA: An R Package for Hierarchical Bayesian ANOVA” published by Chen Dong & Michel Wedel in 2014, Journal of Statistical Software, 10(2). The data used in this document and in the cited article are from an experiment conducted in Wedel M, Pieters R (2015). “The Buffer Effect: The Role of Color When Advertising Exposures Are Brief and Blurred.” Marketing Science, 34(1), 134–143.

Why BANOVA

Hierarchical Bayes models are particularly useful for data analysis in the case presented here, due to the following features of the design:

These features are often encountered in research within social and behavioral sciences, where ANOVA is often used for analysis of data from experiments with human subjects. However, ANOVA’s assumptions are frequently violated for the data typically collected in those fields.

Possible problems with ANOVA

Distributional properties

In behavioral sciences categorical variables abound, which makes it difficult to work with ANOVA due to its distributional properties. ANOVA assumes a continuous homoscedastic i.i.d. normally distributed dependent variable, which will not work, for example, with:

  • measures of perception and attitudes on categorical rating scales,
  • binary and count measures of human decision making.

Problematic are also continuous measures, such as response times or monetary expenditures (which often have high skewness or kurtosis).

Possible solutions involve data transformations (such as the log and square-root (for counts), logit (for proportions), rank (for ordered categorical variables), and Box-Cox transformations), however, “these transformations, often do not provide a satisfactory solution, because they cause the ANOVA tables of means to lose some of their appealing interpretations, while significance levels of the transformed and original data often do not correspond”.

Another solution may be to use generalized linear models (of which ANOVA is a special case), since GLMs extend regression models to a wide variety of models in which the dependent variable follows one of many distributions in the exponential family. However, “that would require all the multiple factors and interactions to be represented in the model through dummy variables, and the interpretation of estimates of coefficients of these dummy variables is not as easy as interpreting the output of ANOVA, and indeed may often be quite cumbersome”.

Nested repeated measurement designs

Experiments involving a combination of between and within- subjects factors, lead to nested repeated measurement designs, for which one can use mixed, split-plot and repeated measures ANOVA. However, also under particular assumptions, such as:

  • a balanced design,
  • a continuous Y (equally spaced measurements),
  • categorical Xs (so no continuous covariates such as encountered in ANCOVA).

If any of these are a problem, the next possible solutions are hierarchical linear models (= multilevel models = linear mixed-effect models) (which all are special cases of hierarchical Bayes models).

Now getting closer to BANOVA, multilevel models allow for more general covariance structures and data hierarchies than repeated measures ANOVA.

Hierarchical Bayes models are still models in multiple levels, but they estimate the parameters of the posterior distribution using the Bayesian method. They accommodate non-normal dependent variables, while at the same time

Bayesian inference provides accurate inferences based on finite samples of participants, accounts for distributional properties and accommodates heterogeneity across individuals.

BANOVA R package

Until this package solving BANOVA models required more expertise/time. Hierarchical Bayes models were (and are) possible to implement for example, among others, directly in statistical software JAGS. However, it wasn’t at all common in social/behavioral sciences due to lack of familiarity, effort in programming and interpreting the output.

Even though to work with BANOVA package one still needs to download JAGS softaware (free and weights only 3.2 MB), the user only works in R, which serves as proxy for JAGS. Thus, it is possible to run a hierarchical Bayes ANOVA (BANOVA) in R, while retaining familiar features of the output as classical ANOVA, accommodating a wide range of distributions for the dependent variable, hierarchical data structures AND between- and within- subjects categorial design factors, as well as continuous Xs.

# Making sure JAGS is installed
# It can be downloaded here http://mcmc-jags.sourceforge.net (the size is only 2.3 MB)
# After the download, there is no need to even open it

# Loading BANOVA package
library("BANOVA")

Quick intro to the experiment

The authors want to investigate whether color (or lack of it) and blur of the exposure play a role in a gist perception of advertisements.

Gist perception is a very rapid identification of ads during brief exposures.

They conduct a lab experiment with 116 participants, each of them being exposed to 8 images and asked whether it is an ad or an editorial (not an ad) (Question 1). Each exposure lasts 1/10th of a second, If the subject selects that what they saw was an ad, they are asked to which category of ads does it belong (car, financial services, food, skincare) (Question 2).

Design

In the experiment, overall 40 images are used: 32 adds (8 in each product category) and 8 editorial pages (as non-ads).

Each participant was randomly assigned to one condition of a blur (normal, low, medium, high, very high) x color (color, grey) x image (typical ad, atypical ad). The design is both within- and between- subject.

This design results in multiple levels, repeated measures and its dependent variable is categorical.

The dependent variable, is the number of times ads were correctly identified as an ad, out of the 16 ads for each subject, and for each subject for both levels of image (typical ad and atypical ad). This results in a binomial Y.

The within-subject variable is the typical factor with 2 levels. [level 1 sub-model of BANOVA]

The between-subject variables are blur, blurfac, and color. [level 2 sub-model of BANOVA]

The authors are interested in the effects of the factors typical/atypical, color/grayscale, blur, and their interactions.

They predict that color does not in general have a main positive effect on gist perception of advertising, but that it protects gist perception of typical and not of atypical ads against the detrimental effects of blurring.

Data

# The dataset "colorad" included in the BANOVA package contains data from the Gist perception experiment
data("colorad")
str(colorad)
## 'data.frame':    474 obs. of  6 variables:
##  $ id     : int  1 1 2 2 3 3 4 4 5 5 ...
##  $ typic  : Factor w/ 2 levels "0","1": 1 2 1 2 1 2 1 2 1 2 ...
##  $ y      : int  8 6 12 6 11 9 9 11 14 14 ...
##  $ blurfac: Factor w/ 5 levels "1","2","3","4",..: 2 2 4 4 2 2 3 3 1 1 ...
##  $ color  : Factor w/ 2 levels "0","1": 2 2 1 1 1 1 1 1 2 2 ...
##  $ blur   : num  3.69 3.69 4.79 4.79 3.69 ...
head(colorad)
##   id typic  y blurfac color   blur
## 1  1     0  8       2     1 3.6889
## 2  1     1  6       2     1 3.6889
## 3  2     0 12       4     0 4.7875
## 4  2     1  6       4     0 4.7875
## 5  3     0 11       2     0 3.6889
## 6  3     1  9       2     0 3.6889
summary(colorad)
##        id      typic         y          blurfac color        blur      
##  Min.   :  1   0:237   Min.   : 0.000   1: 98   0:232   Min.   :0.000  
##  1st Qu.: 60   1:237   1st Qu.: 8.000   2: 84   1:242   1st Qu.:3.689  
##  Median :119           Median :10.000   3:100           Median :4.382  
##  Mean   :119           Mean   : 9.671   4: 98           Mean   :3.655  
##  3rd Qu.:178           3rd Qu.:12.000   5: 94           3rd Qu.:4.787  
##  Max.   :237           Max.   :16.000                   Max.   :5.481

BANOVA model

Legend for the below model:

# The authors set seed at 700, I do the same to replicate the results
set.seed(700)
  
# BANOVA "gist" model:

gist <- BANOVA.Binomial(y ~ typic, ~color * blur, colorad, colorad$id,
  as.integer(16), burnin = 3000, sample = 2000, thin = 5)
## Model initializing...
## Warning: level 2 numeric variables have been mean centered.
## Compiling rjags model...
## Calling the simulation using the rjags method...
## Burning in the model for 3000 iterations...
## Running the model for 10000 iterations...
## NOTE: Stopping adaptation
## 
## 
## Simulation complete
## Finished running the simulation
## Constructing ANOVA/ANCOVA tables...
## Done...

The posterior means and standard deviations of the hyper parameters are reported from a total of 13,000 samples, with 3,000 being discarded as the burn-in period, and the remainder thinned by a factor 5 to reduce autocorrelation.

Within the BANOVA model, the two sub-models (within-participant and between-participant) combine to form the hierarchical model and Bayes’ theorem integrates them with theobserved data, which results in the posterior distribution.

Markov chain Monte Carlo (MCMC) is a simulation technique allowing the fitting of models in a Bayesian framework.

To begin, MCMC methods pick a random parameter value to consider. The simulation will continue to generate random values (from a specified distribution) (this is the Monte Carlo part), but subject to some rule for determining what makes a good parameter value. The trick is that, for a pair of parameter values, it is possible to compute which is a better parameter value, by computing how likely each value is to explain the data, given our prior beliefs. If a randomly generated parameter value is better than the last one, it is added to the chain of parameter values with a certain probability determined by how much better it is (this is the Markov chain part).

The trace.plot() function gives the trace plots of postetior distributions of the parameters in the gist experiment. The MCMC algorithms are implemented in the JAGS software, and in R we get the output with summary().

trace.plot(gist)
trace plots 1

trace plots 1

trace plots 2

trace plots 2

summary(gist)
## Call:
## BANOVA.Binomial(l1_formula = y ~ typic, l2_formula = ~color * 
##     blur, data = colorad, id = colorad$id, num_trials = as.integer(16), 
##     burnin = 3000, sample = 2000, thin = 5)
## 
## Convergence diagnostics:
## Geweke Diag. & Heidelberger and Welch's Diag.
##                             Geweke stationarity test Geweke convergence p value
## (Intercept)  :  (Intercept)                   passed                     0.3143
## (Intercept)  :  color1                        passed                     0.3324
## (Intercept)  :  blur                          passed                     0.4138
## (Intercept)  :  color1:blur                   passed                     0.4174
## typic1  :  (Intercept)                        passed                     0.2340
## typic1  :  color1                             passed                     0.4991
## typic1  :  blur                               passed                     0.0240
## typic1  :  color1:blur                        passed                     0.5663
##                             H. & W. stationarity test
## (Intercept)  :  (Intercept)                    passed
## (Intercept)  :  color1                         passed
## (Intercept)  :  blur                           passed
## (Intercept)  :  color1:blur                    passed
## typic1  :  (Intercept)                         passed
## typic1  :  color1                              passed
## typic1  :  blur                                passed
## typic1  :  color1:blur                         passed
##                             H. & W. convergence p value
## (Intercept)  :  (Intercept)                      0.1431
## (Intercept)  :  color1                           0.1473
## (Intercept)  :  blur                             0.3173
## (Intercept)  :  color1:blur                      0.0535
## typic1  :  (Intercept)                           0.3076
## typic1  :  color1                                0.8857
## typic1  :  blur                                  0.1232
## typic1  :  color1:blur                           0.9056
## 
## The Chain has converged.
## 
## Table of sum of squares:
##             (Intercept)  color    blur color:blur Residuals    Total
## (Intercept)     59.5660 2.4304 25.9559     9.5323  137.6415 228.9041
## typic1          21.9894 2.0943  5.4459     7.5476   20.2515  50.8143
## 
## Table of effect sizes (95% credible interval):
##                      (Intercept)                 color                 blur
## (Intercept) 0.3025 (0.247,0.359) 0.0164 (-0.013,0.098) 0.1589 (0.112,0.211)
## typic1      0.5206 (0.405,0.634)  0.0850 (-0.01,0.315) 0.2109 (0.084,0.353)
##                        color:blur
## (Intercept) 0.0607 (-0.008,0.211)
## typic1        0.2488 (0.01,0.517)
## 
## Table of p-values (Multidimensional): 
##             (Intercept)  color    blur color:blur
## (Intercept)     <0.0001 0.9180 <0.0001     0.1460
## typic           <0.0001 0.3500 <0.0001     0.0280
## 
## Table of coefficients: 
##                                mean     SD Quantile0.025 Quantile0.975 p.value
## (Intercept)  :  (Intercept)  0.4981 0.0581        0.3851        0.6106 <0.0001
## (Intercept)  :  color1      -0.0123 0.1233       -0.2585        0.2273  0.9180
## (Intercept)  :  blur        -0.1713 0.0299       -0.2306       -0.1113 <0.0001
## (Intercept)  :  color1:blur  0.0422 0.0296       -0.0167        0.1008  0.1460
## typic1  :  (Intercept)       0.3016 0.0330        0.2382        0.3642 <0.0001
## typic1  :  color1           -0.0671 0.0728       -0.2064        0.0790  0.3500
## typic1  :  blur             -0.0773 0.0185       -0.1126       -0.0397 <0.0001
## typic1  :  color1:blur       0.0401 0.0173        0.0066        0.0741  0.0280
##                             Signif.codes
## (Intercept)  :  (Intercept)          ***
## (Intercept)  :  color1                  
## (Intercept)  :  blur                 ***
## (Intercept)  :  color1:blur             
## typic1  :  (Intercept)               ***
## typic1  :  color1                       
## typic1  :  blur                      ***
## typic1  :  color1:blur                 *
## ---
## Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1 
## 
## Table of predictions: 
## 
## Grand mean: 
## 9.9522
##     2.5%   97.5%
##   9.5216 10.3691
## 
## 
##  typic mean    2.5%    97.5%  
##  0     11.0387 10.5867 11.4951
##  1     8.7834  8.2565  9.2982 
## 
## 
##  color mean   2.5%   97.5%  
##  0     9.9057 8.8394 10.8751
##  1     9.9986 9.0002 10.9554
## 
## 
##  typic color mean    2.5%    97.5%  
##  0     0     10.7627 9.5878  11.8349
##  0     1     11.3065 10.2223 12.3273
##  1     0     8.9997  7.7106  10.1546
##  1     1     8.5658  7.3715  9.7325

Each of the above tables has two rows - one for each between-subject model (intercept and typic).

Please note, that in the variable typic 0 stands for a typical ad, while 1 stands for an atypical ad (so that we see a change in gist perception, from a change of a typical ad to an atypical ad).

Convergence diagnostics
  • Geweke (1992) proposed a convergence diagnostic for Markov chains based on a test for equality of the means of the first and last part of a Markov chain (by default the first 10% and the last 50%).

  • The Heidelberg-Welch test uses the Cramer-von-Mises statistic to test the null hypothesis that the sampled values come from a stationary distribution.

Here, one should think of the Markov chain as a time series and uses time series methods to check for stationarity.

Both Geweke and H&W stationarity tests are passed and the chain has converged before the end of the burn-in.

Results

The results are consistent with those from the paper, that is: “Ad and category identifi- cation are significantly influenced by ad typicality (T): typical ads are identified more accurately as ads and their category is more accurately identified, as com- pared to atypical ads. The accuracy of ad and category identification is negatively affected by the degree of blur (B). There is no significant main effect of remov- ing color (C): gist perception of normal color images is as accurate as that of grayscale images. However, and in support of the predictions, the interactions of color with blur (B × C) (only for ad identification) and typicality with blur (B × T), and the three-way inter- action (B × C × T), are significant for both ad and cat- egory identification.”

BANOVA model 2 - with blur as a discrete varibale

The model above used the blur variable which is a continuous variable. However, in the data there is also a variable blurfac, which is a discrete version of the blur and running the model once again with this discrete covariate to better understand the effects of blur.

In the below model “gist_more”, in comparing to the initial “gist” model, only blurfac is used in an interaction with color, instead of blur. The burn-in and target samples also increase, to a total of 35,000, as the model involes more parameters, to ensure that the chains converge for all of them.

set.seed(900)
gist_more <- BANOVA.Binomial(y ~ typic, ~color * blurfac, colorad, colorad$id,
  as.integer(16), burnin = 20000, sample = 3000, thin = 5)
## Model initializing...
## Compiling rjags model...
## Calling the simulation using the rjags method...
## Burning in the model for 20000 iterations...
## Running the model for 15000 iterations...
## NOTE: Stopping adaptation
## 
## 
## Simulation complete
## Finished running the simulation
## Constructing ANOVA/ANCOVA tables...
## Done...
summary(gist_more)
## Call:
## BANOVA.Binomial(l1_formula = y ~ typic, l2_formula = ~color * 
##     blurfac, data = colorad, id = colorad$id, num_trials = as.integer(16), 
##     burnin = 20000, sample = 3000, thin = 5)
## 
## Convergence diagnostics:
## Geweke Diag. & Heidelberger and Welch's Diag.
##                                 Geweke stationarity test
## (Intercept)  :  (Intercept)                       passed
## (Intercept)  :  color1                            passed
## (Intercept)  :  blurfac1                          passed
## (Intercept)  :  blurfac2                          passed
## (Intercept)  :  blurfac3                          passed
## (Intercept)  :  blurfac4                          passed
## (Intercept)  :  color1:blurfac1                   passed
## (Intercept)  :  color1:blurfac2                   passed
## (Intercept)  :  color1:blurfac3                   passed
## (Intercept)  :  color1:blurfac4                   passed
## typic1  :  (Intercept)                            passed
## typic1  :  color1                                 passed
## typic1  :  blurfac1                               passed
## typic1  :  blurfac2                               passed
## typic1  :  blurfac3                               passed
## typic1  :  blurfac4                               passed
## typic1  :  color1:blurfac1                        passed
## typic1  :  color1:blurfac2                        passed
## typic1  :  color1:blurfac3                        passed
## typic1  :  color1:blurfac4                        passed
##                                 Geweke convergence p value
## (Intercept)  :  (Intercept)                         0.9880
## (Intercept)  :  color1                              0.4680
## (Intercept)  :  blurfac1                            0.8873
## (Intercept)  :  blurfac2                            0.8757
## (Intercept)  :  blurfac3                            0.5926
## (Intercept)  :  blurfac4                            0.3912
## (Intercept)  :  color1:blurfac1                     0.6181
## (Intercept)  :  color1:blurfac2                     0.7551
## (Intercept)  :  color1:blurfac3                     0.3418
## (Intercept)  :  color1:blurfac4                     0.3106
## typic1  :  (Intercept)                              0.8173
## typic1  :  color1                                   0.1779
## typic1  :  blurfac1                                 0.2062
## typic1  :  blurfac2                                 0.9494
## typic1  :  blurfac3                                 0.3944
## typic1  :  blurfac4                                 0.0854
## typic1  :  color1:blurfac1                          0.3552
## typic1  :  color1:blurfac2                          0.0347
## typic1  :  color1:blurfac3                          0.0449
## typic1  :  color1:blurfac4                          0.1892
##                                 H. & W. stationarity test
## (Intercept)  :  (Intercept)                        passed
## (Intercept)  :  color1                             passed
## (Intercept)  :  blurfac1                           passed
## (Intercept)  :  blurfac2                           passed
## (Intercept)  :  blurfac3                           passed
## (Intercept)  :  blurfac4                           passed
## (Intercept)  :  color1:blurfac1                    passed
## (Intercept)  :  color1:blurfac2                    passed
## (Intercept)  :  color1:blurfac3                    passed
## (Intercept)  :  color1:blurfac4                    passed
## typic1  :  (Intercept)                             passed
## typic1  :  color1                                  passed
## typic1  :  blurfac1                                passed
## typic1  :  blurfac2                                passed
## typic1  :  blurfac3                                passed
## typic1  :  blurfac4                                passed
## typic1  :  color1:blurfac1                         passed
## typic1  :  color1:blurfac2                         passed
## typic1  :  color1:blurfac3                         passed
## typic1  :  color1:blurfac4                         passed
##                                 H. & W. convergence p value
## (Intercept)  :  (Intercept)                          0.7424
## (Intercept)  :  color1                               0.9381
## (Intercept)  :  blurfac1                             0.5872
## (Intercept)  :  blurfac2                             0.9637
## (Intercept)  :  blurfac3                             0.7226
## (Intercept)  :  blurfac4                             0.9322
## (Intercept)  :  color1:blurfac1                      0.3649
## (Intercept)  :  color1:blurfac2                      0.7961
## (Intercept)  :  color1:blurfac3                      0.1289
## (Intercept)  :  color1:blurfac4                      0.1296
## typic1  :  (Intercept)                               0.8509
## typic1  :  color1                                    0.1972
## typic1  :  blurfac1                                  0.6307
## typic1  :  blurfac2                                  0.3753
## typic1  :  blurfac3                                  0.6568
## typic1  :  blurfac4                                  0.0931
## typic1  :  color1:blurfac1                           0.6116
## typic1  :  color1:blurfac2                           0.0665
## typic1  :  color1:blurfac3                           0.0975
## typic1  :  color1:blurfac4                           0.0993
## 
## The Chain has converged.
## 
## Table of sum of squares:
##             (Intercept)  color blurfac color:blurfac Residuals    Total
## (Intercept)     59.1969 5.1675 29.3431        1.0794  137.9397 232.6218
## typic1          21.5976 2.0360 13.5958        2.0349   16.9228  56.0597
## 
## Table of effect sizes (95% credible interval):
##                      (Intercept)                color              blurfac
## (Intercept) 0.3009 (0.245,0.354) 0.0362 (0.008,0.069) 0.1756 (0.121,0.232)
## typic1      0.5602 (0.436,0.675) 0.1070 (0.013,0.231)  0.4447 (0.307,0.58)
##                     color:blurfac
## (Intercept) 0.0079 (-0.027,0.038)
## typic1        0.1069 (0.007,0.24)
## 
## Table of p-values (Multidimensional): 
##             (Intercept)  color blurfac color:blurfac
## (Intercept)     <0.0001 0.0080 <0.0001        0.1393
## typic           <0.0001 0.0060 <0.0001        0.0253
## 
## Table of coefficients: 
##                                    mean     SD Quantile0.025 Quantile0.975
## (Intercept)  :  (Intercept)      0.4979 0.0564        0.3881        0.6076
## (Intercept)  :  color1           0.1526 0.0568        0.0440        0.2660
## (Intercept)  :  blurfac1         0.5593 0.1160        0.3288        0.7907
## (Intercept)  :  blurfac2         0.0537 0.1192       -0.1801        0.2819
## (Intercept)  :  blurfac3         0.0184 0.1095       -0.1887        0.2317
## (Intercept)  :  blurfac4        -0.0514 0.1072       -0.2560        0.1642
## (Intercept)  :  color1:blurfac1 -0.1650 0.1124       -0.3902        0.0521
## (Intercept)  :  color1:blurfac2  0.1151 0.1173       -0.1213        0.3525
## (Intercept)  :  color1:blurfac3 -0.0721 0.1116       -0.2965        0.1383
## (Intercept)  :  color1:blurfac4  0.0145 0.1112       -0.2068        0.2299
## typic1  :  (Intercept)           0.3112 0.0326        0.2465        0.3756
## typic1  :  color1                0.0909 0.0322        0.0277        0.1544
## typic1  :  blurfac1              0.1579 0.0644        0.0321        0.2803
## typic1  :  blurfac2              0.3620 0.0688        0.2297        0.4948
## typic1  :  blurfac3             -0.0210 0.0623       -0.1428        0.1006
## typic1  :  blurfac4             -0.1672 0.0614       -0.2866       -0.0477
## typic1  :  color1:blurfac1      -0.1497 0.0657       -0.2784       -0.0196
## typic1  :  color1:blurfac2       0.0350 0.0671       -0.0934        0.1663
## typic1  :  color1:blurfac3      -0.0233 0.0620       -0.1430        0.0966
## typic1  :  color1:blurfac4       0.1000 0.0636       -0.0251        0.2263
##                                 p.value Signif.codes
## (Intercept)  :  (Intercept)     <0.0001          ***
## (Intercept)  :  color1           0.0080           **
## (Intercept)  :  blurfac1        <0.0001          ***
## (Intercept)  :  blurfac2         0.6400             
## (Intercept)  :  blurfac3         0.8920             
## (Intercept)  :  blurfac4         0.6233             
## (Intercept)  :  color1:blurfac1  0.1393             
## (Intercept)  :  color1:blurfac2  0.3233             
## (Intercept)  :  color1:blurfac3  0.5120             
## (Intercept)  :  color1:blurfac4  0.8900             
## typic1  :  (Intercept)          <0.0001          ***
## typic1  :  color1                0.0060           **
## typic1  :  blurfac1              0.0087           **
## typic1  :  blurfac2             <0.0001          ***
## typic1  :  blurfac3              0.7293             
## typic1  :  blurfac4              0.0073           **
## typic1  :  color1:blurfac1       0.0253            *
## typic1  :  color1:blurfac2       0.6047             
## typic1  :  color1:blurfac3       0.7007             
## typic1  :  color1:blurfac4       0.1193             
## ---
## Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1 
## 
## Table of predictions: 
## 
## Grand mean: 
## 9.9513
##     2.5%   97.5%
##   9.5331 10.3584
## 
## 
##  typic mean    2.5%    97.5%  
##  0     11.0706 10.6127 11.5127
##  1     8.7444  8.2307  9.226  
## 
## 
##  color mean    2.5%   97.5% 
##  0     10.5138 9.9147 11.078
##  1     9.3675  8.7445 9.9465
## 
##  blurfac mean    2.5%    97.5%  
##  1       11.8743 11.0475 12.5951
##  2       10.152  9.1712  11.0984
##  3       10.0202 9.0902  10.8827
##  4       9.7569  8.8504  10.6578
##  5       7.6718  6.6825  8.6887 
## 
## 
##  typic color mean    2.5%    97.5%  
##  0     0     11.8604 11.2543 12.404 
##  0     1     10.2039 9.5361  10.8191
##  1     0     8.9882  8.2537  9.6893 
##  1     1     8.4992  7.7912  9.1993 
## 
##  typic blurfac mean    2.5%    97.5%  
##  0     1       13.1432 12.3679 13.7808
##  0     2       12.3665 11.433  13.1752
##  0     3       11.0617 10.04   11.9372
##  0     4       10.2957 9.3068  11.2798
##  0     5       7.5901  6.4512  8.8041 
##  1     1       10.2866 9.2101  11.2316
##  1     2       7.5139  6.3683  8.6844 
##  1     3       8.9001  7.8169  9.9418 
##  1     4       9.2008  8.1654  10.2861
##  1     5       7.7535  6.6071  8.9063 
## 
## 
##  color blurfac mean    2.5%    97.5%  
##  0     1       11.8362 10.6885 12.8156
##  1     1       11.9121 10.7313 12.9027
##  0     2       11.1053 9.7414  12.3165
##  1     2       9.1279  7.7236  10.4395
##  0     3       10.3185 8.9588  11.5168
##  1     3       9.7158  8.4239  10.9124
##  0     4       10.3803 9.1264  11.5497
##  1     4       9.1103  7.7846  10.4082
##  0     5       8.71    7.3002  10.1591
##  1     5       6.6446  5.2887  8.0817 
## 
## 
##  typic color blurfac mean    2.5%    97.5%  
##  0     0     1       12.9724 11.868  13.8656
##  0     1     1       13.3065 12.2403 14.132 
##  0     0     2       13.3531 12.2115 14.2561
##  0     1     2       11.1459 9.7209  12.4237
##  0     0     3       11.5525 10.1381 12.7123
##  0     1     3       10.5423 9.0798  11.7723
##  0     0     4       11.5333 10.1969 12.7204
##  0     1     4       8.9255  7.3839  10.3824
##  0     0     5       9.138   7.4665  10.7218
##  0     1     5       6.0725  4.6218  7.759  
##  1     0     1       10.4558 8.9723  11.8328
##  1     1     1       10.1152 8.556   11.5314
##  1     0     2       8.0806  6.3552  9.7222 
##  1     1     2       6.952   5.4125  8.549  
##  1     0     3       8.9511  7.3456  10.4849
##  1     1     3       8.849   7.409   10.2668
##  1     0     4       9.1075  7.5712  10.6227
##  1     1     4       9.2939  7.8133  10.6963
##  1     0     5       8.2778  6.7027  9.9366 
##  1     1     5       7.2314  5.6296  8.8246

By looking at the sum of squares table, and the effect sizes (where the columns stand for between-subjects factors and rows for within-subjects factors), we see that the results are consistent with those from the “gist” model, but in addition we can see that, replicating the authors’ results, “typical color ads are always more accurately identified than atypical color ads. Typical grayscale ads, however, are only more accurately identified than atypical grayscale ads when there is no blur, or a low level of blur”, however there is no difference at higher levels of blur.


In this document an analysis of gist perception of advertising was replicated, based on an article “BANOVA: An R Package for Hierarchical Bayesian ANOVA”, published by Chen Dong & Michel Wedel in 2014, Journal of Statistical Software, 10(2).