── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
✔ dplyr 1.2.0 ✔ readr 2.2.0
✔ forcats 1.0.1 ✔ stringr 1.6.0
✔ ggplot2 4.0.2 ✔ tibble 3.3.1
✔ lubridate 1.9.5 ✔ tidyr 1.3.2
✔ purrr 1.2.1
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag() masks stats::lag()
ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
Loading required package: zoo
Attaching package: 'zoo'
The following objects are masked from 'package:base':
as.Date, as.Date.numeric
Loading required package: carData
Attaching package: 'car'
The following object is masked from 'package:dplyr':
recode
The following object is masked from 'package:purrr':
some
Attaching package: 'broom.helpers'
The following objects are masked from 'package:gtsummary':
all_categorical, all_continuous, all_contrasts, all_dichotomous,
all_interaction, all_intercepts
Cognitive Impairment Among Elderly Outpatients at KNUST Hospital: Mini-Cog Analysis
It addresses four objectives:
- Determine Mini-Cog scores among elderly patients (60+) attending the clinic.
- Estimate the prevalence of cognitive impairment using the Mini-Cog score.
- Assess the relationship between cognitive impairment and sociodemographic characteristics (age, sex, education) and comorbidities (e.g., hypertension, diabetes).
- Identify possible risk factors associated with cognitive impairment.
Data and methods
The analysis dataset (miniog_clean.csv) was derived from a raw 314-respondent, 135-column survey export that combined two overlapping ODK form versions. Cleaning (documented in clean_miniog.R) reconciled duplicate/versioned columns, dropped the GDS-15, Katz ADL, and lifestyle blocks (populated for only ~10% of respondents and unrelated to these objectives), replaced a non-unique participant identifier with a sequential record_id, and corrected minor text-entry issues.
The Mini-Cog total score (mini_cog_total) is calculated as mini_cog_word_recall + mini_cog_clock, the standard Mini-Cog formula. Two corrections were made to the raw data to support this:
- The originally recorded total score disagreed with
word recall + clockfor 6 of 314 rows (apparent data-entry errors), so the total is recalculated rather than taken directly from the raw field. - The official Mini-Cog clock-drawing score is strictly pass/fail (0 or 2): a clock is “normal” only if all numbers are present in the correct positions and the hands correctly show the requested time. The raw data recorded a non-standard intermediate score of 1 for 14 of 314 rows. Cross-checking against the two underlying component answers (“are all 12 numbers present?” and “do the hands point to 11 and 10 correctly?”) for the 302 rows where they were recorded showed the original scoring was inconsistent with a strict pass/fail rule for 21 rows. The clock score was therefore recomputed as 2 only when both components are correct (else 0) for those 302 rows; the 12 rows without component-level detail keep their originally recorded score. This changed the screening classification for 7 respondents (all from negative to positive) relative to using the originally recorded clock score.
A positive screen (cognitive impairment suggested) is defined as a total score of 0-2, and a negative screen as 3-5, per the standard Mini-Cog interpretation.
For the multivariable analyses of Objective 4, prevalence ratios (PR) rather than odds ratios are reported as the primary effect measure. With a cognitive impairment prevalence of roughly one-third, the odds ratio would overstate the true prevalence ratio, so PRs were estimated using a modified Poisson regression with robust (sandwich) standard errors (Zou, 2004), since a log-binomial model failed to converge.
Objective 1: Mini-Cog score distribution
| Mini-Cog component | N = 3141 |
|---|---|
| Word recall (0-3) | |
| 0 | 14 (4.5%) |
| 1 | 59 (19%) |
| 2 | 113 (36%) |
| 3 | 128 (41%) |
| Clock drawing (0/2) | |
| 0 | 166 (53%) |
| 2 | 148 (47%) |
| Mini-Cog total (0-5) | |
| 0 | 11 (3.5%) |
| 1 | 43 (14%) |
| 2 | 60 (19%) |
| 3 | 71 (23%) |
| 4 | 56 (18%) |
| 5 | 73 (23%) |
| 1 n (%) | |
Objective 2: Prevalence of cognitive impairment
Exact binomial test
data: n_impaired and n_total
number of successes = 114, number of trials = 314, p-value = 1.396e-06
alternative hypothesis: true probability of success is not equal to 0.5
95 percent confidence interval:
0.3097918 0.4189338
sample estimates:
probability of success
0.3630573
114 of 314 patients (36.3%, 95% CI 31.0%-41.9%) screened positive for cognitive impairment (Mini-Cog total ≤ 2).
Objective 3: Sociodemographic and clinical characteristics
| Characteristic | N = 3141 |
|---|---|
| Age (years) | 70 (7) |
| Sex | |
| Female | 156 (50%) |
| Male | 158 (50%) |
| Marital status | |
| Divorced or separated | 35 (11%) |
| Married | 195 (62%) |
| Single | 9 (2.9%) |
| Widowed | 75 (24%) |
| Education level | |
| No formal schooling | 37 (12%) |
| Primary school | 28 (8.9%) |
| Junior high school | 63 (20%) |
| Senior high school | 91 (29%) |
| Tertiary | 95 (30%) |
| Current work status | |
| fully retired | 172 (55%) |
| others | 20 (6.4%) |
| still working | 85 (27%) |
| unemployed | 37 (12%) |
| Living arrangement | |
| alone | 32 (10%) |
| others | 27 (8.6%) |
| with children only | 73 (23%) |
| with extended family members | 20 (6.4%) |
| with spouse | 87 (28%) |
| with spouse and children | 75 (24%) |
| Hypertension | 208 (66%) |
| Diabetes | 89 (28%) |
| Heart disease | 4 (1.3%) |
| Asthma | 14 (4.5%) |
| Cancer | 1 (0.3%) |
| Other comorbidity | 46 (15%) |
| History of stroke | |
| No | 281 (89%) |
| Yes | 22 (7.0%) |
| Not sure | 11 (3.5%) |
| Family history of dementia | |
| I am not sure | 28 (8.9%) |
| No | 265 (84%) |
| Yes | 21 (6.7%) |
| Family history of stroke | |
| I am not sure | 11 (3.5%) |
| No | 213 (68%) |
| Yes | 90 (29%) |
| 1 Mean (SD); n (%) | |
| Characteristic | Overall N = 3141 |
Negative screen (unimpaired) N = 2001 |
Positive screen (impaired) N = 1141 |
p-value2 |
|---|---|---|---|---|
| Age (years) | 70 (7) | 69 (7) | 71 (8) | 0.105 |
| Sex | 0.015 | |||
| Female | 156 (50%) | 89 (45%) | 67 (59%) | |
| Male | 158 (50%) | 111 (56%) | 47 (41%) | |
| Marital status | 0.028 | |||
| Divorced or separated | 35 (11%) | 19 (9.5%) | 16 (14%) | |
| Married | 195 (62%) | 136 (68%) | 59 (52%) | |
| Single | 9 (2.9%) | 6 (3.0%) | 3 (2.6%) | |
| Widowed | 75 (24%) | 39 (20%) | 36 (32%) | |
| Education level | <0.001 | |||
| No formal schooling | 37 (12%) | 7 (3.5%) | 30 (26%) | |
| Primary school | 28 (8.9%) | 14 (7.0%) | 14 (12%) | |
| Junior high school | 63 (20%) | 38 (19%) | 25 (22%) | |
| Senior high school | 91 (29%) | 61 (31%) | 30 (26%) | |
| Tertiary | 95 (30%) | 80 (40%) | 15 (13%) | |
| Current work status | <0.001 | |||
| fully retired | 172 (55%) | 128 (64%) | 44 (39%) | |
| others | 20 (6.4%) | 7 (3.5%) | 13 (11%) | |
| still working | 85 (27%) | 57 (29%) | 28 (25%) | |
| unemployed | 37 (12%) | 8 (4.0%) | 29 (25%) | |
| Living arrangement | <0.001 | |||
| alone | 32 (10%) | 24 (12%) | 8 (7.0%) | |
| others | 27 (8.6%) | 19 (9.5%) | 8 (7.0%) | |
| with children only | 73 (23%) | 31 (16%) | 42 (37%) | |
| with extended family members | 20 (6.4%) | 11 (5.5%) | 9 (7.9%) | |
| with spouse | 87 (28%) | 59 (30%) | 28 (25%) | |
| with spouse and children | 75 (24%) | 56 (28%) | 19 (17%) | |
| Hypertension | 208 (66%) | 132 (66%) | 76 (67%) | 0.904 |
| Diabetes | 89 (28%) | 56 (28%) | 33 (29%) | 0.858 |
| Heart disease | 4 (1.3%) | 3 (1.5%) | 1 (0.9%) | >0.999 |
| Asthma | 14 (4.5%) | 8 (4.0%) | 6 (5.3%) | 0.602 |
| Cancer | 1 (0.3%) | 1 (0.5%) | 0 (0%) | >0.999 |
| Other comorbidity | 46 (15%) | 34 (17%) | 12 (11%) | 0.119 |
| History of stroke | 0.303 | |||
| No | 281 (89%) | 179 (90%) | 102 (89%) | |
| Yes | 22 (7.0%) | 12 (6.0%) | 10 (8.8%) | |
| Not sure | 11 (3.5%) | 9 (4.5%) | 2 (1.8%) | |
| Family history of dementia | 0.472 | |||
| I am not sure | 28 (8.9%) | 20 (10%) | 8 (7.0%) | |
| No | 265 (84%) | 165 (83%) | 100 (88%) | |
| Yes | 21 (6.7%) | 15 (7.5%) | 6 (5.3%) | |
| Family history of stroke | 0.066 | |||
| I am not sure | 11 (3.5%) | 6 (3.0%) | 5 (4.4%) | |
| No | 213 (68%) | 128 (64%) | 85 (75%) | |
| Yes | 90 (29%) | 66 (33%) | 24 (21%) | |
| 1 Mean (SD); n (%) | ||||
| 2 Wilcoxon rank sum test; Pearson’s Chi-squared test; Fisher’s exact test | ||||
Heart disease (n = 4) and cancer (n = 1) had too few cases for the association tests above to have meaningful power; those p-values should not be read as evidence of “no association.”
Objective 4: Risk factors for cognitive impairment
Univariate and multivariable model (prevalence ratios, data-driven)
As an alternative, data-driven approach, univariate (unadjusted) prevalence ratios were estimated for 17 candidate predictors, and those with a univariate p-value ≤ 0.20 were entered into a second multivariable model.
Warning in meatHC(x, type = type, omega = omega): HC0 covariances become (close
to) singular if hat values are (close to) 1 as for observation(s) 91
# A tibble: 17 × 3
variable df p_value
<chr> <dbl> <dbl>
1 cancer 1 4.18e-40
2 education_level 4 5.93e-14
3 work_status 3 1.44e-13
4 religion 1 1.54e- 5
5 marital_status_binary 1 3.94e- 3
6 sex 1 1.65e- 2
7 age 1 7.29e- 2
8 family_history_stroke 2 9.59e- 2
9 ethnicity 4 1.07e- 1
10 other_comorbidity 1 1.46e- 1
11 living_arrangement_binary 1 1.96e- 1
12 stroke 2 3.56e- 1
13 family_history_dementia 2 5.09e- 1
14 asthma 1 5.84e- 1
15 heart_disease 1 6.64e- 1
16 diabetes 1 8.57e- 1
17 hypertension 1 9.05e- 1
cancer shows an apparently significant univariate association, but this is a data artifact: the single cancer case in the entire sample (n = 1) happened to be a negative screen, producing complete separation (coefficient ≈ -13). It is excluded from the multivariable model below despite meeting the p ≤ 0.20 threshold.
! `broom::tidy()` failed to tidy the model.
✔ `tidy_parameters()` used instead.
ℹ Add `tidy_fun = broom.helpers::tidy_parameters` to quiet these messages.
The number rows in the tables to be merged do not match, which may result in
rows appearing out of order.
ℹ See `tbl_merge()` (`?gtsummary::tbl_merge()`) help file for details. Use
`quiet=TRUE` to silence message.
| Characteristic |
Univariate
|
Multivariable
|
|||||
|---|---|---|---|---|---|---|---|
| N | Crude PR | 95% CI | p-value | Adjusted PR | 95% CI | p-value | |
| Age (years) | 314 | 1.02 | 1.00, 1.04 | 0.073 | 1.02 | 1.00, 1.04 | 0.044 |
| Sex | 314 | ||||||
| Female | — | — | — | — | |||
| Male | 0.69 | 0.51, 0.94 | 0.016 | 0.89 | 0.67, 1.20 | 0.452 | |
| Marital status | 314 | ||||||
| Not currently married | — | — | — | — | |||
| Currently married | 0.65 | 0.49, 0.87 | 0.004 | 0.80 | 0.61, 1.05 | 0.112 | |
| Education level | 314 | ||||||
| No formal schooling | — | — | — | — | |||
| Primary school | 0.62 | 0.41, 0.92 | 0.018 | 0.86 | 0.55, 1.35 | 0.520 | |
| Junior high school | 0.49 | 0.35, 0.69 | <0.001 | 0.62 | 0.42, 0.91 | 0.015 | |
| Senior high school | 0.41 | 0.29, 0.57 | <0.001 | 0.62 | 0.40, 0.97 | 0.036 | |
| Tertiary | 0.19 | 0.12, 0.32 | <0.001 | 0.30 | 0.16, 0.58 | <0.001 | |
| Ethnicity | 314 | ||||||
| Ashanti | — | — | — | — | |||
| Ewe | 0.45 | 0.16, 1.29 | 0.137 | 0.57 | 0.22, 1.45 | 0.235 | |
| Fante | 0.90 | 0.54, 1.51 | 0.698 | 1.18 | 0.72, 1.94 | 0.510 | |
| Ga Adangme | 1.62 | 1.03, 2.55 | 0.035 | 1.33 | 0.91, 1.95 | 0.141 | |
| others | 0.97 | 0.65, 1.45 | 0.886 | 1.01 | 0.69, 1.49 | 0.958 | |
| Religion | 314 | ||||||
| Christian | — | — | — | — | |||
| Muslim | 1.99 | 1.46, 2.72 | <0.001 | 0.77 | 0.51, 1.16 | 0.213 | |
| Current work status | 314 | ||||||
| fully retired | — | — | — | — | |||
| others | 2.54 | 1.69, 3.83 | <0.001 | 1.35 | 0.87, 2.11 | 0.183 | |
| still working | 1.29 | 0.87, 1.91 | 0.211 | 1.15 | 0.76, 1.73 | 0.502 | |
| unemployed | 3.06 | 2.26, 4.16 | <0.001 | 1.87 | 1.22, 2.87 | 0.004 | |
| Living arrangement | 314 | ||||||
| Lives with others | — | — | — | — | |||
| Lives alone | 0.67 | 0.36, 1.23 | 0.196 | 0.72 | 0.40, 1.29 | 0.266 | |
| Hypertension | 314 | ||||||
| No | — | — | |||||
| Yes | 1.02 | 0.75, 1.39 | 0.905 | ||||
| Diabetes | 314 | ||||||
| No | — | — | |||||
| Yes | 1.03 | 0.75, 1.42 | 0.857 | ||||
| Heart disease | 314 | ||||||
| No | — | — | |||||
| Yes | 0.69 | 0.12, 3.77 | 0.664 | ||||
| Asthma | 314 | ||||||
| No | — | — | |||||
| Yes | 1.19 | 0.64, 2.22 | 0.584 | ||||
| Other comorbidity | 314 | ||||||
| No | — | — | — | — | |||
| Yes | 0.69 | 0.41, 1.14 | 0.146 | 0.89 | 0.54, 1.47 | 0.644 | |
| History of stroke | 314 | ||||||
| No | — | — | |||||
| Yes | 1.25 | 0.77, 2.03 | 0.362 | ||||
| Not sure | 0.50 | 0.14, 1.77 | 0.283 | ||||
| Family history of dementia | 314 | ||||||
| I am not sure | — | — | |||||
| No | 1.32 | 0.72, 2.42 | 0.368 | ||||
| Yes | 1.00 | 0.41, 2.45 | >0.999 | ||||
| Family history of stroke | 314 | ||||||
| I am not sure | — | — | — | — | |||
| No | 0.88 | 0.45, 1.71 | 0.702 | 1.06 | 0.54, 2.07 | 0.870 | |
| Yes | 0.59 | 0.28, 1.22 | 0.154 | 0.68 | 0.33, 1.39 | 0.292 | |
| Abbreviations: CI = Confidence Interval, IRR = Incidence Rate Ratio | |||||||