X-Git-Url: http://unremediatedgender.space/source?p=Ultimately_Untrue_Thought.git;a=blobdiff_plain;f=notes%2Fdeflation.py;h=686ef80ce31b67859e0781431fab598b065a12d6;hp=77efe237e13e1f5799e654c01f2363ccc7d6b751;hb=e0ed847291ffa2a56700a4ea4b2d4e34fa0fccdf;hpb=1b6eeea9d643c0613470ef1bb12382291168ddea diff --git a/notes/deflation.py b/notes/deflation.py index 77efe23..686ef80 100644 --- a/notes/deflation.py +++ b/notes/deflation.py @@ -9,39 +9,39 @@ seed(1) def cohens_d(X, Y): return ( - (mean(X) + mean(Y)) / + (mean(X) - mean(Y)) / sqrt( (len(X)*variance(X) + len(Y)*variance(Y)) / (len(X) + len(Y)) ) ) -def population_with_error(μ, σ, n): +def population_with_error(μ, ε, n): def trait(): return normal(μ, 1) def measurement_error(): - return normal(0, σ) + return normal(0, ε) return [trait() + measurement_error() for _ in range(n)] # trait differs by 1 standard deviation -adjusted_f = population_with_error(1, 0, 10000) -adjusted_m = population_with_error(0, 0, 10000) +true_f = population_with_error(1, 0, 10000) +true_m = population_with_error(0, 0, 10000) # as above, but with 0.5 standard units measurment error measured_f = population_with_error(1, 0.5, 10000) measured_m = population_with_error(0, 0.5, 10000) -smart_d = cohens_d(adjusted_f, adjusted_m) -print(smart_d) # 1.0193773432617055 — d≈1.0, as expected! +true_d = cohens_d(true_f, true_m) +print(true_d) # 1.0193773432617055 — d≈1.0, as expected! naïve_d = cohens_d(measured_f, measured_m) -print(naïve_d) # 0.8953395386313235 +print(naïve_d) # 0.8953395386313235 — deflated! -def performance(g, σ_g, s, n): +def performance(μ_g, σ_g, s, n): def general_ability(): - return normal(g, σ_g) + return normal(μ_g, σ_g) def special_ability(): return normal(s, 1) return [general_ability() + special_ability() for _ in range(n)] @@ -55,7 +55,7 @@ matched_f = performance(0, 0, 1, 10000) matched_m = performance(0, 0, 0, 10000) population_d = cohens_d(population_f, population_m) -print(population_d) # 0.7287587808164793 +print(population_d) # 0.7287587808164793 — deflated! matched_d = cohens_d(matched_f, matched_m) -print(matched_d) # 1.018362581243161 +print(matched_d) # 1.018362581243161 — as you would expect