コード例 #1
0
def test_paired_t_test():
    data_path = get_data_path('spiderLong_within.csv')

    # Declare and annotate the variables of interest
    variables = [{
        'name': 'Group',
        'data type': 'nominal',
        'categories': ['Picture', 'Real Spider']
    }, {
        'name': 'Anxiety',
        'data type': 'ratio'
    }]
    experimental_design = {
        'study type': 'experiment',
        'independent variables': 'Group',
        'dependent variables': 'Anxiety',
        'within subjects': 'Group'
    }
    assumptions = {'Type I (False Positive) Error Rate': 0.05}

    tea.data(data_path, key="id")
    tea.define_variables(variables)
    # Allows for using multiple study designs for the same dataset (could lead to phishing but also practical for saving analyses and reusing as many parts of analyses as possible)
    tea.define_study_design(experimental_design)
    tea.assume(assumptions)

    tea.hypothesize(['Group', 'Anxiety'], ['Group:Real Spider > Picture'])

    # print("\nfrom Field et al.")
    # print("Expected outcome: Paired/Dependent t-test")
    print('++++++++++++')
コード例 #2
0
def test_wilcoxon_signed_rank():
    data_path = get_data_path('alcohol.csv')

    # Declare and annotate the variables of interest
    variables = [{
        'name': 'drug',
        'data type': 'nominal',
        'categories': ['Alcohol']
    }, {
        'name': 'day',
        'data type': 'nominal',
        'categories': ['sundayBDI', 'wedsBDI']
    }, {
        'name': 'value',
        'data type': 'ratio'
    }]
    experimental_design = {
        'study type': 'experiment',
        'independent variables': 'day',
        'dependent variables': 'value',
        'within subjects': 'day'
    }
    assumptions = {'Type I (False Positive) Error Rate': 0.05}

    tea.data(data_path)
    tea.define_variables(variables)
    # Allows for using multiple study designs for the same dataset (could lead to phishing but also practical for saving analyses and reusing as many parts of analyses as possible)
    tea.define_study_design(experimental_design)
    tea.assume(assumptions)

    tea.hypothesize(['day', 'value'], ['day:sundayBDI != wedsBDI'])

    # print("\nfrom Field et al.")
    # print("Expected outcome: Wilcoxon signed rank test")
    print('++++++++++++')
コード例 #3
0
def test_wilcoxon_signed_rank_2():
    tea.data('./tests/data/real_stats_2.csv', key='Couple')

    variables = [{
        'name': 'Couple',
        'data type': 'ratio'
    }, {
        'name': 'Person',
        'data type': 'nominal',
        'categories': ['Wife', 'Husband']
    }, {
        'name': 'Score',
        'data type': 'ratio'
    }]
    experimental_design = {
        'study type': 'observational study',
        'contributor variables': 'Person',
        'outcome variables': 'Score',
        'within subjects': 'Person'
    }
    assumptions = {'Type I (False Positive) Error Rate': 0.05}

    tea.define_variables(variables)
    # Allows for using multiple study designs for the same dataset (could lead to phishing but also practical for saving analyses and reusing as many parts of analyses as possible)
    tea.define_study_design(experimental_design)
    tea.assume(assumptions)

    tea.hypothesize(['Person', 'Score'], ['Person:Wife != Husband'])
コード例 #4
0
def test_f_test():
    data_path = get_data_path('cholesterol.csv')

    # Declare and annotate the variables of interest
    variables = [{
        'name': 'trt',
        'data type': 'nominal',
        'categories': ['1time', '2times', '4times', 'drugD', 'drugE']
    }, {
        'name': 'response',
        'data type': 'ratio'
    }]
    experimental_design = {
        'study type': 'experiment',
        'independent variables': 'trt',
        'dependent variables': 'response',
        'between subjects': 'trt'
    }
    assumptions = {
        'Type I (False Positive) Error Rate': 0.05,
    }

    tea.data(data_path)
    tea.define_variables(variables)
    # Allows for using multiple study designs for the same dataset (could lead to phishing but also practical for saving analyses and reusing as many parts of analyses as possible)
    tea.define_study_design(experimental_design)
    tea.assume(assumptions)

    tea.hypothesize(['trt', 'response'])
    # print("\nFrom Field et al.")
    # print("Expected outcome: Oneway ANOVA (F) test")
    print('++++++++++++')
コード例 #5
0
def test_pearson_corr():
    data_path = get_data_path('statex77.csv')
    # data_path2 = get_data_path('statex87.csv')

    # Declare and annotate the variables of interest
    variables = [{
        'name': 'Illiteracy',
        'data type': 'interval',
        'categories': [0, 100]
    }, {
        'name': 'Life Exp',
        'data type': 'ratio',
    }]
    experimental_design = {
        'study type': 'observational study',
        'contributor variables': ['Illiteracy', 'Life Exp'],
        'outcome variables': ''
    }
    assumptions = {
        'Type I (False Positive) Error Rate': 0.05,
        'normal distribution': ['Illiteracy']
    }

    tea.data(data_path)
    # tea.data(data_path2)
    tea.define_variables(variables)
    # Allows for using multiple study designs for the same dataset (could lead to phishing but also practical for saving analyses and reusing as many parts of analyses as possible)
    tea.define_study_design(experimental_design)
    tea.assume(assumptions, 'strict')

    results = tea.hypothesize(['Illiteracy', 'Life Exp'],
                              ['Illiteracy ~ Life Exp'])
    # print("\nfrom Kabacoff")
    # print("Expected outcome: Pearson")
    print('++++++++++++')
コード例 #6
0
def test_kruskall_wallis(): 
    data_path = get_data_path('soya.csv')

    # Declare and annotate the variables of interest
    variables = [
        {
            'name' : 'Sperm',
            'data type' : 'interval'
        },
        {
            'name' : 'Soya',
            'data type' : 'ordinal',
            'categories': ['No Soya', '1 Soya Meal', '4 Soya Meals', '7 Soya Meals']
        }
    ]
    experimental_design = {
                            'study type': 'experiment',
                            'independent variables': 'Soya',
                            'dependent variables': 'Sperm',
                            'between subjects': 'Soya'
                        }
    assumptions = {
        'Type I (False Positive) Error Rate': 0.05,
    }

    tea.data(data_path)
    tea.define_variables(variables)
    tea.define_study_design(experimental_design) # Allows for using multiple study designs for the same dataset (could lead to phishing but also practical for saving analyses and reusing as many parts of analyses as possible)
    tea.assume(assumptions)

    tea.hypothesize(['Soya', 'Sperm'])

    print("\nFrom Field et al.")
    print("Expected outcome: Kruskall Wallis")
コード例 #7
0
def test_wilcoxon_signed_rank_1():
    tea.data('./tests/data/real_stats_1.csv')

    variables = [{
        'name': 'Subject',
        'data type': 'ratio'
    }, {
        'name': 'Source',
        'data type': 'nominal',
        'categories': ['Memory', 'Median']
    }, {
        'name': 'Score',
        'data type': 'ratio'
    }]
    experimental_design = {
        'study type': 'experiment',
        'independent variables': 'Source',
        'dependent variables': 'Score',
        'within subjects': 'Source'
    }
    assumptions = {'Type I (False Positive) Error Rate': 0.05}

    tea.define_variables(variables)
    # Allows for using multiple study designs for the same dataset (could lead to phishing but also practical for saving analyses and reusing as many parts of analyses as possible)
    tea.define_study_design(experimental_design)
    tea.assume(assumptions)

    tea.hypothesize(['Source', 'Score'], ['Source:Memory != Median'])
コード例 #8
0
def test_indep_t_test():
    data_path = get_data_path('UScrime.csv')

    # Declare and annotate the variables of interest
    variables = [{
        'name': 'So',
        'data type': 'nominal',
        'categories': ['0', '1']
    }, {
        'name': 'Prob',
        'data type': 'ratio',
        'range': [0, 1]
    }]
    experimental_design = {
        'study type': 'observational study',
        'contributor variables': 'So',
        'outcome variables': 'Prob',
    }
    assumptions = {
        'Type I (False Positive) Error Rate': 0.05,
        'groups normally distributed': [['Prob', 'So']]
    }

    transformations = {'log': ['Prob']}

    tea.data(data_path)
    tea.define_variables(variables)
    # Allows for using multiple study designs for the same dataset (could lead to phishing but also practical for saving analyses and reusing as many parts of analyses as possible)
    tea.define_study_design(experimental_design)
    tea.assume(assumptions)

    tea.hypothesize(['So', 'Prob'], ['So:1 > 0'])  # Southern is greater
    # print("\nfrom Kabacoff")
    # print("Expected outcome: Student's t-test")
    print('++++++++++++')
コード例 #9
0
def test_chi_square_with_dataframe():
    data_path = get_data_path('catsData.csv')

    data_frame = pd.read_csv(data_path)

    # Declare and annotate the variables of interest
    variables = [{
        'name': 'Training',
        'data type': 'nominal',
        'categories': ['Food as Reward', 'Affection as Reward']
    }, {
        'name': 'Dance',
        'data type': 'nominal',
        'categories': ['Yes', 'No']
    }]
    experimental_design = {
        'study type': 'observational study',
        'contributor variables': 'Training',
        'outcome variables': 'Dance'
    }
    assumptions = {
        'Type I (False Positive) Error Rate': 0.05,
    }

    tea.data(data_frame)  # Passes data_frame instead of data_path
    tea.define_variables(variables)
    # Allows for using multiple study designs for the same dataset (could lead to phishing but also practical for saving analyses and reusing as many parts of analyses as possible)
    tea.define_study_design(experimental_design)
    tea.assume(assumptions)

    tea.hypothesize(['Training', 'Dance'])
    # print('Chi square')
    print('++++++++++++')
