Chargement du fichier de données (1 fichier = 1 sujet)

# The raw data files can be downloaded on https://github.com/vincentberthet/Judgmental-bootstrapping

d <- read.csv2(file.choose())
head(d)
##    date     time subject blocknum blockcode trialcode trialnum
## 1 52216 11:42:04      SB        1      expé  stimulus        1
## 2 52216 11:42:04      SB        1      expé  stimulus        2
## 3 52216 11:42:04      SB        1      expé  stimulus        3
## 4 52216 11:42:04      SB        1      expé  stimulus        4
## 5 52216 11:42:04      SB        1      expé  stimulus        5
## 6 52216 11:42:04      SB        1      expé  stimulus        6
##   values.situation values.market_growthnumber
## 1   Situation n°31                          4
## 2   Situation n°32                          5
## 3   Situation n°33                          3
## 4   Situation n°34                          1
## 5   Situation n°35                          4
## 6   Situation n°36                          4
##                 values.market_growth values.market_concentrationnumber
## 1 Croissance du marché: Plutôt forte                                 4
## 2        Croissance du marché: Forte                                 4
## 3      Croissance du marché: Moyenne                                 5
## 4       Croissance du marché: Faible                                 3
## 5 Croissance du marché: Plutôt forte                                 4
## 6 Croissance du marché: Plutôt forte                                 3
##             values.market_concentration values.market_sharenumber
## 1 Concentration du marché: Plutôt forte                         3
## 2 Concentration du marché: Plutôt forte                         4
## 3        Concentration du marché: Forte                         4
## 4      Concentration du marché: Moyenne                         3
## 5 Concentration du marché: Plutôt forte                         3
## 6      Concentration du marché: Moyenne                         2
##                 values.market_share values.relative_costnumber
## 1 Votre part de marché (rang): 3ème                          4
## 2 Votre part de marché (rang): 4ème                          1
## 3 Votre part de marché (rang): 4ème                          4
## 4 Votre part de marché (rang): 3ème                          3
## 5 Votre part de marché (rang): 3ème                          4
## 6 Votre part de marché (rang): 2ème                          4
##                                                   values.relative_cost
## 1           Coût relatif de votre offre: Plus élevé que la concurrence
## 2 Coût relatif de votre offre: Beaucoup plus faible que la concurrence
## 3           Coût relatif de votre offre: Plus élevé que la concurrence
## 4    Coût relatif de votre offre: Equivalent à celui de la concurrence
## 5           Coût relatif de votre offre: Plus élevé que la concurrence
## 6           Coût relatif de votre offre: Plus élevé que la concurrence
##   values.relative_qualitynumber
## 1                             3
## 2                             1
## 3                             4
## 4                             5
## 5                             1
## 6                             5
##                                             values.relative_quality
## 1     Qualité relative de votre offre: Equivalente à la concurrence
## 2 Qualité relative de votre offre: Très inférieure à la concurrence
## 3      Qualité relative de votre offre: Supérieure à la concurrence
## 4 Qualité relative de votre offre: Très supérieure à la concurrence
## 5 Qualité relative de votre offre: Très inférieure à la concurrence
## 6 Qualité relative de votre offre: Très supérieure à la concurrence
##   values.standardizationnumber     values.standardization response latency
## 1                            1 Produits standardisés: Oui        5   26049
## 2                            2 Produits standardisés: Non        7    8428
## 3                            1 Produits standardisés: Oui        3   20273
## 4                            1 Produits standardisés: Oui        3   14580
## 5                            2 Produits standardisés: Non        5   15858
## 6                            1 Produits standardisés: Oui        3   14829

Stats descriptives des réponses du sujet

library(psych)
describe(d$response)
##   vars  n mean   sd median trimmed  mad min max range  skew kurtosis   se
## 1    1 50  4.6 1.81    4.5    4.67 2.22   1   7     6 -0.12    -1.17 0.26
tmp <- hist(d$response, breaks=0:(max(d$response)), xaxt="n", main="", xlab="")
axis(1, at=tmp$mids, labels=1:max(d$response))

Régression linéaire des réponses du sujet sur les six indices

model <- lm(d$response ~ d$values.market_growthnumber + d$values.market_concentrationnumber + d$values.market_sharenumber + d$values.relative_costnumber + d$values.relative_qualitynumber + d$values.standardizationnumber, data=d)
summary(model)
## 
## Call:
## lm(formula = d$response ~ d$values.market_growthnumber + d$values.market_concentrationnumber + 
##     d$values.market_sharenumber + d$values.relative_costnumber + 
##     d$values.relative_qualitynumber + d$values.standardizationnumber, 
##     data = d)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.02782 -0.76644  0.04592  0.70070  1.63959 
## 
## Coefficients:
##                                     Estimate Std. Error t value Pr(>|t|)
## (Intercept)                         10.64911    1.00848  10.560 1.61e-13
## d$values.market_growthnumber        -0.32315    0.14561  -2.219   0.0318
## d$values.market_concentrationnumber -0.05563    0.13339  -0.417   0.6787
## d$values.market_sharenumber          0.19704    0.13628   1.446   0.1555
## d$values.relative_costnumber        -0.73024    0.15065  -4.847 1.67e-05
## d$values.relative_qualitynumber     -0.99213    0.13688  -7.248 5.63e-09
## d$values.standardizationnumber      -0.18877    0.31350  -0.602   0.5502
##                                        
## (Intercept)                         ***
## d$values.market_growthnumber        *  
## d$values.market_concentrationnumber    
## d$values.market_sharenumber            
## d$values.relative_costnumber        ***
## d$values.relative_qualitynumber     ***
## d$values.standardizationnumber         
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.075 on 43 degrees of freedom
## Multiple R-squared:  0.6897, Adjusted R-squared:  0.6464 
## F-statistic: 15.93 on 6 and 43 DF,  p-value: 1.55e-09

Judgmental bootstrapping

bootstrap <- list()

n <- 25 # nombre d'observations par sous-échantillon : 25
x <- 1000 # nombre de répétitions : 1000

for (k in 1:x) {
  
  bootstrap[[k]] <- list()
  
  # subset 1
  rand <- sample(1:nrow(d), n, replace=FALSE)
  subset1 <- d[rand,]
  
  model1 <- lm(subset1$response ~ subset1$values.market_growthnumber + subset1$values.market_concentrationnumber + subset1$values.market_sharenumber + subset1$values.relative_costnumber + subset1$values.relative_qualitynumber + subset1$values.standardizationnumber, data=subset1)
  summary(model1)
  
  # subset 2
  v <- rep(0,nrow(d))
  for (i in 1:length(v)) {v[i] <- ifelse(i %in% rand == 'TRUE', 0, i)}
  subset2 <-  d[v[!v %in% 0],]
  
  pred_reg <- rep(0,nrow(subset2))
  pred_moy <- rep(0,nrow(subset2))
  
  for (i in 1:nrow(subset2)) {
    pred_reg[i] <- subset2$values.market_growthnumber[i]*coefficients(model1)[2] + subset2$values.market_concentrationnumber[i]*coefficients(model1)[3] + subset2$values.market_sharenumber[i]*coefficients(model1)[4] + subset2$values.relative_costnumber[i]*coefficients(model1)[5] + subset2$values.relative_qualitynumber[i]*coefficients(model1)[6] + subset2$values.standardizationnumber[i]*coefficients(model1)[7] + coefficients(model1)[1]
  }
  
  cor(pred_reg,subset2$response)
  
  #
  bootstrap[[k]] <- list(model1 = model1, pred = data.frame(subset2$response,pred_reg), test = cor(pred_reg,subset2$response))
}

##
coeff_market_growthnumber <- rep(0,length(x))
coeff_market_concentrationnumber <- rep(0,length(x))
coeff_market_sharenumber <- rep(0,length(x))
coeff_relative_costnumber <- rep(0,length(x))
coeff_relative_qualitynumber <- rep(0,length(x))
coeff_standardizationnumber <- rep(0,length(x))

test <- rep(0,length(x))

for (i in 1:x) {
  coeff_market_growthnumber[i] <- bootstrap[[i]]$model1$coefficients[2]
  coeff_market_concentrationnumber[i] <- bootstrap[[i]]$model1$coefficients[3]
  coeff_market_sharenumber[i] <- bootstrap[[i]]$model1$coefficients[4]
  coeff_relative_costnumber[i] <- bootstrap[[i]]$model1$coefficients[5]
  coeff_relative_qualitynumber[i] <- bootstrap[[i]]$model1$coefficients[6]
  coeff_standardizationnumber[i] <- bootstrap[[i]]$model1$coefficients[7]
  
  test[i] <- bootstrap[[i]]$test
}

confint(model, level=0.95)
##                                           2.5 %     97.5 %
## (Intercept)                          8.61531788 12.6829064
## d$values.market_growthnumber        -0.61679532 -0.0295102
## d$values.market_concentrationnumber -0.32463194  0.2133742
## d$values.market_sharenumber         -0.07778701  0.4718763
## d$values.relative_costnumber        -1.03406140 -0.4264162
## d$values.relative_qualitynumber     -1.26817231 -0.7160962
## d$values.standardizationnumber      -0.82099837  0.4434524
describe(test)
##   vars    n mean   sd median trimmed  mad  min  max range  skew kurtosis
## 1    1 1000 0.74 0.07   0.76    0.75 0.06 0.46 0.89  0.42 -0.97     1.15
##   se
## 1  0
hist(test, main="", xlab="")