Significantie van verschil in schattingen
Een lijngrafiek met foutbalken geeft je globaal een idee van trends, maar zijn de jaar-op-jaarverschillen statistisch significant? In deze oefening bepaal je de significantie van veranderende mediane huizenprijzen in Philadelphia. Je beoordeelt de verschillen per jaar tussen 2011 en 2017.
De formule voor de Z-statistiek met twee steekproeven is:
$$Z = \frac{x_1 - x_2}{\sqrt{SE_{x_1}^2 + SE_{x_2}^2}}$$
Er is een DataFrame philly beschikbaar met de kolommen median_home_value, median_home_value_moe en year.
pandas is geïmporteerd als pd, en de functie sqrt is geïmporteerd uit de module numpy.
Deze oefening maakt deel uit van de cursus
US Census-gegevens analyseren in Python
Oefeninstructies
- Stel
x1in op de mediane woningwaarde van het huidige jaar, enx2op de mediane woningwaarde van het voorgaande jaar (huidige jaar min 1) - Stel
se_x1in op de MOE van de mediane woningwaarde voor het huidige jaar gedeeld doorZ_CRIT, ense_x2op dezelfde berekening voor het voorgaande jaar - Gebruik de ternary-operator van Python (
result1 if condition else result2) om de lege string te retourneren als de absolute waarde vanzgroter is danZ_CRIT, en anders"not "te retourneren
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# Set the critical Z score for 90% confidence, prepare message
Z_CRIT = 1.645
msg = "Philadelphia median home values in {} were {}significantly different from {}."
for year in range(2012, 2018):
# Assign current and prior year's median home value to variables
x1 = int(philly[philly["year"] == ____]["median_home_value"])
x2 = int(____)
# Calculate standard error as 90% MOE / critical Z score
se_x1 = float(____)
se_x2 = float(____)
# Calculate two-sample z-statistic, output message if greater than critical Z score
z = (x1 - x2) / sqrt(se_x1**2 + se_x2**2)
print(msg.format(year, ____, year - 1))