Tag Archives: sampling

Des sondages sans sondé(e)s

Il y a deux jours, je revenais sur une (ancienne) étude de l’Ifop pour Fairgen sur l’intention de vote des enseignants aux élections européennes. La note méthodologique expliquant que l’enquête avait été menée auprès de 8 000 personnes représentatives de la population française adulte, “incluant l’équivalent statistique de 580 enseignants de collège et de lycée”, ces 580 enseignants étant “issus de 116 interviews extrapolées par la technologie DataBoostAI”. Il était expliqué que cette technologie, basée sur l’IA générative, visait à améliorer la précision statistique par “génération d’échantillons synthétiques”. J’avais été surpris par cette pseudo amélioration de la précision statistique, tentant de pousser un peu le raisonnement plus loin : si on peut transformer 100 personnes interrogées en 1000 personnes “équivalentes”, pourquoi s’arrêter à 1000 ? Pourquoi ne pas générer 10000 personnes ? Ou toute la population ? Mais je découvre ce soir qu’il est possible d’aller encore plus loin.

Dans Out of One, Many: Using Language Models to Simulate Human Samples, publié en 2023, l’idée de “silicon sampling” est proposée. Il ne s’agit plus seulement de compléter un sous-échantillon trop petit. Il s’agit de demander à un modèle de langage de répondre à la place des personnes. On fournit à l’IA des profils démographiques, ou des “personas”, puis on lui demande de répondre à un questionnaire comme si elle était une personne réelle. On répète l’opération des centaines ou milliers de fois. À la fin, on obtient une table qui ressemble à une enquête. Mais personne n’a nécessairement été interrogé.

Je n’avais pas vu passer cet article, mais il semble que le débat a commencé aux États-Unis en mars dernier, lorsqu’un article d’Axios a cité des résultats sur la santé maternelle, avant de préciser que ces “opinions” ne venaient pas de personnes interrogées mais d’une simulation. Plusieurs articles récents ont cette controverse en expliquant que les réponses avaient été générées par la méthode silicon sampling, sans participation humaine directe. On comprend l’attrait pour les médias, les sondages (sérieux) coutant relativement chers. Les taux de réponse sont de plus en plus faibles, les enquêtes téléphoniques sont de plus en plus difficiles, les panels en ligne posent des problèmes de qualité et de représentativité. Avoir sous le coude une IA qui répond vite, pour presque rien, en donnant des tableaux propres, ça peut séduire, non ?

Eli McKown-Dawson a publié récemment un article, AI polls are fake polls, soulignant que le problème n’est pas que ces modèles sont (forcément) inutiles, mais il faut que leur statut doit être clair. Ce sont des résultats de modèles, pas des sondages. Un sondage collecte de nouvelles données sur ce que des personnes pensent ou ressentent. Le “silicon sampling“, lui, combine des données d’entraînement, des profils démographiques, des prompts et des hypothèses de modélisation pour produire une prédiction de ce qu’un sondage pourrait dire. Et Eli McKown-Dawson insiste sur le fait que cette distinction est essentielle. Les sondages eux-mêmes sont à traiter avec précaution. Ils reposent sur des pondérations, des corrections de non-réponse, parfois des modèles de vraisemblance de vote ou de post-stratification. Si un échantillon contient trop de diplômés ou trop peu de jeunes, on corrige. Si un groupe est difficile à atteindre, on pondère ou on modélise. Mais il repose sur un socle “empirique”, avec des personnes qui ont été contactées, certaines qui ont répondu, et l’incertitude statistique porte sur ce passage fragile d’un échantillon observé à une population.

Dans un sondage synthétique, le modèle ne corrige pas une enquête, il se substitue à l’enquête. C’est pourquoi la comparaison avec les données synthétiques en statistique publique est intéressante, mais aussi trompeuse. Les instituts statistiques produisent parfois des données synthétiques, notamment pour diffuser des microdonnées sans exposer les individus. Mais l’objectif est alors la confidentialité, pas l’augmentation magique de la taille d’un sondage. Dans l’article récent de Shirley Mathur, Yajuan Si et Jerome Reiter, Fully synthetic data for complex surveys, publié dans Survey Methodology, les auteurs proposent des fichiers entièrement synthétiques pour des enquêtes à plan complexe, mais toute la difficulté consiste précisément à tenir compte des poids, du plan de sondage et de l’estimation correcte des variances.

