From ab803ee49c2898d2dd4d49de64f763f549c077e3 Mon Sep 17 00:00:00 2001 From: Primoz Date: Tue, 15 Nov 2022 10:14:07 +0000 Subject: [PATCH] Add additional appraisal targets. --- config.yaml | 4 ++-- .../all_cleaning_overall/straw/main.py | 23 ++++++++++++++----- src/features/phone_esm/straw/main.py | 3 ++- 3 files changed, 21 insertions(+), 9 deletions(-) diff --git a/config.yaml b/config.yaml index 3c3feb73..0f108cbc 100644 --- a/config.yaml +++ b/config.yaml @@ -242,7 +242,7 @@ PHONE_ESM: STRAW: COMPUTE: True SCALES: ["PANAS_positive_affect", "PANAS_negative_affect", "JCQ_job_demand", "JCQ_job_control", "JCQ_supervisor_support", "JCQ_coworker_support", - "appraisal_stressfulness_period", "appraisal_stressfulness_event"] + "appraisal_stressfulness_period", "appraisal_stressfulness_event", "appraisal_threat", "appraisal_challenge"] FEATURES: [mean] SRC_SCRIPT: src/features/phone_esm/straw/main.py @@ -733,6 +733,6 @@ PARAMS_FOR_ANALYSIS: TARGET: COMPUTE: True LABEL: PANAS_negative_affect_mean - ALL_LABELS: [appraisal_stressfulness_event_mean] + ALL_LABELS: [appraisal_stressfulness_event_mean, appraisal_threat_mean, appraisal_challenge_mean] # PANAS_positive_affect_mean, PANAS_negative_affect_mean, JCQ_job_demand_mean, JCQ_job_control_mean, JCQ_supervisor_support_mean, # JCQ_coworker_support_mean, appraisal_stressfulness_period_mean, appraisal_stressfulness_event_mean diff --git a/src/features/all_cleaning_overall/straw/main.py b/src/features/all_cleaning_overall/straw/main.py index d0b4639c..7662440f 100644 --- a/src/features/all_cleaning_overall/straw/main.py +++ b/src/features/all_cleaning_overall/straw/main.py @@ -23,13 +23,24 @@ def straw_cleaning(sensor_data_files, provider, target): graph_bf_af(features, "1target_rows_before") # (1.0) OVERRIDE STRESSFULNESS EVENT TARGETS IF ERS TARGETS_METHOD IS "STRESS_EVENT" - if config["TIME_SEGMENTS"]["TAILORED_EVENTS"]["TARGETS_METHOD"] == "stress_event" and \ - "appraisal_stressfulness_event_mean" in config['PARAMS_FOR_ANALYSIS']['TARGET']['ALL_LABELS']: - + if config["TIME_SEGMENTS"]["TAILORED_EVENTS"]["TARGETS_METHOD"] == "stress_event": + stress_events_targets = pd.read_csv("data/external/stress_event_targets.csv") - features.drop(columns=['phone_esm_straw_appraisal_stressfulness_event_mean'], inplace=True) - features = features.merge(stress_events_targets.rename(columns={'label': 'local_segment_label'}), on=['local_segment_label'], how='inner') \ - .rename(columns={'intensity': 'phone_esm_straw_appraisal_stressfulness_event_mean'}) + + if "appraisal_stressfulness_event_mean" in config['PARAMS_FOR_ANALYSIS']['TARGET']['ALL_LABELS']: + features.drop(columns=['phone_esm_straw_appraisal_stressfulness_event_mean'], inplace=True) + features = features.merge(stress_events_targets.rename(columns={'label': 'local_segment_label'}), on=['local_segment_label'], how='inner') \ + .rename(columns={'appraisal_stressfulness_event': 'phone_esm_straw_appraisal_stressfulness_event_mean'}) + + if "appraisal_threat_mean" in config['PARAMS_FOR_ANALYSIS']['TARGET']['ALL_LABELS']: + features.drop(columns=['phone_esm_straw_appraisal_threat_mean'], inplace=True) + features = features.merge(stress_events_targets.rename(columns={'label': 'local_segment_label'}), on=['local_segment_label'], how='inner') \ + .rename(columns={'appraisal_threat_mean': 'phone_esm_straw_appraisal_threat_mean'}) + + if "appraisal_challenge_mean" in config['PARAMS_FOR_ANALYSIS']['TARGET']['ALL_LABELS']: + features.drop(columns=['phone_esm_straw_appraisal_challenge_mean'], inplace=True) + features = features.merge(stress_events_targets.rename(columns={'label': 'local_segment_label'}), on=['local_segment_label'], how='inner') \ + .rename(columns={'appraisal_challenge': 'phone_esm_straw_appraisal_challenge_mean'}) esm_cols = features.loc[:, features.columns.str.startswith('phone_esm_straw')] # Get target (esm) columns diff --git a/src/features/phone_esm/straw/main.py b/src/features/phone_esm/straw/main.py index 1f9299fd..70f09a30 100644 --- a/src/features/phone_esm/straw/main.py +++ b/src/features/phone_esm/straw/main.py @@ -42,7 +42,8 @@ def straw_features(sensor_data_files, time_segment, provider, filter_data_by_seg requested_features = provider["FEATURES"] # name of the features this function can compute requested_scales = provider["SCALES"] - base_features_names = ["PANAS_positive_affect", "PANAS_negative_affect", "JCQ_job_demand", "JCQ_job_control", "JCQ_supervisor_support", "JCQ_coworker_support", "appraisal_stressfulness_period", "appraisal_stressfulness_event"] + base_features_names = ["PANAS_positive_affect", "PANAS_negative_affect", "JCQ_job_demand", "JCQ_job_control", "JCQ_supervisor_support", "JCQ_coworker_support", \ + "appraisal_stressfulness_period", "appraisal_stressfulness_event", "appraisal_threat", "appraisal_challenge"] #TODO Check valid questionnaire and feature names. # the subset of requested features this function can compute features_to_compute = list(set(requested_features) & set(base_features_names))