Kom igångKom igång gratis

Simulera hur X beror på p

I din strävan att bli vald till ett offentligt ämbete låter din kampanj 10 sannolika väljare delta i en enkät. Låt \(X\) vara antalet som stöder dig. \(X\) varierar naturligtvis från urval till urval och beror på \(p\), ditt faktiska stöd i den bredare befolkningen. Eftersom \(X\) är ett antal lyckade utfall i 10 oberoende försök, där varje försök har sannolikheten \(p\) för ett lyckat utfall, kan du modellera dess beroende av \(p\) med binomialfördelningen: Bin(10, \(p\)).

Du simulerar binomialmodellen med hjälp av slumpmässiga urval från funktionen rbinom(n, size, prob). Den här vektoriserade funktionen drar n urval från en Bin(size, prob)-fördelning. Om ett vektorn av prob-värden anges används det första prob-värdet för det första draget, det andra prob-värdet för det andra draget och så vidare.

Den här övningen är en del av kursen

Bayesiansk modellering med RJAGS

Visa kurs

Övningsinstruktioner

  • Definiera en seq() med 1 000 möjliga värden på \(p\) som sträcker sig från 0 till 1. Spara dessa som p_grid.
  • Använd rbinom() för att simulera ett enkätresultat \(X\) för vart och ett av de 1 000 \(p\)-värdena i p_grid. Tilldela dessa till poll_result.
  • Dataramen likelihood_sim kombinerar p_grid och poll_result. Använd ggplot() med ett geom_density_ridges()-lager för att illustrera fördelningen av p_grid-värden (axeln x) från vilka varje poll_result simulerades (axeln y).

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# Define a vector of 1000 p values    
p_grid <- seq(from = ___, to = ___, length.out = ___)

# Simulate 1 poll result for each p in p_grid   


# Create likelihood_sim data frame
likelihood_sim <- data.frame(p_grid, poll_result)    

# Density plots of p_grid grouped by poll_result
ggplot(likelihood_sim, aes(x = ___, y = ___, group = poll_result)) + 
    geom_density_ridges()
Redigera och kör kod