Analyze a specific participant's longitudinal passive-sensing and psychological data in the GLOBEM digital depression research dataset. Use this skill whenever the task involves: analyzing a user's mental health or behavioral data from wearables/smartphones, generating QA pairs about behavioral/psychological changes over time, working with EMA, depression scores, activity, sleep, communication, location, or phone-usage data, or any user-profile analysis in the DDR/GLOBEM context.
Analyze all available data for a specified participant (identified by pid, e.g., INS-W_011) and submit QA pairs covering their behavioral and psychological changes across the observation period. Aim for 20+ high-quality, distinct QA pairs covering every available data modality and multiple sub-dimensions within each modality.
Dataset Structure
All CSV files share the columns pid (participant ID) and date. Filter every file by the target pid.
Sensor files (92 days per participant, many NaN rows are normal):
activity_allday_raw.csv — daily step count, active/sedentary bout counts and durations
location_allday_raw.csv — distance traveled, radius of gyration, home time, significant places, circadian routine, location entropy, location transitions
phone_usage_allday_raw.csv — unlock episode count, total duration, average duration per episode; also contains columns for phone usage at different location contexts (home, study, etc.)
connectivity_allday_raw.csv — Bluetooth scan count, unique devices
Assessment files (one row per observation per participant):
ema.csv — negative_affect_EMA score, timestamped across the study period
dep_endterm.csv — final depression label and BDI2 score
Schema tip: Use get_field_description(data_file="<filename>") for the six sensor CSV files. For ema.csv, dep_weekly.csv, pre.csv, post.csv, infer column meanings from names.
Known column pitfalls:
platform.csv uses column platform, not os
Home time: use barnett_hometime (not barnett_homelabel, which does not exist)
summary_rapids_* columns repeat the same period-wide value on every row — use intraday_rapids_* for daily variation
Phone usage location columns: look for columns with home, study, or location-context suffixes in phone_usage_allday_raw.csv
Analysis Workflow
1. Orient to the participant
import pandas as pd
pid = "INS-W_011" # replace with target
files = ["ema.csv", "dep_weekly.csv", "activity_allday_raw.csv",
"sleep_allday_raw.csv", "communication_allday_raw.csv",
"location_allday_raw.csv", "phone_usage_allday_raw.csv",
"connectivity_allday_raw.csv"]
for f in files:
df = pd.read_csv(f)
sub = df[df['pid'] == pid]
n_valid = sub.select_dtypes('number').notna().any(axis=1).sum()
print(f"{f}: {len(sub)} rows, {n_valid} with any numeric data")
2. Temporal segmentation for sensor data
Early/late split — the standard comparison unit for sensor modalities. Always dropna() on the target column first.
def early_late(df, pid, value_col):
sub = df[df['pid'] == pid].copy()
sub['date'] = pd.to_datetime(sub['date'])
sub = sub.sort_values('date').dropna(subset=[value_col])
mid = len(sub) // 2
early = sub.iloc[:mid][value_col].mean()
late = sub.iloc[mid:][value_col].mean()
return early, late
Thirds segmentation — use for modalities where a non-linear trajectory is plausible (location entropy, negative affect, mobility, phone usage). Reveals U-shaped or progressive patterns that early/late splits miss.
def thirds(df, pid, value_col):
sub = df[df['pid'] == pid].copy()
sub['date'] = pd.to_datetime(sub['date'])
sub = sub.sort_values('date').dropna(subset=[value_col])
n = len(sub)
t1 = sub.iloc[:n//3][value_col].mean()
t2 = sub.iloc[n//3:2*n//3][value_col].mean()
t3 = sub.iloc[2*n//3:][value_col].mean()
return t1, t2, t3
Weekday vs weekend — compute for every modality with ≥10 weekday and ≥5 weekend valid days. Report if difference is >15%.
Count vs duration dissociation; home vs non-home phone usage
Connectivity
rapids_countscans, rapids_uniquedevices
—
Environmental exposure diversity
4. Extract richer sub-dimension insights
Weekday vs weekend: Report if difference >15% for at least one modality. Often highest contrast for sleep duration, weekend distance traveled, home time, and incoming calls.
Active/sedentary ratio: Compute active bout duration / sedentary bout duration for early vs late. Even small ratio change is QA-worthy.
Communication count vs duration dissociation: If outgoing call count increases but total duration decreases (or vice versa), name this pattern explicitly (more frequent but shorter calls, or fewer but longer calls).
Communication proactivity ratio: Compute outgoing/incoming ratio in early vs late periods. A shift in this ratio (e.g., 3.0→8.4) is a meaningful QA pair indicating change in who initiates contact.
Communication network diversity: Extract rapids_outgoing_distinctcontacts for early vs late. An increase signals broader social reach; a decrease signals more concentrated engagement.
Phone count vs duration dissociation: If unlock count drops but total duration rises (or vice versa), report this as a meaningful pattern.
Phone usage by location context: If columns for home vs study (or other location) phone usage exist, compare unlock count and duration at home vs non-home contexts between early and late periods.
Location diversity: Extract doryab_locationentropy (or barnett_siglocentropy) and doryab_numberlocationtransitions for early vs late and thirds. An increase signals more spatially diverse behavior.
Circadian routine score (barnett_circdnrtn, 0=chaotic, 1=perfectly consistent): Changes indicate shifts in daily routine regularity. Particularly useful when mobility changes but routine may not follow.
Temporal anomalies with specific dates: After weekly aggregation, identify anomaly weeks (>2× median distance). Drill into those weeks for peak dates and magnitudes.
EMA spike analysis: Identify dates with highest negative affect. Compare behavioral signals on those dates vs participant average (travel, sleep, home time). Report specific dates and values.
Event-day behavioral comparison: On anomaly travel days, compare sleep, phone usage, communication, and other metrics vs participant overall average. This produces high-value cross-modal QA pairs.
Cross-modal correlations: When two streams have ≥10 shared observations, compute Pearson correlation.
merged = pd.merge(df_comm[['date','rapids_outgoing_count']],
df_loc[['date','barnett_disttravelled']], on='date')
r = merged[['rapids_outgoing_count','barnett_disttravelled']].corr().iloc[0,1]
Self-report vs behavioral discrepancies: When survey direction contradicts behavioral signal (e.g., social support worsens but outgoing calls increase), surface that tension explicitly.
Behavioral vs psychological trajectory dissociation: If behavioral metrics (calls, mobility, phone use) increase while psychological metrics worsen (or vice versa), name this meta-pattern as a dedicated QA pair.
5. Formulate and submit QA pairs
Each QA pair must:
Ask about a specific behavioral or psychological dimension with a clear time reference
Include concrete numbers in the answer (mean values, direction and magnitude of change, scale names)
Describe the direction and magnitude using natural language ("increased substantially", "remained stable", "decreased modestly")
Remain factual — do not over-interpret causation
Submit with: submit_qa_pair(q="...", a="...")
Good QA pair examples (structure to emulate):
Q: "How did the user's negative affect change over the observation period?" A: "It showed a moderate increase, rising from 8.44 in the early period to 10.56 in the later period."
Q: "How did the user's physical activity levels and sedentary behavior change between early and late periods?" A: "Physical activity decreased modestly (steps: 10,884→9,249/day; -15%). Sedentary bout duration increased slightly while active bout duration fell, shifting the active-to-sedentary ratio from 0.19 to 0.16."
Q: "How did outgoing call frequency and duration change between early and late periods?" A: "Outgoing calls increased from 1.24 to 3.67/day (+196%), but total duration increased more dramatically (from 58s to 305s mean/call), suggesting fewer but much longer conversations in the later period."
Q: "How did the user's mobility and phone usage differ between weekdays and weekends?" A: "Weekend distance traveled averaged 162 km vs 23 km on weekdays, with home time decreasing by 2.2 hours. Phone usage also increased modestly on weekends (+4 unlocks/day)."
Q: "Was there any exceptional mobility event during the study?" A: "Week 24 showed exceptional mobility with distance spiking to 176,804 m — approximately 5× the participant's median. Peak travel days occurred on May 24 (4.4M m) and May 27 (3.98M m), suggesting major long-distance travel."
Q: "Did the user's peak negative affect episodes coincide with any specific behavioral events?" A: "Yes, the two highest negative affect days (May 20: 5.0, May 24: 8.0) coincided with the largest travel days (641 km and 4,428 km), suggesting travel-related stress during the high-mobility period."
Q: "How did the user's spatial behavior and routine patterns change between early and late periods?" A: "Location entropy decreased from 0.28 to 0.21 nats suggesting less diverse location usage, circadian routine weakened from 0.62 to 0.50 indicating less consistent daily patterns, while location transitions increased from 2.34 to 5.00/day."
Q: "Is there a discrepancy between self-reported social support and behavioral communication patterns?" A: "Yes: self-reported emotional social support decreased (giving: 14→8, receiving: 20→14), yet outgoing calls increased from 9.25 to 13.92/day, suggesting behavioral social engagement increased despite perceived support decline."
Q: "How did the user's proactive vs reactive communication patterns change over the study period?" A: "The user became substantially more proactive: outgoing calls increased 250% (0.92→3.23/day) while incoming calls only rose 25% (0.31→0.38/day). The outgoing/incoming ratio shifted from 3.0 to 8.4, indicating a strong shift toward initiating rather than receiving calls."
Q: "How did the user's spatial diversity (location entropy) change across the study period?" A: "Location entropy showed a declining trend across thirds: 0.449 nats (first third) → 0.485 nats (middle third) → 0.238 nats (last third). The sharp drop in the final third indicates substantially reduced spatial diversity toward the end of the study."
Q: "How did the user's emotion regulation, resilience, and mindfulness change from pre-study to post-study?" A: "Resilience increased substantially (BRS: 3.00→3.67), and mindfulness improved (MAAS: 4.0→5.0). Emotion regulation showed mixed changes: reappraisal slightly decreased (5.17→5.00) while suppression increased (4.50→5.00). Perceived stress decreased notably (PSS: 21→17)."
6. QA coverage checklist
Aim to cover all of these (skip only if data is entirely NaN):
EMA negative affect trajectory (early/late) + thirds if non-linear pattern
EMA spike analysis — specific high-affect dates and coinciding behaviors
Weekly depression status and severity (including BDI2 endterm)
Weekly depression/anxiety subscale trajectory
Pre/post: psychological state (depression, anxiety/stress, loneliness) — one QA pair
Pre/post: social factors (all 4 social support dimensions, social fit) — one QA pair
barnett_homelabel does not exist — use barnett_hometime for Barnett-algorithm home time.
platform.csv column is platform, not os — KeyError on os is a common bug.
Submit QA pairs incrementally as you finish each modality — don't batch them all at the end.
Communication data is often sparse (<30% valid days for some participants) — note this limitation but still extract the available patterns.
Distance outliers: filter values >10× median before computing means for location data to avoid skew from extreme travel days inflating averages.
Pre/post QA pairs should be split into three separate pairs: one for depression/anxiety/stress/loneliness, one for social support dimensions, and one for emotion regulation/coping/resilience/mindfulness. This ensures adequate coverage and generates more distinct QA pairs.
Communication proactivity: always compute and report the outgoing/incoming ratio in both early and late periods — the ratio change often reveals a meaningful social behavior shift even when absolute counts change modestly.
1---2name: ddr-globem-analysis-23description: Analyze a specific participant's longitudinal passive-sensing and psychological data in the GLOBEM digital depression research dataset. Use this skill whenever the task involves: analyzing a user's mental health or behavioral data from wearables/smartphones, generating QA pairs about behavioral/psychological changes over time, working with EMA, depression scores, activity, sleep, communication, location, or phone-usage data, or any user-profile analysis in the DDR/GLOBEM context.4---56# DDR GLOBEM Participant Analysis78## Task Overview910Analyze all available data for a specified participant (identified by `pid`, e.g., `INS-W_011`) and submit QA pairs covering their behavioral and psychological changes across the observation period. Aim for **20+ high-quality, distinct QA pairs** covering every available data modality and multiple sub-dimensions within each modality.1112## Dataset Structure1314All CSV files share the columns `pid` (participant ID) and `date`. Filter every file by the target `pid`.1516**Sensor files** (92 days per participant, many NaN rows are normal):17- `activity_allday_raw.csv` — daily step count, active/sedentary bout counts and durations18- `sleep_allday_raw.csv` — sleep duration (minutes), efficiency, bedtime/wake-time19- `communication_allday_raw.csv` — incoming/outgoing/missed call counts, durations, distinct contacts20- `location_allday_raw.csv` — distance traveled, radius of gyration, home time, significant places, circadian routine, location entropy, location transitions21- `phone_usage_allday_raw.csv` — unlock episode count, total duration, average duration per episode; also contains columns for phone usage at different location contexts (home, study, etc.)22- `connectivity_allday_raw.csv` — Bluetooth scan count, unique devices2324**Assessment files** (one row per observation per participant):25- `ema.csv` — `negative_affect_EMA` score, timestamped across the study period26- `dep_weekly.csv` — weekly `feel_anxious`, `feel_depressed`, `BDI2` (endterm only), `dep` (binary), `dep_weekly_subscale`, `anx_weekly_subscale`27- `pre.csv` / `post.csv` — baseline vs. end-of-study psychological scales (loneliness, perceived stress, anxiety, depression, social support, emotion regulation, resilience, mindfulness, coping)28- `dep_endterm.csv` — final depression label and BDI2 score2930**Schema tip**: Use `get_field_description(data_file="<filename>")` for the six sensor CSV files. For `ema.csv`, `dep_weekly.csv`, `pre.csv`, `post.csv`, infer column meanings from names.3132**Known column pitfalls**:33- `platform.csv` uses column `platform`, not `os`34- Home time: use `barnett_hometime` (not `barnett_homelabel`, which does not exist)35- `summary_rapids_*` columns repeat the same period-wide value on every row — use `intraday_rapids_*` for daily variation36- Phone usage location columns: look for columns with `home`, `study`, or location-context suffixes in `phone_usage_allday_raw.csv`3738## Analysis Workflow3940### 1. Orient to the participant4142```python43import pandas as pd4445pid = "INS-W_011" # replace with target46files = ["ema.csv", "dep_weekly.csv", "activity_allday_raw.csv",47 "sleep_allday_raw.csv", "communication_allday_raw.csv",48 "location_allday_raw.csv", "phone_usage_allday_raw.csv",49 "connectivity_allday_raw.csv"]50for f in files:51 df = pd.read_csv(f)52 sub = df[df['pid'] == pid]53 n_valid = sub.select_dtypes('number').notna().any(axis=1).sum()54 print(f"{f}: {len(sub)} rows, {n_valid} with any numeric data")55```5657### 2. Temporal segmentation for sensor data5859**Early/late split** — the standard comparison unit for sensor modalities. Always `dropna()` on the target column first.6061```python62def early_late(df, pid, value_col):63 sub = df[df['pid'] == pid].copy()64 sub['date'] = pd.to_datetime(sub['date'])65 sub = sub.sort_values('date').dropna(subset=[value_col])66 mid = len(sub) // 267 early = sub.iloc[:mid][value_col].mean()68 late = sub.iloc[mid:][value_col].mean()69 return early, late70```7172**Thirds segmentation** — use for modalities where a non-linear trajectory is plausible (location entropy, negative affect, mobility, phone usage). Reveals U-shaped or progressive patterns that early/late splits miss.7374```python75def thirds(df, pid, value_col):76 sub = df[df['pid'] == pid].copy()77 sub['date'] = pd.to_datetime(sub['date'])78 sub = sub.sort_values('date').dropna(subset=[value_col])79 n = len(sub)80 t1 = sub.iloc[:n//3][value_col].mean()81 t2 = sub.iloc[n//3:2*n//3][value_col].mean()82 t3 = sub.iloc[2*n//3:][value_col].mean()83 return t1, t2, t384```8586**Weekday vs weekend** — compute for every modality with ≥10 weekday and ≥5 weekend valid days. Report if difference is >15%.8788```python89sub['dayofweek'] = pd.to_datetime(sub['date']).dt.dayofweek90weekday = sub[sub['dayofweek'] < 5][value_col].mean()91weekend = sub[sub['dayofweek'] >= 5][value_col].mean()92```9394### 3. Data to extract per modality9596| Modality | Primary columns | Secondary columns (also extract) | QA angles |97|---|---|---|---|98| EMA | `negative_affect_EMA` | — | Early/late trend; thirds trajectory; spike dates |99| Weekly depression | `feel_depressed`, `feel_anxious`, `dep`, `BDI2` | `dep_weekly_subscale`, `anx_weekly_subscale` | Persistent depression; symptom trajectory; final severity |100| Pre/Post — psychological | `CESD*`, `STAI*`, `PSS*`, `UCLA*` | — | Separate QA: change in depression, anxiety, stress, loneliness |101| Pre/Post — social | `2waySSS_*` (all 4 dimensions), `SocialFit*` | — | Separate QA: receiving/giving emotional & instrumental support; social fit |102| Pre/Post — regulation | `ERQ_*`, `BRS*`, `MAAS*`, `CHIPS*` | — | Separate QA: emotion regulation strategy, resilience, mindfulness, coping |103| Activity | `intraday_rapids_sumsteps` | `intraday_rapids_sumdurationactivebout`, `intraday_rapids_sumdurationsedentarybout`, bout counts | Steps change; sedentary/active bout ratio change |104| Sleep | `summary_rapids_sumdurationasleepmain` (primary), `summary_rapids_avgefficiencymain` | `summary_rapids_firstbedtimemain`, `summary_rapids_lastwaketimemain` | Duration, quality, timing changes |105| Communication | `rapids_outgoing_count`, `rapids_incoming_count`, `rapids_missed_count` | `rapids_outgoing_sumduration`, `rapids_outgoing_distinctcontacts`, `rapids_incoming_sumduration` | Count vs duration dissociation; proactivity ratio change; network diversity (distinct contacts) |106| Location | `barnett_disttravelled`, `barnett_rog`, `barnett_hometime` | `barnett_circdnrtn` (circadian routine 0–1), `doryab_locationentropy` or `barnett_siglocentropy`, `doryab_numberlocationtransitions`, `barnett_siglocsvisited` | Mobility; home-time; spatial diversity; routine consistency; location transitions |107| Phone usage | `rapids_countepisodeunlock`, `rapids_sumdurationunlock` | `rapids_avgdurationunlock`, location-context columns (home/study) | Count vs duration dissociation; home vs non-home phone usage |108| Connectivity | `rapids_countscans`, `rapids_uniquedevices` | — | Environmental exposure diversity |109110### 4. Extract richer sub-dimension insights111112**Weekday vs weekend**: Report if difference >15% for at least one modality. Often highest contrast for sleep duration, weekend distance traveled, home time, and incoming calls.113114**Active/sedentary ratio**: Compute active bout duration / sedentary bout duration for early vs late. Even small ratio change is QA-worthy.115116**Communication count vs duration dissociation**: If outgoing call count increases but total duration decreases (or vice versa), name this pattern explicitly (more frequent but shorter calls, or fewer but longer calls).117118**Communication proactivity ratio**: Compute outgoing/incoming ratio in early vs late periods. A shift in this ratio (e.g., 3.0→8.4) is a meaningful QA pair indicating change in who initiates contact.119120**Communication network diversity**: Extract `rapids_outgoing_distinctcontacts` for early vs late. An increase signals broader social reach; a decrease signals more concentrated engagement.121122**Phone count vs duration dissociation**: If unlock count drops but total duration rises (or vice versa), report this as a meaningful pattern.123124**Phone usage by location context**: If columns for home vs study (or other location) phone usage exist, compare unlock count and duration at home vs non-home contexts between early and late periods.125126**Location diversity**: Extract `doryab_locationentropy` (or `barnett_siglocentropy`) and `doryab_numberlocationtransitions` for early vs late and thirds. An increase signals more spatially diverse behavior.127128**Circadian routine score** (`barnett_circdnrtn`, 0=chaotic, 1=perfectly consistent): Changes indicate shifts in daily routine regularity. Particularly useful when mobility changes but routine may not follow.129130**Temporal anomalies with specific dates**: After weekly aggregation, identify anomaly weeks (>2× median distance). Drill into those weeks for peak dates and magnitudes.131132```python133sub['week'] = pd.to_datetime(sub['date']).dt.isocalendar().week134weekly = sub.groupby('week')['barnett_disttravelled'].mean()135anomaly_weeks = weekly[weekly > weekly.median() * 2]136for wk in anomaly_weeks.index:137 wk_days = sub[sub['week'] == wk].nlargest(3, 'barnett_disttravelled')138 print(wk_days[['date', 'barnett_disttravelled']])139```140141**EMA spike analysis**: Identify dates with highest negative affect. Compare behavioral signals on those dates vs participant average (travel, sleep, home time). Report specific dates and values.142143**Event-day behavioral comparison**: On anomaly travel days, compare sleep, phone usage, communication, and other metrics vs participant overall average. This produces high-value cross-modal QA pairs.144145**Cross-modal correlations**: When two streams have ≥10 shared observations, compute Pearson correlation.146147```python148merged = pd.merge(df_comm[['date','rapids_outgoing_count']],149 df_loc[['date','barnett_disttravelled']], on='date')150r = merged[['rapids_outgoing_count','barnett_disttravelled']].corr().iloc[0,1]151```152153**Self-report vs behavioral discrepancies**: When survey direction contradicts behavioral signal (e.g., social support worsens but outgoing calls increase), surface that tension explicitly.154155**Behavioral vs psychological trajectory dissociation**: If behavioral metrics (calls, mobility, phone use) increase while psychological metrics worsen (or vice versa), name this meta-pattern as a dedicated QA pair.156157### 5. Formulate and submit QA pairs158159Each QA pair must:160- Ask about a **specific behavioral or psychological dimension** with a clear time reference161- Include **concrete numbers** in the answer (mean values, direction and magnitude of change, scale names)162- Describe the **direction and magnitude** using natural language ("increased substantially", "remained stable", "decreased modestly")163- Remain factual — do not over-interpret causation164165Submit with: `submit_qa_pair(q="...", a="...")`166167**Good QA pair examples** (structure to emulate):168169- Q: "How did the user's negative affect change over the observation period?" 170 A: "It showed a moderate increase, rising from 8.44 in the early period to 10.56 in the later period."171172- Q: "How did the user's physical activity levels and sedentary behavior change between early and late periods?" 173 A: "Physical activity decreased modestly (steps: 10,884→9,249/day; -15%). Sedentary bout duration increased slightly while active bout duration fell, shifting the active-to-sedentary ratio from 0.19 to 0.16."174175- Q: "How did outgoing call frequency and duration change between early and late periods?" 176 A: "Outgoing calls increased from 1.24 to 3.67/day (+196%), but total duration increased more dramatically (from 58s to 305s mean/call), suggesting fewer but much longer conversations in the later period."177178- Q: "How did the user's mobility and phone usage differ between weekdays and weekends?" 179 A: "Weekend distance traveled averaged 162 km vs 23 km on weekdays, with home time decreasing by 2.2 hours. Phone usage also increased modestly on weekends (+4 unlocks/day)."180181- Q: "Was there any exceptional mobility event during the study?" 182 A: "Week 24 showed exceptional mobility with distance spiking to 176,804 m — approximately 5× the participant's median. Peak travel days occurred on May 24 (4.4M m) and May 27 (3.98M m), suggesting major long-distance travel."183184- Q: "Did the user's peak negative affect episodes coincide with any specific behavioral events?" 185 A: "Yes, the two highest negative affect days (May 20: 5.0, May 24: 8.0) coincided with the largest travel days (641 km and 4,428 km), suggesting travel-related stress during the high-mobility period."186187- Q: "How did the user's spatial behavior and routine patterns change between early and late periods?" 188 A: "Location entropy decreased from 0.28 to 0.21 nats suggesting less diverse location usage, circadian routine weakened from 0.62 to 0.50 indicating less consistent daily patterns, while location transitions increased from 2.34 to 5.00/day."189190- Q: "Is there a discrepancy between self-reported social support and behavioral communication patterns?" 191 A: "Yes: self-reported emotional social support decreased (giving: 14→8, receiving: 20→14), yet outgoing calls increased from 9.25 to 13.92/day, suggesting behavioral social engagement increased despite perceived support decline."192193- Q: "How did the user's proactive vs reactive communication patterns change over the study period?" 194 A: "The user became substantially more proactive: outgoing calls increased 250% (0.92→3.23/day) while incoming calls only rose 25% (0.31→0.38/day). The outgoing/incoming ratio shifted from 3.0 to 8.4, indicating a strong shift toward initiating rather than receiving calls."195196- Q: "How did the user's spatial diversity (location entropy) change across the study period?" 197 A: "Location entropy showed a declining trend across thirds: 0.449 nats (first third) → 0.485 nats (middle third) → 0.238 nats (last third). The sharp drop in the final third indicates substantially reduced spatial diversity toward the end of the study."198199- Q: "How did the user's emotion regulation, resilience, and mindfulness change from pre-study to post-study?" 200 A: "Resilience increased substantially (BRS: 3.00→3.67), and mindfulness improved (MAAS: 4.0→5.0). Emotion regulation showed mixed changes: reappraisal slightly decreased (5.17→5.00) while suppression increased (4.50→5.00). Perceived stress decreased notably (PSS: 21→17)."201202### 6. QA coverage checklist203204Aim to cover all of these (skip only if data is entirely NaN):205- [ ] EMA negative affect trajectory (early/late) + thirds if non-linear pattern206- [ ] EMA spike analysis — specific high-affect dates and coinciding behaviors207- [ ] Weekly depression status and severity (including BDI2 endterm)208- [ ] Weekly depression/anxiety subscale trajectory209- [ ] **Pre/post: psychological state** (depression, anxiety/stress, loneliness) — one QA pair210- [ ] **Pre/post: social factors** (all 4 social support dimensions, social fit) — one QA pair211- [ ] **Pre/post: emotion regulation / coping / resilience / mindfulness** — one QA pair212- [ ] Physical activity (steps) early vs. late213- [ ] Activity/sedentary bout ratio early vs. late214- [ ] Sleep duration, quality, and timing (bedtime/wake-time) early vs. late215- [ ] Weekday vs weekend differences (at least one modality where difference >15%)216- [ ] Communication: outgoing count AND duration, early vs late; count/duration dissociation217- [ ] Communication: incoming count trend; missed call trend218- [ ] **Communication proactivity ratio** (outgoing/incoming ratio change over time)219- [ ] **Communication network diversity** (distinct contacts) early vs late220- [ ] Mobility patterns (distance, RoG, home time) early vs. late221- [ ] Location diversity (entropy, circadian routine score, significant places, location transitions) early vs. late222- [ ] **Location entropy thirds trajectory** (if progressive or U-shaped pattern present)223- [ ] Phone usage (unlock count AND duration) early vs late; count/duration dissociation224- [ ] **Phone usage by location context** (home vs non-home) if columns exist225- [ ] Connectivity / environmental exposure early vs. late226- [ ] Temporal anomaly (if detected) — with specific dates, magnitudes, cross-modal coincidences227- [ ] Cross-modal correlation (if data permits, ≥10 shared observations)228- [ ] Self-report vs. behavioral discrepancy (if present)229- [ ] Behavioral trajectory vs. psychological trajectory dissociation (if trends diverge)230231## Common Pitfalls232233- **Never split raw 92-row arrays** — many rows will be NaN. Always `dropna()` on the target column before computing early/late or thirds statistics.234- **`summary_rapids_*` columns are period-wide summaries** — they repeat the same value across all rows. Use `intraday_rapids_*` for genuine daily variation.235- **`get_field_description` won't work for `ema.csv` or `dep_weekly.csv`** — infer column meanings from names.236- **BDI2 appears in `dep_weekly.csv` only in the final row** — it's the endterm score, not a weekly measure.237- **Pre/post survey scale directions vary**: higher UCLA = more loneliness (bad), higher ERQ_reappraisal = better regulation (good), higher PSS = more stress (bad), higher BRS = better resilience (good).238- **`barnett_homelabel` does not exist** — use `barnett_hometime` for Barnett-algorithm home time.239- **`platform.csv` column is `platform`, not `os`** — KeyError on `os` is a common bug.240- **Submit QA pairs incrementally** as you finish each modality — don't batch them all at the end.241- **Communication data is often sparse** (<30% valid days for some participants) — note this limitation but still extract the available patterns.242- **Distance outliers**: filter values >10× median before computing means for location data to avoid skew from extreme travel days inflating averages.243- **Pre/post QA pairs should be split into three separate pairs**: one for depression/anxiety/stress/loneliness, one for social support dimensions, and one for emotion regulation/coping/resilience/mindfulness. This ensures adequate coverage and generates more distinct QA pairs.244- **Communication proactivity**: always compute and report the outgoing/incoming ratio in both early and late periods — the ratio change often reveals a meaningful social behavior shift even when absolute counts change modestly.
Run npx skillmds@latest add zjunlp/ddr-globem-analysis-2 in your terminal (requires Node.js), paste this page's agent-chat prompt into Claude, Cursor, or any MCP-connected agent, or download the SKILL.md file and copy it into your agent's skills directory.
Analyze a specific participant's longitudinal passive-sensing and psychological data in the GLOBEM digital depression research dataset. Use this skill whenever the task involves: analyzing a user's mental health or behavioral data from wearables/smartphones, generating QA pairs about behavioral/psychological changes over time, working with EMA, depression scores, activity, sleep, communication, location, or phone-usage data, or any user-profile analysis in the DDR/GLOBEM context. It is listed under AI & ML on SkillMD.
This skill has not completed SkillMD's automated safety review yet. SkillMD never runs a skill's scripts for you; review the SKILL.md before installing.
This skill is tagged as working with Claude Code, Claude.ai, OpenAI Codex. SKILL.md is an open format, so most agents that read a skills directory can load it too.
Yes. Installing skills from SkillMD is free, and the skill stays under its author's original license.
zjunlp (@zjunlp) published this skill. Their other Agent Skills are listed on their SkillMD profile.