J’ai l’impression que la littérature académique sur le “silicon sampling” est plus prudente que certains usages médiatiques ou commerciaux qu’on peut lire en ligne. L’article fondateur de Lisa Argyle, Ethan Busby, Nancy Fulda, Joshua Gubler, Christopher Rytting et David Wingate, “Out of One, Many”, introduit l’idée essentielle de “algorithmic fidelity“. Le modèle est conditionné par des descriptions sociodémographiques issues de vrais répondants, notamment de l’American National Election Studies, puis les “silicon subjects” répondent aux mêmes questions que les humains. L’objectif est de tester si les distributions de réponses synthétiques reproduisent certains motifs observés dans les données humaines. J’avoue, l’idée est (intellectuellement) intéressante. Elle dit qu’un modèle de langage peut contenir non pas un biais unique, mais une multiplicité de régularités sociales, activables par le contexte. Le même modèle peut répondre différemment selon qu’on le conditionne comme jeune, âgé, démocrate, républicain, homme, femme, etc. Mais les auteurs formulent aussi des conditions exigeantes, les réponses devant être indistinguables de textes humains, cohérentes avec le contexte donné, naturelles par rapport au prompt, et surtout reproduire des relations entre idées, attitudes, démographie et comportements que l’on observe dans les données humaines.

Ce que je lis, ce n’est donc pas une autorisation générale à remplacer les enquêtes, un chèque en blanc, c’est une proposition de recherche. Dans certains domaines, sous certaines conditions, un modèle peut servir à explorer des hypothèses avant une enquête coûteuse. Et ce n’est pas la même chose que publier une simulation comme si elle résumait la voix du public. L’article Random Silicon Sampling va un cran plus loin. Les auteurs proposent de simuler les opinions d’un sous-groupe à partir de sa distribution démographique globale, sans disposer des profils individuels réels. La première figure du papier illustre le pipeline

On extrait la distribution démographique d’un groupe cible, on génère des répondants synthétiques, on les décrit au modèle, puis on agrège leurs réponses. J’avoue. C’est à la fois fascinant et inquiétant. Sur le vote Biden-Trump de 2020, les distributions simulées semblent être très proches de celles de l’ANES. Mais dès que l’on regarde par sous-groupes ou par thèmes, on commence à voir des soucis apparaître. Le modèle devient trop extrême pour certains groupes partisans. Les auteurs notent par exemple que les démocrates et républicains synthétiques votent presque unanimement pour leur camp, davantage que les répondants humains. Plus intéressant encore, le modèle se met à produire des réponses “inoffensives” (“harmless”) ou socialement attendues sur des sujets sensibles. Sur certaines questions de race, de genre, d’homosexualité, de santé ou d’immigration, les réponses générées semblent moins refléter la diversité des opinions humaines qu’une norme de prudence inscrite dans le modèle. Les auteurs parlent d’un biais vers des réponses “harmless”, qui peut varier selon les groupes simulés. Et c’est un point important ! Les modèles ne sont pas seulement des machines à reproduire ce qui se trouve dans les données d’entraînement. Ils sont aussi des machines alignées, filtrées, modérées, ajustées pour produire certains types de réponses. Cela peut être souhaitable pour éviter des propos nuisibles. Mais si l’on veut mesurer l’opinion publique, ce filtrage devient problématique. Un sondage n’est pas censé demander ce qu’il serait raisonnable, prudent ou acceptable de penser. Il est censé mesurer ce que les gens pensent effectivement, y compris lorsque c’est incohérent, gênant, instable ou contradictoire.

Un autre article récent, Specializing Large Language Models to Simulate Survey Response Distributions for Global Populations, présenté à NAACL 2025, montre que l’on peut spécialiser des modèles pour prédire des distributions de réponses à des enquêtes culturelles globales, notamment le World Values Survey et Pew Global Attitudes. Leur résultat est nuancé. Le fine-tuning améliore les performances, y compris sur certains pays ou certaines questions non vus, mais les auteurs soulignent que même leurs meilleurs modèles restent loin d’être parfaits, surtout sur les questions inédites, et que les modèles testés produisent moins de diversité entre pays que les vraies données humaines. Ils concluent explicitement qu’il faut rester prudent quant à l’usage actuel des LLM pour simuler des distributions de réponses. Et si on veut aller un peu plus loin, dans Large Language Models Assume People are More Rational than they actually are, Ryan Liu, Jiayi Geng, Joshua Peterson, Ilia Sucholutsky et Thomas Griffiths montrent que les grands modèles de langage supposent souvent que les humains sont plus rationnels qu’ils ne le sont réellement (c’était dans le titre, on s’en doutait un peu). Dans des tâches de choix risqués, GPT-4o avec raisonnement explicite est beaucoup plus corrélé au modèle de maximisation de l’espérance qu’aux choix humains observés. Autrement dit, le modèle peut produire un comportement qui nous paraît humain parce qu’il correspond à ce que nous croyons que les humains devraient faire, mais pas nécessairement à ce qu’ils font.

C’est peut-être ce point qu’il faut retenir, si on cherche à envisager les risques de ces pratiques. Un sondage synthétique peut être vraisemblable, et le sera sûrement. Il peut être propre, cohérent. Il peut même, dans certains cas, reproduire correctement des résultats globaux connus. Mais il ne faudra pas s’attendre à de vraies surprises. Nate Silver a commenté le billet de McKown-Dawson, AI polls are fake polls, notant que plus les outils d’inférence deviennent bon marché et puissants, plus la valeur relative des données originales augmente.

Beyond the frequently misleading marketing, what bothers me the most about the AI “poll” hype is that as AI tools make statistical inference cheaper and/or better (note that these are not synonyms) that actually increases the comparative value of collecting original data. You might be able to train a model to make a reasonable estimate of what some hard-to-reach poll respondent would say

Un modèle va lisser les trous d’un échantillon. Il peut aider à formuler une hypothèse sur un groupe difficile à atteindre. Mais si l’opinion de ce groupe se déplace, le modèle ne le saura pas tant que personne ne sera allé écouter ce groupe. C’est ce que rappelait Ambuj Tewari, hier, dans AI is replacing humans in responding to some surveys – but simulated opinions are not the same as public opinion. Les simulations ne sont pas des opinions. Les enquêtes sont des instruments de mesure, pas seulement des outils de prédiction. Une IA peut aider à rédiger des questions plus claires, traduire un questionnaire, analyser des réponses ouvertes, résumer des thèmes, ou assister une enquête hybride. Mais lorsqu’on interroge un système d’IA au lieu de personnes, on ne mesure pas l’opinion publique, on simule l’opinion publique à partir de données passées (collectées on ne sait trop comment), de prompts et d’un modèle propriétaire.

Il y a des usages légitimes pour les données synthétiques. En apprentissage automatique, des méthodes peuvent aider à entraîner des classifieurs sur des classes rares. Ce qui peut être très utile en médecine. En statistique publique, les fichiers synthétiques peuvent protéger la confidentialité. En recherche, les agents simulés peuvent aider à tester un questionnaire ou explorer des hypothèses avant le terrain. Mais il est indispensable de garder la frontière visible. Comme j’essayais de le dire dans mon billet, hier, une donnée synthétique peut être utile, mais ce n’est pas une voix. Dans un sondage politique ou social, l’unité statistique n’est pas seulement une ligne dans un fichier. C’est une personne atteinte par un dispositif d’enquête, avec une probabilité d’inclusion, une réponse observée, une non-réponse possible, un poids, et une contribution à l’incertitude. Une ligne produite par un modèle n’a pas cette histoire. Elle dit quelque chose du modèle, pas forcément de la population.

Lisa P. Argyle, Ethan C. Busby, Nancy Fulda, Joshua R. Gubler, Christopher Rytting et David Wingate, “Out of One, Many: Using Language Models to Simulate Human Samples”, Political Analysis, 2023.

Seungjong Sun, Eungu Lee, Dongyan Nan, Xiangying Zhao, Wonbyung Lee, Bernard J. Jansen et Jang Hyun Kim, “Random Silicon Sampling: Simulating Human Sub-Population Opinion Using a Large Language Model Based on Group-Level Demographic Information”, arXiv, 2024.

Yong Cao, Haijiang Liu, Arnav Arora, Isabelle Augenstein, Paul Röttger et Daniel Hershcovich, “Specializing Large Language Models to Simulate Survey Response Distributions for Global Populations”, NAACL, 2025.

Ryan Liu, Jiayi Geng, Joshua C. Peterson, Ilia Sucholutsky et Thomas L. Griffiths, “Large Language Models Assume People Are More Rational Than We Really Are”, ICLR, 2025.

Shirley Mathur, Yajuan Si et Jerome P. Reiter, “Fully synthetic data for complex surveys”, Survey Methodology, Statistique Canada, 2024.

Eli McKown-Dawson, “AI polls are fake polls”, Silver Bulletin, 2026.

Ambuj Tewari, “AI is replacing humans in responding to some surveys – but simulated opinions are not the same as public opinion”, The Conversation, 2026.

Monty Hall problem, with Thompson sampling

We all know the Monty Hall problem. Recently, Jason Rosenhouse published a book on that topic (entitled The Monty Hall Problem, The Remarkable Story of Math’s Most Contentious Brain Teaser). The game is more or less described by the following question

Suppose you’re on a game show, and you’re given the choice of three doors: Behind one door is a car; behind the others, goats. You pick a door, say No. 1, and the host, who knows what’s behind the doors, opens another door, say No. 3, which has a goat. He then says to you, “Do you want to pick door No. 2?” Is it to your advantage to switch your choice?

While I was preparing some slides for a lecture on Bayesian modeling and thinking, I wanted to find an illustration of what is sometimes called the Bayesian brain, that can be related to updates of beliefs, when we experience. And I was looking for examples of Thompson sampling. And actually, it is possible to learn that switching is the optimal strategy, in the Monty Hall problem, just by playing sequentially the game, and learning from previous strategies. The following code is used, to choose the door with the price (the car), and the one we first select

set.seed(1)
n = 5000
listdoor = matrix(1:3,3,n)
door = listdoor
win = sample(1:3,size=n,replace=TRUE)
pick1 = sample(1:3,size=n,replace=TRUE)

Then, the presenter picks one, that is neither the car, nor the one we chose initially. The following trick can be used, to get the list of available choices

door[win+(0:(n-1))*3] = NA
door[,1:10]
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,] NA NA NA 1 NA NA 1 NA 1 NA
[2,] 2 2 NA NA 2 2 2 NA NA 2
[3,] 3 NA 3 3 NA NA NA 3 NA NA
door[pick1+(0:(n-1))*3] = NA
door[,1:10]
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,] NA NA NA 1 NA NA 1 NA 1 NA
[2,] 2 2 NA NA 2 2 2 NA NA 2
[3,] 3 NA 3 3 NA NA NA 3 NA NA

Then, the presenter picks one

presenter = apply(door,2, function(x) sample(x[!is.na(x)],size=1))
> presenter[win != pick1] = apply(door,2,function(x) x[!is.na(x)])[win != pick1] 
presenter = unlist(presenter)
presenter[1:10]
[1] 3 2 3 1 2 2 2 3 1 2

Now, let us consider the  Monty Hall problem. We have two possible strategies. The first one is to keep the door we chose, initially

pick2a = pick1
gaina = (pick2a==win)
mean(gaina)
[1] 0.3392

As expected, on average, we win with (about) 1 chance out of 3. The second one is to (always) pick the other door (the one left). The code is close to the one we used before

door = listdoor
door[pick1+(0:(n-1))*3] = NA
door[presenter+(0:(n-1))*3] = NA
pick2b = apply(door,2,function(x) x[!is.na(x)])
gainb = (pick2b==win)
mean(gainb)
[1] 0.6608