コード例 #10
0
def test_pearson_corr_2(): 
    data_path = get_data_path('exam.csv')

    # Declare and annotate the variables of interest
    variables = [
        {
            'name' : 'Exam',
            'data type' : 'ratio',
            'range' : [0, 100]
        },
        {
            'name' : 'Anxiety',
            'data type' : 'interval',
            'range' : [0, 100]
        },
        {
            'name' : 'Gender',
            'data type' : 'nominal',
            'categories' : ['Male', 'Female']
        },
        {
            'name' : 'Revise',
            'data type' : 'ratio'
        }
    ]
    experimental_design = {
                            'study type': 'observational study',
                            'contributor variables': ['Anxiety', 'Gender', 'Revise'],
                            'outcome variables': 'Exam'
                        }
    assumptions = {
        'Type I (False Positive) Error Rate': 0.05,
    }

    tea.data(data_path)
    tea.define_variables(variables)
    tea.define_study_design(experimental_design)
    tea.assume(assumptions)

    results = tea.hypothesize(['Anxiety', 'Exam'])
    results = tea.hypothesize(['Revise', 'Exam'])
    results = tea.hypothesize(['Anxiety', 'Revise'])
    print("\nfrom Field et al.")
    print("Expected outcome: Pearson")
コード例 #11
0
def test_two_way_anova():
    data_path = get_data_path('co2.csv')

    # Declare and annotate the variables of interest
    variables = [{
        'name': 'uptake',
        'data type': 'interval'
    }, {
        'name': 'Type',
        'data type': 'nominal',
        'categories': ['Quebec', 'Mississippi']
    }, {
        'name': 'conc',
        'data type': 'ordinal',
        'categories': [95, 175, 250, 350, 500, 675, 1000]
    }]
    experimental_design = {
        'study type': 'experiment',
        'independent variables': ['Type', 'conc'],
        'dependent variables': 'uptake',
        'within subjects': 'conc',
        'between subjects': 'Type'
    }
    assumptions = {
        'Type I (False Positive) Error Rate': 0.05,
        'groups normally distributed': [['Type', 'uptake'], ['Type', 'conc']],
        'equal variance': [['Type', 'uptake'], ['conc', 'uptake']]
    }

    tea.data(data_path)
    tea.define_variables(variables)
    tea.define_study_design(
        experimental_design
    )  # Allows for using multiple study designs for the same dataset (could lead to phishing but also practical for saving analyses and reusing as many parts of analyses as possible)
    tea.assume(assumptions, mode='relaxed')

    tea.hypothesize(['uptake', 'conc',
                     'Type'])  # Fails: not all groups are normal
    #Type main effect?
    # print('Supposed to be 2 way ANOVA')
    print('++++++++++++')
コード例 #12
0
def test_rm_one_way_anova(): 
    data_path = get_data_path('co2.csv')

    # Declare and annotate the variables of interest
    variables = [
        {
            'name' : 'uptake',
            'data type' : 'interval'
        },
        {
            'name' : 'Type',
            'data type' : 'nominal',
            'categories': ['Quebec', 'Mississippi']
        },
        {
            'name' : 'conc',
            'data type' : 'ordinal',
            'categories': [95, 175, 250, 350, 500, 675, 1000]
        }
    ]
    experimental_design = {
                            'study type': 'experiment',
                            'independent variables': ['Type', 'conc'],
                            'dependent variables': 'uptake',
                            'within subjects': 'conc',
                            'between subjects': 'Type'
                        }
    assumptions = {
        'Type I (False Positive) Error Rate': 0.05,
    }

    tea.data(data_path, key="Plant")
    tea.define_variables(variables)
    tea.define_study_design(experimental_design) # Allows for using multiple study designs for the same dataset (could lead to phishing but also practical for saving analyses and reusing as many parts of analyses as possible)
    tea.assume(assumptions)

    tea.hypothesize(['uptake', 'conc'])

    print("\nFrom Field et al.")
    print("Expected outcome: Repeated Measures One Way ANOVA")
