Kom igångKom igång gratis

Omröstningen om Civil Rights Act 1964

Civil Rights Act från 1964 var en av de viktigaste lagstiftningarna som någonsin antagits i USA. Exklusive "närvarande" och "avstår"-röster röstade 153 demokrater och 136 republikaner i representanthuset för. Däremot röstade 91 demokrater och 35 republikaner emot. Spelade partitillhörigheten någon roll för hur man röstade?

För att besvara den frågan utvärderar du hypotesen att en representants parti inte har någon inverkan på deras röst. Du använder andelen demokrater som röstade för som teststatistika och beräknar sannolikheten för att observera en andel demokrater som röstade för som är minst lika liten som den observerade andelen 153/244. (Just det – minst lika liten. År 1964 var det nämligen demokraterna som var mindre progressiva i medborgarrättsfrågorna.) För att göra detta permuterar du partietiketterna för representanthusets röstande och delar sedan in dem godtyckligt i "demokrater" och "republikaner", varefter du beräknar andelen demokrater som röstade ja.

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

Statistiskt tänkande i Python (del 2)

Visa kurs

Övningsinstruktioner

  • Skapa booleska arrayer, dems och reps, som innehåller respektive partis röster – till exempel har dems 153 True-poster och 91 False-poster.
  • Skriv en funktion, frac_yea_dems(dems, reps), som returnerar andelen demokrater som röstade ja. Det första argumentet är en array av booleska värden. Två argument krävs för att använda din draw_perm_reps()-funktion, men det andra används inte.
  • Använd din draw_perm_reps()-funktion för att dra 10 000 permutationsreplikat av andelen ja-röster bland demokraterna.
  • Beräkna och skriv ut p-värdet.

Interaktiv övning med praktiskt arbete

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

# Construct arrays of data: dems, reps
dems = np.array([True] * 153 + [False] * 91)
reps = ____

def frac_yea_dems(dems, reps):
    """Compute fraction of Democrat yea votes."""
    frac = ____ / ____
    return frac

# Acquire permutation samples: perm_replicates
perm_replicates = ____(____, ____, frac_yea_dems, ____)

# Compute and print p-value: p
p = np.sum(____ <= 153/244) / len(____)
print('p-value =', p)
Redigera och kör kod