If you know Monty Hall problem the probability to win is now 2 chance out of 3 (which is what the maths tells us). That is what we have with simulations.

Now, what if we don’t know how to do the maths, and we don’t want to compute it? We can use Thompson sampling to explore, and exploit. In a general context, we have to choose among On a le choix entre K alternatives (here K=2, since we can either keep our initial choice, or pick the other one), and the output is \boldsymbol{X}=(X_1,\cdots, X_K), where X_k\sim\mathcal{B}(\theta_k), but \theta_k is unknow, and we will play the game, and learn. From previous computations, we know that \theta_1=1/3 while \theta_2=2/3.

We use some prior distribution, \theta_k\sim\mathcal{B}eta(\alpha_k,\beta_k), since the Beta distribution is the conjugate of the Bernoulli. At time t, we draw K (independent) Beta variables B_k\sim\mathcal{B}eta(\alpha_k,\beta_k), and pick k^\star = \displaystyle{\underset{k=1,\cdots,K}{\text{argmax}}\{B_k\}}.  Here the code will be

set.seed(2)
X = cbind(pick2a == win,pick2b == win)*1
AB1 = AB2 = tirage = matrix(NA,n,2)
choix = rep(NA,n)
k=1
AB1[k,] = AB2[k,] = c(1,1)
for(k in 1:(n-1)){
tirage[k,] = c(rbeta(1,AB1[k,1],AB1[k,2]),
rbeta(1,AB2[k,1],AB2[k,2]))
choix[k] = which.max(tirage[k,])
if(choix[k] == 1){
AB1[k+1,] = AB1[k,] + c(X[k,1],1-X[k,1])
AB2[k+1,] = AB2[k,] 
}
if(choix[k] == 2){
AB1[k+1,] = AB1[k,] 
AB2[k+1,] = AB2[k,] + c(X[k,2],1-X[k,2])
}}

Before showing some graphs, let us check that indeed, we select more the second strategy (which is here to select the other door)

AB1[n,]
[1] 5 13
AB2[n,]
[1] 3292 1693

Indeed, since the average of a Beta distribution, \mathcal{B}eta(\alpha,\beta) is \alpha/(\alpha+\beta)

AB2[n,1]/(sum(AB2[n,]))
[1] 0.6603811

i.e. the probability to win, with this second strategy is about 2/3 (as obtained previously). We can visualize this on the animation below, with, in red the first strategy (keep your initial choice), in green the second one (select the other door), 0 and 1 respectively if we win, or not. Then we can visualize the evolution of \alpha_2 and \beta_2 on topc, and \alpha_1 and \beta_1 below (the index is time t). Finallly, we have the two variables B_1 and B_2 drawn,

Of course, another simulation would have given different B_1‘s and B_2‘s, but finally, we learn that the second strategy is better, and we learn it quite fast…

Here is another one (just to confirm)

So clearly, even if we don’t know which is the optimal strategy (keep our initial choice, or switch), a player who played that game about 30 times should be able to understand that switching should be a better strategy.

Computing AIC on a Validation Sample

This afternoon, we’ve seen in the training on data science that it was possible to use AIC criteria for model selection.

> library(splines)
> AIC(glm(dist ~ speed, data=train_cars, 
  family=poisson(link="log")))
[1] 438.6314
> AIC(glm(dist ~ speed, data=train_cars, 
  family=poisson(link="identity")))
[1] 436.3997
> AIC(glm(dist ~ bs(speed), data=train_cars, 
  family=poisson(link="log")))
[1] 425.6434
> AIC(glm(dist ~ bs(speed), data=train_cars, 
  family=poisson(link="identity")))
[1] 428.7195

And I’ve been asked why we don’t use a training sample to fit a model, and then use a validation sample to compare predictive properties of those models, penalizing by the complexity of the model.    But it turns out that it is difficult to compute the AIC of those models on a different dataset. I mean, it is possible to write down the likelihood (since we have a Poisson model) but I want a code that could work for any model, any distribution….

Hopefully, Heather suggested a very clever idea, using her package

And actually, it works well.

Continue reading Computing AIC on a Validation Sample →