コード例 #13
0
def test_kendall_tau_corr():
    data_path = get_data_path('liar.csv')

    # Declare and annotate the variables of interest
    variables = [
        {
            'name': 'Creativity',
            'data type': 'interval'
        },
        {
            'name': 'Position',
            'data type': 'ordinal',
            'categories': [6, 5, 4, 3, 2, 1]  # ordered from lowest to highest
        },
        {
            'name': 'Novice',
            'data type': 'nominal',
            'categories': [0, 1]
        }
    ]
    experimental_design = {
        'study type': 'observational study',
        'contributor variables': ['Novice', 'Creativity'],
        'outcome variables': 'Position'
    }
    assumptions = {
        'Type I (False Positive) Error Rate': 0.05,
    }

    tea.data(data_path)
    tea.define_variables(variables)
    tea.define_study_design(experimental_design)
    tea.assume(assumptions)

    results = tea.hypothesize(
        ['Position', 'Creativity'],
        ['Position:1 > 6', 'Position:1 > 2'])  # I think this works!?
    # print("\nfrom Field et al.")
    # print("Expected outcome: Kendall Tau")
    print('++++++++++++')
コード例 #14
0
def test_factorial_anova():
    data_path = get_data_path('gogglesData.csv')

    # Declare and annotate the variables of interest
    variables = [
        {
            'name' : 'gender',
            'data type' : 'nominal',
            'categories' : ['Female', 'Male']
        },
        {
            'name' : 'alcohol',
            'data type' : 'nominal',
            'categories': ['None', '2 Pints', '4 Pints']
        },
        {
            'name' : 'attractiveness',
            'data type' : 'interval'
        }
    ]
    experimental_design = {
                            'study type': 'experiment',
                            'independent variables': ['gender', 'alcohol'],
                            'dependent variables': 'attractiveness',
                            'between subjects': ['gender', 'alcohol']
                        }
    assumptions = {
        'Type I (False Positive) Error Rate': 0.05,
    }

    tea.data(data_path)
    tea.define_variables(variables)
    tea.define_study_design(experimental_design) # Allows for using multiple study designs for the same dataset (could lead to phishing but also practical for saving analyses and reusing as many parts of analyses as possible)
    tea.assume(assumptions)

    tea.hypothesize(['attractiveness', 'gender', 'alcohol']) 
    # alcohol main effect?
    print("\nFrom Field et al.")
    print("Expected outcome: Factorial ANOVA")
コード例 #15
0
def test_pointbiserial_corr():
    data_path = get_data_path('pbcorr.csv')

    # Declare and annotate the variables of interest
    variables = [
        {
            'name': 'time',
            'data type': 'ratio'
        },
        {
            'name': 'gender',
            'data type': 'nominal',
            'categories': [0, 1]  # ordered from lowest to highest
        },
        {
            'name': 'recode',
            'data type': 'nominal',
            'categories': [0, 1]
        }
    ]
    experimental_design = {
        'study type': 'observational study',
        'contributor variables': ['gender', 'recode'],
        'outcome variables': 'time'
    }
    assumptions = {
        'Type I (False Positive) Error Rate': 0.05,
    }

    tea.data(data_path)
    tea.define_variables(variables)
    tea.define_study_design(experimental_design)
    tea.assume(assumptions)

    # I think this works!?
    tea.hypothesize(['time', 'gender'], ['gender:1 > 0'])
    # print("\nfrom Field et al.")
    # print("Expected outcome: Pointbiserial")
    print('++++++++++++')
コード例 #16
0
def test_mann_whitney_0():
    tea.data('./tests/data/real_stats_3.csv')

    variables = [{
        'name': 'Treatment',
        'data type': 'nominal',
        'categories': ['Control', 'Drug']
    }, {
        'name': 'Score',
        'data type': 'ratio'
    }]
    experimental_design = {
        'study type': 'experiment',
        'independent variables': 'Treatment',
        'dependent variables': 'Score'
    }
    assumptions = {'Type I (False Positive) Error Rate': 0.05}

    tea.define_variables(variables)
    # Allows for using multiple study designs for the same dataset (could lead to phishing but also practical for saving analyses and reusing as many parts of analyses as possible)
    tea.define_study_design(experimental_design)
    tea.assume(assumptions)
    tea.hypothesize(['Treatment', 'Score'], ['Treatment:Control != Drug'])
コード例 #17
0
ファイル: ar_tv_tea.py プロジェクト: pkuleon/tea-lang
    'data type': 'ordinal',
    'categories': [1, 2, 3, 4, 5]
}]

experimental_design = {
    'study type': 'experiment',
    'independent variables': 'Condition',
    'dependent variables': 'Score'
}

assumptions = {'Type I (False Positive) Error Rate': 0.01969}

tea.data(data_path, key='ID')
tea.define_variables(variables)
tea.define_study_design(experimental_design)
tea.assume(assumptions)
results = tea.hypothesize(['Score', 'Condition'], ['Condition:AR > TV'])
'''
Results:
--------------
Test: mannwhitney_u
***Test assumptions:
Exactly one explanatory variable: Condition
Exactly one explained variable: Score
Independent (not paired) observations: Condition
Variable is categorical: Condition
Variable has two categories: Condition
Continuous OR ORDINAL (not nominal) data: Score

***Test results:
name = Mann Whitney U Test