Skip to content

Instantly share code, notes, and snippets.

@kyu999
Created February 26, 2019 11:50
Show Gist options
  • Save kyu999/8fc1fe4d4c46687b5e699a28395a9aba to your computer and use it in GitHub Desktop.
Save kyu999/8fc1fe4d4c46687b5e699a28395a9aba to your computer and use it in GitHub Desktop.
# -*- coding: utf-8 -*-
# http://sydneyscott.nfshost.com/pubs/gmoknowledge.pdf
# https://static-content.springer.com/esm/art%3A10.1038%2Fs41562-018-0520-3/MediaObjects/41562_2018_520_MOESM1_ESM.pdf
STUDY1_DATA = [
{
"name": someone,
"age": N,
"gender": "male" or "female",
"objective_scores": [N, ..., N],
"self_assessed_knowledge": N(1~7),
"extremity_of_opposition": N(1~7),
"extremity_of_concern": N(1~7),
},
...
]
EXTREMETY_RANGE = [1,2,3,4,5,6,7]
def do_study1(data):
all_extremity_of_oppositions = [d.extremity_of_opposition for d in data]
all_averaged_objective_scores = [average(d.objective_scores) for d in data]
all_self_assessed_knowledge_scores = [d.self_assessed_knowledge for d in data]
def generate_figure1():
'''
1. Correlation between average self-assessed knowledge of GM foods and extremity of opposition
2. Correlation between average scientific literacy and extremity of opposition
3. Correlation between the gap of 1&2 and extremity of opposition
'''
plot(x=all_extremity_of_oppositions, y=all_averaged_objective_scores)
reg(x=all_extremity_of_oppositions, y=all_averaged_objective_scores) # > 0 posi
plot(x=all_extremity_of_oppositions, y=all_self_assessed_knowledge_scores)
reg(x=all_extremity_of_oppositions, y=all_self_assessed_knowledge_scores) # < 0 nega
all_averaged_objective_zscores = zscoring(all_averaged_objective_scores)
all_self_assessed_knowledge_zscores = zscoring(all_self_assessed_knowledge_scores)
difference_scores = [all_averaged_objective_zscores[i] - all_self_assessed_knowledge_zscores[i] for i in range(0, len(all_averaged_objective_zscores))]
reg(x=all_extremity_of_oppositions, y=difference_scores) # > 0 posi
def generate_figure2():
'''
Tested: whether objective knowledge predicts self-assessed knowledge differentially at different levels of extremity of opposition
Method: regressing self-assessed knowledge on objective knowledge, extremity of opposition and their interaction
※ Interaction effects = It occurs when the effect of one variable depends on another variable. 交互作用。2つの因子が組み合わさることで初めて現れる相乗効果のこと。
'''
canvas = get_canvas()
# got [2, 4.5, 7] in this study
extremity_kinds = get_tenth_fiftieth_ninetieth_percentiles(EXTREMETY_RANGE)
for extremity_kind in extremity_kinds:
averaged_objective_scores_by_extremity = filter(all_extremity_of_oppositions, lambda d: d.extremity ≒ extremity_kind)
self_assessed_knowledge_scores_by_extremity = filter(all_self_assessed_knowledge_scores, lambda d: d.extremity ≒ extremity_kind)
model = fit_with_regression(averaged_objective_scores_by_extremity, self_assessed_knowledge_scores_by_extremity)
objecctive_knowledge_scale = scale(averaged_objective_scores_by_extremity)
predicted_averaged_objective_scores_by_extremity = [model.predict(objective_knowledge_score) for i in objecctive_knowledge_scale]
canvas.plot(x=objecctive_knowledge_scale, y=predicted_averaged_objective_scores_by_extremity, same_canvas=True)
generate_figure1()
generate_figure2()
do_study1(STUDY1_DATA)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment