Publikacje naukowe · Badania intensywne podłużne

Zmienność regulacji emocji w ESM – wskaźniki, w tym Bray–Curtis

SD między strategiami, względne SD, Bray–Curtis z podziałem na przełączanie i zmianę nasilenia, RMSSD, bezwładność, przewidywalność i entropia. Pokazujemy wzory z artykułów, liczymy wszystko w R i wyjaśniamy, dlaczego zmienność to jeszcze nie elastyczność.

Strona główna / Blog / Zmienność regulacji emocji
W skrócie: Zmienność regulacji emocji w ESM mierzy się najczęściej SD między strategiami (w danym pomiarze) i w obrębie strategii (w czasie), ale oba wskaźniki silnie zależą od średniego nasilenia strategii. Bray–Curtis porównuje cały profil strategii w kolejnych pomiarach i dzieli się na wymianę (przełączanie) oraz zagnieżdżenie (zmianę nasilenia). Żaden wskaźnik zmienności nie mierzy elastyczności: do tego potrzebny jest pomiar kontekstu.

O co pytamy, gdy mierzymy zmienność regulacji emocji

W badaniu ESM (inaczej EMA) uczestnik przy każdym sygnale ocenia, w jakim stopniu od poprzedniego pomiaru stosował kilka strategii regulacji emocji, np. ruminację, odwracanie uwagi, przeformułowanie, tłumienie ekspresji i dzielenie się emocjami. Dane mają trzy wymiary: osoba × pomiar × strategia. Ich przygotowanie i modele wielopoziomowe opisujemy w przeglądzie badania dzienniczkowe i EMA – analiza danych. Tu pytamy, jak zamienić profil strategii w liczbę opisującą, jak bardzo regulacja zmienia się w czasie i między strategiami.

Lo i in. (2024) wskazują dwa procesy, które taki wskaźnik powinien wychwytywać: przełączanie (spada jedna strategia, rośnie inna) i zmianę nasilenia (wszystkie strategie rosną lub maleją razem).

Wskaźniki oparte na odchyleniu standardowym

Niech xsti oznacza ocenę strategii s w pomiarze t osoby i, L – liczbę strategii, Ni – liczbę pomiarów osoby. Blanke i in. (2020) liczą średnie nasilenie strategii w pomiarze i odchylenie standardowe między strategiami, a wartość osoby to średnia z pomiarów:

Mti = (1/L) Σs xsti, SDmiędzy, ti = √[ Σs (xsti − Mti)² / (L − 1) ]

Zmienność w obrębie strategii to SD strategii w czasie, uśrednione po strategiach (istnieje tylko na poziomie osoby):

SDw obrębie, si = √[ Σt (xsti − Msi)² / (Ni − 1) ], MSDw obrębie, i = (1/L) Σs SDw obrębie, si

Wang i in. (2021) stosują te same wskaźniki, a dodatkowo SD każdej strategii osobno. Lo i in. (2024) dodają wersję czasową: różnicę SDmiędzy w pomiarach t i t − 1.

Pułapka: zależność od średniej. Na skali ograniczonej z obu stron przy bardzo niskim lub wysokim nasileniu duże SD jest niemożliwe. Blanke i in. (2020) kontrolują więc średnie nasilenie, a Wenzel i in. (2022) wskazują, że taka kontrola niesie współliniowość i nie usuwa nieliniowej zależności. Lo i in. (2024) dodają, że SD ignoruje kolejność pomiarów i to, które strategie były używane.

Względne SD

Wenzel i in. (2022) dzielą SD przez największe SD możliwe przy tej samej średniej, liczbie wartości i granicach skali. Pomysł pochodzi od Mestdagh i in. (2018), którzy pokazali, że miary zmienności zmiennych ograniczonych są uwikłane w średnią.

RSD = SD / SDmaks(M, n, min, maks), 0 ≤ RSD ≤ 1

Przy czterech ocenach 0–6 i średniej 1 maksimum daje układ 0, 0, 0, 4 (SDmaks = 2.00), a przy średniej 3 układ 0, 0, 6, 6 (3.46); nasza funkcja odtwarza oba przykłady z artykułu. RSD jest nieokreślone, gdy średnia leży na granicy skali.

Bray–Curtis: różnica między kolejnymi profilami strategii

Lo i in. (2024) przenieśli do badań nad regulacją miarę z ekologii, gdzie porównuje skład gatunków między próbami. Zamiast gatunków mamy strategie, zamiast prób – kolejne pomiary:

BCt = Σs |xs,t − xs,t−1| / Σs (xs,t + xs,t−1)

Wskaźnik ma wartości od 0 (identyczne profile) do 1. Lo i in. (2024) dzielą go za Baselgą (2013) na dwa składniki, a Chen i in. (2026) podają wzory krok po kroku. Liczysz część wspólną A = Σ min(xs,t, xs,t−1) oraz nadwyżki B = Σ xs,t − A i C = Σ xs,t−1 − A:

BC = (B + C) / (2A + B + C)
wymiana = min(B, C) / [A + min(B, C)]
zagnieżdżenie = |B − C| / (2A + B + C) × A / [A + min(B, C)]

Składniki sumują się do pełnego wskaźnika. Wymiana (replacement) odpowiada przełączaniu, a zagnieżdżenie (nestedness, u Chen i in. endorsement change) – wspólnej zmianie nasilenia (rysunek 1).

Profil pięciu strategii jednej osoby w siedmiu sygnałach dnia i Bray–Curtis względem poprzedniego sygnału: pełne przełączanie z przeformułowania na odwracanie uwagi daje 1.00 (sama wymiana), wspólny wzrost nasilenia w sygnale 6 daje 0.17 (samo zagnieżdżenie)
Rysunek 1. Górny panel: oceny strategii (0–6) w sygnałach jednego dnia. Dolny panel: Bray–Curtis względem poprzedniego sygnału z podziałem na wymianę i zagnieżdżenie. W sygnale 3 osoba przechodzi z przeformułowania na odwracanie uwagi (BC = 1.00, sama wymiana); w sygnale 6 ruminacja i dzielenie się rosną razem (BC = 0.17, samo zagnieżdżenie). Obliczenia: R (dane symulowane).

Praktyczne zasady z artykułów:

  • Pomiar z samymi zerami daje wskaźnik nieokreślony, a po brakującym sygnale wskaźnika nie policzysz (Lo i in., 2024). Autorzy proponują wtedy porównanie ze wszystkimi pomiarami osoby albo imputację; skutki braków omawia wpis o modelu autoregresyjnym i brakach danych.
  • Raportuj pełny wskaźnik, a składniki interpretuj razem, bo zagnieżdżenie zależy matematycznie od wymiany.
  • W symulacjach Lo i in. (2024) pełny wskaźnik nie zależał od liczby strategii ani pomiarów, ale składniki tak: więcej strategii dawało większą wymianę i mniejsze zagnieżdżenie.
  • Przy strategiach ocenianych binarnie Chen i in. (2026) użyli odpowiednika Sørensena; zmiana nasilenia oznacza wtedy zmianę liczby użytych strategii.

Lo i in. (2024) piszą, że mianownik kontroluje średnią. Sprawdzamy to w R: podwojenie wszystkich ocen nie zmienia wskaźnika (0.80), ale dodanie 1 do każdej oceny obniża go do 0.40. Wskaźnik nie zależy od skali, ale zależy od poziomu tła.

Przełączanie i liczba strategii

Przełączanie nie ma w tych artykułach osobnego wzoru – operacjonalizuje je składnik wymiany (Lo i in., 2024; Chen i in., 2026). Żaden z pięciu artykułów nie definiuje też indeksu polirregulacji (jednoczesnego użycia wielu strategii). Najbliżej są entropia Wenzel i in. (2022) i zagnieżdżenie przy danych binarnych. Jeśli liczysz strategie w momencie, zdefiniuj tę miarę w planie analizy.

Pięć dalszych wskaźników dynamiki

Wenzel i in. (2022) przenieśli do badań nad regulacją miary z badań dynamiki afektu, liczone dla każdej strategii lub osoby i uśredniane:

  • Niestabilność – RMSSD = √[ Σt (xt − xt−1)² / (n − 1) ]; w odróżnieniu od SD uwzględnia kolejność pomiarów.
  • Bezwładność – AR: nachylenie z modelu wielopoziomowego, w którym strategia w t zależy od siebie w t − 1 (centrowanej w osobie), z losowym nachyleniem; odpowiednik autokorelacji.
  • Przewidywalność – %DET: odsetek punktów rekurencji (pomiarów o tej samej wartości) tworzących linie ukośne, czyli powtarzające się sekwencje co najmniej dwóch wartości.
  • Różnicowanie – 1 − ICC: ICC zgodności z macierzy pomiary × strategie, ujemne ICC = 0.
  • Różnorodność – entropia: ENT = −Σs ps ln ps, gdzie ps to udział strategii s we wszystkich użyciach (ocena > 0).

W pięciu zbiorach (N = 717) osiem miar tworzyło pięć czynników; średnie nasilenie wiązało się z wyższym, a zmienność między strategiami (RSD) i przewidywalność – z niższym afektem negatywnym. Autorzy podsumowują: korzystna regulacja może być zmienna, ale nie niestabilna, i przewidywalna, ale nie bezwładna.

Porównanie wskaźników

Wskaźniki zmienności regulacji emocji w ESM: co mierzą, czego wymagają, najważniejsze pułapki i źródło
WskaźnikCo uchwytujeWymaganiaPułapkiŹródło
SD między strategiamipriorytet kilku strategii w momencie≥ 2 strategiezależy od średniej; ślepe na kolejnośćBlanke i in. (2020); Wang i in. (2021)
SD w obrębie strategiiwahania strategii w czasiewiele pomiarów; tylko poziom osobyzależy od średniej; nie odróżnia przełączania od nasileniaBlanke i in. (2020); Wang i in. (2021)
RSDjak SD, względem maksimum przy danej średniejznane granice skalinieokreślone na granicy skaliWenzel i in. (2022); Mestdagh i in. (2018)
Bray–Curtiszmiana całego profilu między pomiaramikolejne pomiary; nie same zeranieokreślony po braku; zależny od poziomu tłaLo i in. (2024)
Wymiana / zagnieżdżenieprzełączanie / wspólna zmiana nasileniajak Bray–Curtiszależą od liczby strategii i od siebieLo i in. (2024); Chen i in. (2026)
RMSSDwielkość zmian z pomiaru na pomiarkolejne pomiaryzależy od średniejWenzel i in. (2022)
ARprzenoszenie strategii na kolejny pomiarmodel wielopoziomowynajsłabsza rzetelność w ich danychWenzel i in. (2022)
%DETpowtarzalne sekwencjedługi szereg; promień rekurencjinie mówi, które wzorce się powtarzająWenzel i in. (2022)
1 − ICC / entropianiezależność / równomierność strategiimacierz pomiary × strategiebez wartości ponad inne miary; entropia zależy od średniejWenzel i in. (2022)

Zmienność to nie elastyczność

Blanke i in. (2020) i Wenzel i in. (2022) zakładali, że sytuacje codzienne ciągle się zmieniają, i zaznaczali, że kontekstu nie mierzyli. Wang i in. (2021) przyznają, że ich wskaźniki obejmują też przypadkowe wahania. Chen i in. (2026) sprawdzili to wprost: policzyli Bray–Curtis dla profilu strategii i dla profilu cech sytuacji (np. obowiązki, zagrożenie, kontakt z innymi, kontrola), a w modelu wielopoziomowym wpisali interakcję wymian, centrowanych w osobie:

NAij = β0j + β1j·WERij + β2j·WKij + β3·(WERij × WKij) + εij

WER i WK to wymiana w strategiach i w kontekście; średnie osób weszły na poziomie 2 jako kowarianty. Według prostych nachyleń przełączanie przy stabilnym kontekście (−1 SD) wiązało się z wyższym afektem negatywnym, a w badaniu EMA z wyższym nasileniem objawów; przy zmiennym kontekście nie miało z nimi związku. W badaniu dzienniczkowym efekt przestał być istotny po kontroli afektu z poprzedniego dnia. Zmienność przy stałym kontekście autorzy nazywają chwiejnością (volatility), a stałą regulację w zmiennym kontekście – sztywnością. Wysoki wskaźnik zmienności nie dowodzi więc elastyczności; do tego trzeba mierzyć kontekst.

Przykład w R: pięć strategii, 120 osób

Symulujemy 120 osób, 8 dni po 7 sygnałów, pięć strategii (0–6) i afekt negatywny (0–6). Po usunięciu ok. 15% sygnałów zostało 5752 pomiarów. Każda osoba ma własną skłonność do zmiany strategii głównej; afekt negatywny rośnie z nasileniem regulacji i maleje z tą skłonnością. Bray–Curtis liczymy dla sąsiednich sygnałów tego samego dnia (4218 par). Wyniki ręczne i z vegan::vegdist(method = "bray") są identyczne, a składniki zgadzają się z betapart. Średnio BC = 0.35, wymiana = 0.25, zagnieżdżenie = 0.10.

Wybrane wskaźniki na poziomie osoby: średnia, SD, korelacja ze średnim nasileniem strategii i ze skłonnością do zmiany strategii zadaną w symulacji
Wskaźnik osobyM (SD)r ze średnim nasileniemr ze skłonnością do zmiany
SD między strategiami1.63 (0.23).74−.03
RSD między strategiami0.79 (0.06)−.31−.08
AR0.50 (0.08).11−.67
Bray–Curtis0.35 (0.08)−.27.69
Wymiana0.25 (0.09)−.09.73

W tej symulacji SD między strategiami mierzy głównie średnie nasilenie, a skłonność do zmiany najlepiej odtwarza wymiana (rysunek 2). Różnicowanie (1 − ICC) było niemal stałe (M = 1.00), bo przy jednej dominującej strategii ICC wychodziło ujemne – to własność naszych danych, nie reguła.

Trzy wykresy rozrzutu dla 120 osób: SD między strategiami silnie rośnie ze średnim nasileniem strategii (r = .74), względne SD (r = −.31) i średni Bray–Curtis (r = −.27) zależą od niego słabiej
Rysunek 2. Wskaźniki zmienności osoby a średnie nasilenie jej strategii. Surowe SD w dużej mierze powtarza średnią; względne SD i Bray–Curtis zależą od niej słabiej, ale nie są od niej wolne. Obliczenia: R (dane symulowane).

Bray–Curtis wpisujemy do modelu wielopoziomowego, jak Lo i in. (2024), z podziałem na składnik wewnątrzosobowy i międzyosobowy (zob. centrowanie zmiennych i model wielopoziomowy krok po kroku); tak samo kontrolujemy średnie nasilenie. W momentach z wyższym niż zwykle BC afekt negatywny był niższy: b = −0.16, 95% CI [−0.24, −0.09], t(4096) = −4.36, p < .001. Między osobami różnica 0.1 w średnim BC wiązała się z afektem niższym o 0.27 pkt: b = −2.68, 95% CI [−3.91, −1.46], t(117) = −4.30, p < .001. Po rozbiciu na składniki istotna była wymiana na obu poziomach (p < .001), a wewnątrzosobowe zagnieżdżenie nie (p = .072). Model nie zawiera kontekstu, więc nic nie mówi o elastyczności.

Jak opisać wskaźnik w artykule

Podaj wzór, sposób tworzenia par (sąsiednie sygnały, bez nocy i braków), liczbę wartości nieokreślonych, kontrolę średniego nasilenia i rozdzielenie poziomów:

Zmienność regulacji emocji mierzyliśmy niepodobieństwem Bray–Curtis między profilami pięciu strategii w kolejnych sygnałach tego samego dnia (Lo i in., 2024), z podziałem na składnik wymiany i zagnieżdżenia. Pary obejmujące pominięty sygnał wyłączono; wskaźnik policzono dla 4218 par u 120 osób. Bray–Curtis i średnie nasilenie strategii rozdzielono na składnik wewnątrzosobowy (centrowanie względem średniej osoby) i międzyosobowy (średnia osoby centrowana względem średniej ogólnej). W modelu wielopoziomowym z losowym wyrazem wolnym wyższe od przeciętnego Bray–Curtis wiązało się z niższym afektem negatywnym w danym momencie, b = −0.16, 95% CI [−0.24, −0.09], p < .001, a osoby o wyższym średnim Bray–Curtis zgłaszały niższy afekt negatywny, b = −2.68, 95% CI [−3.91, −1.46], p < .001. Związek dotyczył głównie składnika wymiany. Ponieważ nie mierzyliśmy kontekstu, wyniku nie interpretujemy jako dowodu elastyczności regulacji (Chen i in., 2026).

Jeśli planujesz badanie ESM o regulacji emocji albo odpowiadasz recenzentowi w sprawie wskaźnika, przejrzymy plan analizy w ramach wsparcia statystycznego dla badaczy. O planowaniu publikacji piszemy w przewodniku doktorat i publikacje.

Przykład reprodukowalny

Przykład w R

Trzy przepisy uruchamiane po kolei w jednej sesji. Pierwszy tworzy dane i liczy Bray–Curtis, drugi pozostałe wskaźniki, trzeci model wielopoziomowy. Potrzebne pakiety: vegan, betapart, psych, lme4 i lmerTest.

1. Dane i Bray–Curtis: ręcznie, vegan i betapart

Dane wejściowe: symulacja 120 osób × 8 dni × 7 sygnałów, pięć strategii na skali 0–6 i afekt negatywny (set.seed(2024)); ok. 15% sygnałów pominiętych. Plik esm-strategie-dane.csv możesz pobrać tutaj.

Co odczytać: liczbę pomiarów i par kolejnych sygnałów, różnice między obliczeniami ręcznymi a vegan i betapart (0 = zgodność), profil jednej osoby z rysunku 1 i test skali: podwojenie ocen a dodanie stałej.

R
# Dane symulowane: badanie ESM, 120 osób × 8 dni × 7 sygnałów, 5 strategii regulacji emocji (0–6)
# oraz afekt negatywny (0–6). Część sygnałów pominięta (braki losowe).
set.seed(2024)
N <- 120; DNI <- 8; SYG <- 7
strategie <- c("ruminacja", "odwracanie", "przeformulowanie", "tlumienie", "dzielenie")
S <- length(strategie)

osoby <- data.frame(id = 1:N,
                    poziom = pmin(pmax(rnorm(N, 1.5, 0.5), 0.3), 3.5),       # nasilenie strategii głównej
                    p_zmiany = plogis(rnorm(N, qlogis(.35), 0.8)),         # skłonność do zmiany strategii głównej
                    u = rnorm(N, 0, 0.5))                                  # stały składnik afektu negatywnego
wiersze <- vector("list", N)
for (i in 1:N) {
  pref <- rgamma(S, 1)                                                     # preferencje strategii danej osoby
  d <- expand.grid(sygnal = 1:SYG, dzien = 1:DNI)[, 2:1]
  X <- matrix(NA_real_, nrow(d), S, dimnames = list(NULL, strategie))
  glowna <- integer(nrow(d)); zmiana <- logical(nrow(d))
  for (t in seq_len(nrow(d))) {
    if (d$sygnal[t] == 1) przes <- rnorm(1, 0, 0.5)                        # wahania dzienne intensywności
    zmiana[t] <- d$sygnal[t] > 1 && runif(1) < osoby$p_zmiany[i]
    glowna[t] <- if (d$sygnal[t] == 1 || zmiana[t]) sample(S, 1, prob = pref) else glowna[t - 1]
    x <- 0.3 + przes + rnorm(S, 0, 0.4)                                      # strategie poboczne
    x[glowna[t]] <- osoby$poziom[i] + 2.5 + przes + rnorm(1, 0, 0.8)        # strategia główna
    X[t, ] <- pmin(pmax(round(x), 0), 6)
  }
  na <- 1.2 + 0.45 * rowMeans(X) - 1.6 * (osoby$p_zmiany[i] - .38) - 0.15 * zmiana + osoby$u[i] + rnorm(nrow(d), 0, 0.7)
  wiersze[[i]] <- data.frame(id = i, d, X, afekt_neg = round(pmin(pmax(na, 0), 6), 2))
}
esm <- do.call(rbind, wiersze)
esm <- esm[runif(nrow(esm)) > .15, ]                                       # ok. 15% pominiętych sygnałów
write.csv(esm, "esm-strategie-dane.csv", row.names = FALSE)
c(osoby = length(unique(esm$id)), pomiary = nrow(esm), sredn_na_osobe = round(nrow(esm) / N, 1))

# Bray–Curtis ręcznie: suma |x_j − x_k| / suma (x_j + x_k); podział Baselgi (2013) na składnik wymiany
# (replacement, przełączanie) i zagnieżdżenia (nestedness, zmiana nasilenia).
bray_curtis <- function(xk, xj) {                                          # xk = pomiar t − 1, xj = pomiar t
  A <- sum(pmin(xj, xk)); B <- sum(xj) - A; C <- sum(xk) - A
  if (A + B + C == 0) return(c(bc = NA, wymiana = NA, zagniezdzenie = NA))  # same zera: wskaźnik nieokreślony
  bc <- sum(abs(xj - xk)) / sum(xj + xk)
  if (A + min(B, C) == 0) return(c(bc = bc, wymiana = 0, zagniezdzenie = bc))  # jeden profil same zera: tylko zmiana nasilenia
  c(bc = bc, wymiana = min(B, C) / (A + min(B, C)), zagniezdzenie = abs(B - C) / (2 * A + B + C) * A / (A + min(B, C)))
}

# Kolejne pary pomiarów: tylko sąsiednie sygnały tego samego dnia (nie przez brak ani przez noc)
esm <- esm[order(esm$id, esm$dzien, esm$sygnal), ]
pop <- c(NA, head(seq_len(nrow(esm)), -1))
para_ok <- c(FALSE, diff(esm$sygnal) == 1 & diff(esm$dzien) == 0 & diff(esm$id) == 0)
Xm <- as.matrix(esm[, strategie])
bc <- t(sapply(seq_len(nrow(esm)), function(r)
  if (para_ok[r]) bray_curtis(Xm[pop[r], ], Xm[r, ]) else c(bc = NA, wymiana = NA, zagniezdzenie = NA)))
esm <- cbind(esm, bc)
c(pary_kolejne = sum(para_ok), bc_nieokreslony_same_zera = sum(para_ok & is.na(esm$bc)))

# Kontrola 1: ten sam wynik z vegan::vegdist(method = "bray") dla wszystkich par
bc_vegan <- sapply(which(para_ok), function(r)                           # ostrzeżenia vegan dotyczą profili z samych zer
  suppressWarnings(as.numeric(vegan::vegdist(Xm[c(pop[r], r), ], method = "bray"))))
round(c(maks_roznica_vegan = max(abs(bc_vegan - esm$bc[para_ok]), na.rm = TRUE)), 12)
# Kontrola 2: składniki z betapart::beta.pair.abund (bray.bal = wymiana, bray.gra = zagnieżdżenie), 200 par
prob <- head(which(para_ok & !is.na(esm$bc) & rowSums(Xm) > 0 & c(TRUE, rowSums(Xm)[-nrow(Xm)] > 0)), 200)
bp <- t(sapply(prob, function(r) unlist(betapart::beta.pair.abund(Xm[c(pop[r], r), ], index.family = "bray"))))
round(c(maks_roznica_wymiana = max(abs(bp[, "beta.bray.bal"] - esm$wymiana[prob])),
        maks_roznica_zagniezdzenie = max(abs(bp[, "beta.bray.gra"] - esm$zagniezdzenie[prob])),
        maks_suma_skladnikow_minus_bc = max(abs(esm$wymiana[prob] + esm$zagniezdzenie[prob] - esm$bc[prob]))), 12)

# Przykład: osoba 4, dzień 1 – profil strategii i Bray–Curtis między kolejnymi sygnałami
print(esm[esm$id == 4 & esm$dzien == 1, c("sygnal", strategie, "bc", "wymiana", "zagniezdzenie")], digits = 2, row.names = FALSE)

# Średnie wskaźniki dla momentów, w których BC jest określony
round(colMeans(esm[, c("bc", "wymiana", "zagniezdzenie")], na.rm = TRUE), 3)

# Bray–Curtis a poziom nasilenia: podwojenie wszystkich ocen nie zmienia wskaźnika, dodanie stałej – zmienia
x1 <- c(4, 0, 1, 0, 0); x2 <- c(0, 4, 1, 0, 0)                            # pełne przełączenie strategii głównej
round(c(oryginal = bray_curtis(x1, x2)[["bc"]], razy_2 = bray_curtis(2 * x1, 2 * x2)[["bc"]],
        plus_1 = bray_curtis(x1 + 1, x2 + 1)[["bc"]]), 3)
Wynik w R
         osoby        pomiary sredn_na_osobe 
         120.0         5752.0           47.9 
             pary_kolejne bc_nieokreslony_same_zera 
                     4218                         0 
maks_roznica_vegan 
                 0 
         maks_roznica_wymiana    maks_roznica_zagniezdzenie maks_suma_skladnikow_minus_bc 
                            0                             0                             0 
 sygnal ruminacja odwracanie przeformulowanie tlumienie dzielenie   bc wymiana zagniezdzenie
      1         0          0                4         1         0   NA      NA            NA
      2         0          0                5         0         0 0.20    0.20         0.000
      3         1          4                0         1         1 1.00    1.00         0.000
      4         1          4                1         0         1 0.14    0.14         0.000
      5         4          0                1         0         0 0.67    0.60         0.067
      6         5          0                1         0         1 0.17    0.00         0.167
      7         4          1                0         1         0 0.38    0.33         0.051
           bc       wymiana zagniezdzenie 
        0.349         0.251         0.098 
oryginal   razy_2   plus_1 
     0.8      0.8      0.4 

2. Pozostałe wskaźniki na poziomie osoby

Dane wejściowe: obiekty z przepisu 1 (uruchom go najpierw w tej samej sesji).

Co odczytać: kontrolę SDmaks (2.00 i 3.46), przykład %DET, zgodność ICC z psych::ICC, a w tabeli: średnią i SD każdego wskaźnika, jego korelację ze średnim nasileniem strategii i ze skłonnością do zmiany strategii zadaną w symulacji.

R
# Wskaźniki zmienności na poziomie momentu i osoby (kontynuacja przepisu 1: obiekty esm, strategie, para_ok, pop)
MIN <- 0; MAX <- 6

# Największe możliwe SD przy danej średniej, liczbie wartości i granicach skali (idea Mestdagh i in., 2018):
# k wartości na maksimum, jedna pośrednia, reszta na minimum
sd_maks <- function(m, n, a = MIN, b = MAX) {
  if (is.na(m) || m <= a || m >= b) return(NA)
  k <- floor(n * (m - a) / (b - a)); r <- n * m - k * b - (n - k - 1) * a
  sd(c(rep(b, k), r, rep(a, n - k - 1)))
}
c(sd_maks_M1 = sd_maks(1, 4), sd_maks_M3 = sd_maks(3, 4))                  # 4 wartości na skali 0–6
rsd <- function(x) { x <- x[!is.na(x)]; s <- sd_maks(mean(x), length(x)); if (is.na(s)) NA else sd(x) / s }

# Poziom momentu: średnie nasilenie, SD między strategiami i jego względna wersja (RSD)
esm$srednia_t <- rowMeans(esm[, strategie])
esm$sd_miedzy_t <- apply(esm[, strategie], 1, sd)
esm$rsd_miedzy_t <- apply(esm[, strategie], 1, rsd)
esm$sd_miedzy_roznica <- ifelse(para_ok, esm$sd_miedzy_t - esm$sd_miedzy_t[pop], NA)   # kolejna różnica SD

# %DET (przewidywalność): punkty rekurencji (te same wartości, promień 0) w liniach ukośnych ≥ 2 / wszystkie punkty
det_proc <- function(x) {
  x <- x[!is.na(x)]
  if (length(unique(x)) < 2) return(NA)
  R <- outer(x, x, "==") & lower.tri(diag(length(x)))
  if (sum(R) == 0) return(NA)
  w_linii <- R & (rbind(FALSE, cbind(FALSE, R[-nrow(R), -ncol(R)])) | rbind(cbind(R[-1, -1], FALSE), FALSE))
  sum(w_linii) / sum(R)
}
det_proc(c(1, 2, 3, 1, 2, 4, 3))                                           # 2 z 3 punktów rekurencji w linii ukośnej

# ICC(3,1) zgodności: wiersze = sygnały, kolumny = strategie; różnicowanie = 1 − ICC (ujemne ICC → 0)
icc31 <- function(M) {
  M <- M[complete.cases(M), , drop = FALSE]; n <- nrow(M); k <- ncol(M)
  sr <- k * sum((rowMeans(M) - mean(M))^2) / (n - 1)
  se <- sum((M - outer(rowMeans(M), colMeans(M), "+") + mean(M))^2) / ((n - 1) * (k - 1))
  (sr - se) / (sr + (k - 1) * se)
}
entropia <- function(M) { p <- colSums(M > 0) / sum(M > 0); p <- p[p > 0]; -sum(p * log(p)) }
rmssd <- function(x, ok) sqrt(mean((x[ok] - x[which(ok) - 1])^2))

osoba <- do.call(rbind, lapply(split(esm, esm$id), function(d) {
  M <- as.matrix(d[, strategie]); ok <- c(FALSE, diff(d$sygnal) == 1 & diff(d$dzien) == 0)
  data.frame(id = d$id[1],
             srednia = mean(M),
             sd_w_strategii = mean(apply(M, 2, sd)),
             rsd_w_strategii = mean(apply(M, 2, rsd), na.rm = TRUE),
             sd_miedzy = mean(d$sd_miedzy_t),
             rsd_miedzy = mean(d$rsd_miedzy_t, na.rm = TRUE),
             rmssd = mean(apply(M, 2, rmssd, ok = ok)),
             det = mean(apply(M, 2, det_proc), na.rm = TRUE),
             roznicowanie = 1 - max(icc31(M), 0),
             entropia = entropia(M),
             bc = mean(d$bc, na.rm = TRUE),
             wymiana = mean(d$wymiana, na.rm = TRUE),
             zagniezdzenie = mean(d$zagniezdzenie, na.rm = TRUE),
             afekt_neg = mean(d$afekt_neg))
}))
# Kontrola ICC z psych::ICC dla osoby 1
M1 <- as.matrix(esm[esm$id == 1, strategie])
round(c(icc_wlasne = icc31(M1), icc_psych = psych::ICC(M1, lmer = FALSE)$results["Single_fixed_raters", "ICC"]), 4)

# Bezwładność (AR): dla każdej strategii model wielopoziomowy x_t ~ x_(t−1) (centrowane w osobie),
# losowe nachylenie; nachylenia osób uśrednione po strategiach
ar_osob <- sapply(strategie, function(s) {
  d <- data.frame(id = esm$id, y = esm[[s]], lag = ifelse(para_ok, esm[[s]][pop], NA))
  d$lag_c <- d$lag - ave(d$lag, d$id, FUN = function(z) mean(z, na.rm = TRUE))
  m <- lme4::lmer(y ~ lag_c + (lag_c | id), data = d, control = lme4::lmerControl(calc.derivs = FALSE))
  coef(m)$id[as.character(osoba$id), "lag_c"]
})
osoba$ar <- rowMeans(ar_osob)

wsk <- c("sd_w_strategii", "rsd_w_strategii", "sd_miedzy", "rsd_miedzy", "rmssd", "ar", "det",
         "roznicowanie", "entropia", "bc", "wymiana", "zagniezdzenie")
opis <- data.frame(M = colMeans(osoba[, wsk]), SD = apply(osoba[, wsk], 2, sd),
                   r_ze_srednia = cor(osoba[, wsk], osoba$srednia)[, 1],
                   r_z_p_zmiany = cor(osoba[, wsk], osoby$p_zmiany)[, 1])
round(opis, 2)
Wynik w R
sd_maks_M1 sd_maks_M3 
  2.000000   3.464102 
[1] 0.6666667
icc_wlasne  icc_psych 
   -0.0981    -0.0981 
                   M   SD r_ze_srednia r_z_p_zmiany
sd_w_strategii  1.32 0.20         0.66         0.01
rsd_w_strategii 0.59 0.06         0.24        -0.05
sd_miedzy       1.63 0.23         0.74        -0.03
rsd_miedzy      0.79 0.06        -0.31        -0.08
rmssd           1.25 0.27         0.44         0.59
ar              0.50 0.08         0.11        -0.67
det             0.67 0.07        -0.67        -0.39
roznicowanie    1.00 0.02         0.12        -0.12
entropia        1.57 0.04         0.52         0.13
bc              0.35 0.08        -0.27         0.69
wymiana         0.25 0.09        -0.09         0.73
zagniezdzenie   0.10 0.03        -0.50        -0.34

3. Bray–Curtis jako predyktor afektu negatywnego

Dane wejściowe: pomiary z określonym Bray–Curtis (4218) z przepisów 1–2.

Co odczytać: efekty wewnątrzosobowe (_w) i międzyosobowe (_b) Bray–Curtis i średniego nasilenia z t, df Satterthwaite’a i p, 95% CI dla Bray–Curtis oraz model ze składnikami wymiany i zagnieżdżenia.

R
# Bray–Curtis jako predyktor afektu negatywnego: składnik wewnątrzosobowy (centrowanie w osobie)
# i międzyosobowy (średnia osoby, centrowana względem średniej ogólnej), kontrola średniego nasilenia regulacji
suppressPackageStartupMessages(library(lmerTest))
d <- esm[!is.na(esm$bc), ]
for (v in c("bc", "srednia_t")) {
  d[[paste0(v, "_b")]] <- ave(d[[v]], d$id)                               # średnia osoby
  d[[paste0(v, "_w")]] <- d[[v]] - d[[paste0(v, "_b")]]                  # odchylenie od własnej średniej
  d[[paste0(v, "_b")]] <- d[[paste0(v, "_b")]] - mean(d[[paste0(v, "_b")]])
}
m <- lmer(afekt_neg ~ bc_w + bc_b + srednia_t_w + srednia_t_b + (1 | id), data = d, REML = TRUE)
c(pomiary = nrow(d), osoby = length(unique(d$id)))
round(summary(m)$coefficients, 3)
round(confint(m, parm = c("bc_w", "bc_b"), method = "Wald"), 3)

# Ten sam model z rozbiciem na wymianę (przełączanie) i zagnieżdżenie (zmianę nasilenia)
for (v in c("wymiana", "zagniezdzenie")) {
  d[[paste0(v, "_b")]] <- ave(d[[v]], d$id); d[[paste0(v, "_w")]] <- d[[v]] - d[[paste0(v, "_b")]]
  d[[paste0(v, "_b")]] <- d[[paste0(v, "_b")]] - mean(d[[paste0(v, "_b")]])
}
m2 <- lmer(afekt_neg ~ wymiana_w + wymiana_b + zagniezdzenie_w + zagniezdzenie_b + srednia_t_w + srednia_t_b +
             (1 | id), data = d, REML = TRUE)
round(summary(m2)$coefficients[2:5, ], 3)
Wynik w R
pomiary   osoby 
   4218     120 
            Estimate Std. Error       df t value Pr(>|t|)
(Intercept)    1.692      0.049  117.168  34.471     0.00
bc_w          -0.164      0.038 4096.174  -4.359     0.00
bc_b          -2.683      0.623  117.461  -4.304     0.00
srednia_t_w    0.426      0.024 4096.174  17.435     0.00
srednia_t_b    0.149      0.268  117.239   0.555     0.58
      2.5 % 97.5 %
bc_w -0.237 -0.090
bc_b -3.905 -1.461
                Estimate Std. Error       df t value Pr(>|t|)
wymiana_w         -0.167      0.038 4095.179  -4.353    0.000
wymiana_b         -2.926      0.663  116.449  -4.412    0.000
zagniezdzenie_w   -0.208      0.115 4095.179  -1.799    0.072
zagniezdzenie_b   -5.257      2.490  116.254  -2.112    0.037

Bibliografia oprogramowania

Wyniki na tej stronie pochodzą z uruchomienia pokazanego kodu w R 4.5.3 (pakiety vegan, betapart, psych, lme4 i lmerTest); rysunki przygotowano w pakietach ggplot2 i patchwork.

  1. R: R Core Team. (2026). R: A language and environment for statistical computing (Version 4.5.3) [Computer software]. R Foundation for Statistical Computing. https://www.R-project.org/
  2. vegan (wersja 2.7-3): Oksanen, J., Simpson, G., Blanchet, F., Kindt, R., Legendre, P., Minchin, P., O’Hara, R., Solymos, P., Stevens, M., Szoecs, E., Wagner, H., Barbour, M., Bedward, M., Bolker, B., Borcard, D., Borman, T., Carvalho, G., Chirico, M., De Caceres, M., … Weedon, J. (2026). vegan: Community ecology package [R package]. https://doi.org/10.32614/CRAN.package.vegan
  3. betapart (wersja 1.6.1): Baselga, A., Orme, D., Villeger, S., De Bortoli, J., Leprieur, F., Logez, M., Martinez-Santalla, S., Martin-Devasa, R., Gomez-Rodriguez, C., & Crujeiras, R. (2025). betapart: Partitioning beta diversity into turnover and nestedness components [R package]. https://doi.org/10.32614/CRAN.package.betapart
  4. psych (wersja 2.6.5): Revelle, W. (2026). psych: Procedures for psychological, psychometric, and personality research [R package]. Northwestern University. https://CRAN.R-project.org/package=psych
  5. lme4 (wersja 2.0.1): Bates, D., Mächler, M., Bolker, B., & Walker, S. (2015). Fitting linear mixed-effects models using lme4. Journal of Statistical Software, 67(1), 1–48. https://doi.org/10.18637/jss.v067.i01
  6. lmerTest (wersja 3.2.1): Kuznetsova, A., Brockhoff, P. B., & Christensen, R. H. B. (2017). lmerTest package: Tests in linear mixed effects models. Journal of Statistical Software, 82(13), 1–26. https://doi.org/10.18637/jss.v082.i13
  7. ggplot2 (wersja 4.0.2): Wickham, H. (2016). ggplot2: Elegant graphics for data analysis. Springer. https://ggplot2.tidyverse.org
  8. patchwork (wersja 1.3.2): Pedersen, T. L. (2025). patchwork: The composer of plots [R package]. https://doi.org/10.32614/CRAN.package.patchwork

Najczęstsze błędy

Najczęstsze pytania

Jak policzyć Bray–Curtis dla danych ESM w R?

Dla każdej pary sąsiednich sygnałów tej samej osoby podziel sumę bezwzględnych różnic ocen strategii przez sumę wszystkich ocen z obu sygnałów. To samo daje vegan::vegdist(rbind(x_poprzedni, x_obecny), method = "bray"). Pomiń pary obejmujące brakujący sygnał lub noc, a pomiary z samymi zerami oznacz jako nieokreślone.

Czym różni się wymiana od zagnieżdżenia w Bray–Curtis?

Wymiana (replacement) mierzy zastąpienie jednych strategii innymi, czyli przełączanie. Zagnieżdżenie (nestedness) mierzy wspólny wzrost lub spadek nasilenia wszystkich strategii. Oba składniki sumują się do pełnego wskaźnika; Lo i in. (2024) zalecają zawsze raportować pełny wskaźnik i interpretować składniki razem.

Dlaczego SD między strategiami trzeba kontrolować średnią?

Na skali ograniczonej z obu stron największe możliwe SD zależy od średniej, więc osoby z bardzo niskim lub wysokim nasileniem strategii nie mogą mieć dużej zmienności. W naszej symulacji SD między strategiami korelowało ze średnim nasileniem na poziomie r = .74. Kontroluj średnią w modelu albo użyj względnego SD (Mestdagh i in., 2018).

Czy większa zmienność regulacji emocji oznacza elastyczność?

Nie. Chen i in. (2026) pokazali, że przełączanie strategii przy stabilnym kontekście wiązało się z wyższym afektem negatywnym lub nasileniem objawów, a przy zmiennym kontekście nie miało z nimi związku. Elastyczność to dopasowanie zmian regulacji do zmian sytuacji, więc wymaga pomiaru kontekstu.

Który wskaźnik zmienności regulacji emocji wybrać do artykułu?

Wybierz go na podstawie pytania. Bray–Curtis z podziałem na składniki odpowiada na pytanie o przełączanie i zmianę nasilenia między pomiarami, względne SD – o priorytet strategii przy kontroli średniej, a RMSSD, AR i %DET – o dynamikę w czasie. Podaj wzór, sposób tworzenia par pomiarów i kontrolę średniego nasilenia.

Powiązane hasła

Przeczytaj też

Analizujesz regulację emocji w danych ESM?

Pomożemy dobrać wskaźnik zmienności do pytania badawczego, policzyć go poprawnie przy brakach sygnałów, rozdzielić poziomy w modelu wielopoziomowym i opisać wyniki tak, żebyś mógł(a) je samodzielnie obronić przed recenzentem.

Oferta dla badaczyPorozmawiaj o projekcie

Bibliografia i dalsza literatura naukowa (APA 7)

  1. Baselga, A. (2013). Separating the two components of abundance-based dissimilarity: Balanced changes in abundance vs. abundance gradients. Methods in Ecology and Evolution, 4(6), 552–557. https://doi.org/10.1111/2041-210x.12029 ● Otwarty dostęp
  2. Blanke, E. S., Brose, A., Kalokerinos, E. K., Erbas, Y., Riediger, M., & Kuppens, P. (2020). Mix it to fix it: Emotion regulation variability in daily life. Emotion, 20(3), 473–485. https://doi.org/10.1037/emo0000566 ● Otwarty dostęp: pełny tekst
  3. Chen, M. S., Bi, K., Deng, W., Zhu, Y., & Joormann, J. (2026). Variability is not flexibility: Emotion regulation switching predicts increased momentary distress when context is stable. Journal of Psychopathology and Clinical Science, 135(7), 994–1006. https://doi.org/10.1037/abn0001108
  4. Lo, T. T., Van Lissa, C. J., Verhagen, M., Hoemann, K., Erbaş, Y., & Maciejewski, D. F. (2024). A theory-informed emotion regulation variability index: Bray–Curtis dissimilarity. Emotion, 24(5), 1273–1285. https://doi.org/10.1037/emo0001344 ● Otwarty dostęp: pełny tekst
  5. Mestdagh, M., Pe, M., Pestman, W., Verdonck, S., Kuppens, P., & Tuerlinckx, F. (2018). Sidelining the mean: The relative variability index as a generic mean-corrected variability measure for bounded variables. Psychological Methods, 23(4), 690–707. https://doi.org/10.1037/met0000153
  6. Wang, X., Blain, S. D., Meng, J., Liu, Y., & Qiu, J. (2021). Variability in emotion regulation strategy use is negatively associated with depressive symptoms. Cognition and Emotion, 35(2), 324–340. https://doi.org/10.1080/02699931.2020.1840337
  7. Wenzel, M., Blanke, E. S., Rowland, Z., & Kubiak, T. (2022). Emotion regulation dynamics in daily life: Adaptive strategy use may be variable without being unstable and predictable without being autoregressive. Emotion, 22(7), 1487–1504. https://doi.org/10.1037/emo0000967

Cytowania BibTeX

@article{baselga2013separating, author={Baselga, Andrés}, title={{Separating the two components of abundance-based dissimilarity: Balanced changes in abundance vs. abundance gradients}}, journal={Methods in Ecology and Evolution}, year={2013}, volume={4}, number={6}, pages={552--557}, doi={10.1111/2041-210x.12029}}
@article{blanke2020mix, author={Blanke, Elisabeth S. and Brose, Annette and Kalokerinos, Elise K. and Erbas, Yasemin and Riediger, Michaela and Kuppens, Peter}, title={{Mix it to fix it: Emotion regulation variability in daily life}}, journal={Emotion}, year={2020}, volume={20}, number={3}, pages={473--485}, doi={10.1037/emo0000566}}
@article{chen2026variability, author={Chen, Mark Shuquan and Bi, Kaiwen and Deng, Wisteria and Zhu, Yutong and Joormann, Jutta}, title={{Variability is not flexibility: Emotion regulation switching predicts increased momentary distress when context is stable}}, journal={Journal of Psychopathology and Clinical Science}, year={2026}, volume={135}, number={7}, pages={994--1006}, doi={10.1037/abn0001108}}
@article{lo2024theory, author={Lo, Tak Tsun and Van Lissa, Caspar J. and Verhagen, Maaike and Hoemann, Katie and Erbaş, Yasemin and Maciejewski, Dominique F.}, title={{A theory-informed emotion regulation variability index: Bray–Curtis dissimilarity}}, journal={Emotion}, year={2024}, volume={24}, number={5}, pages={1273--1285}, doi={10.1037/emo0001344}}
@article{mestdagh2018sidelining, author={Mestdagh, Merijn and Pe, Madeline and Pestman, Wiebe and Verdonck, Stijn and Kuppens, Peter and Tuerlinckx, Francis}, title={{Sidelining the mean: The relative variability index as a generic mean-corrected variability measure for bounded variables}}, journal={Psychological Methods}, year={2018}, volume={23}, number={4}, pages={690--707}, doi={10.1037/met0000153}}
@article{wang2021variability, author={Wang, Xiaoqin and Blain, Scott D. and Meng, Jie and Liu, Yuan and Qiu, Jiang}, title={{Variability in emotion regulation strategy use is negatively associated with depressive symptoms}}, journal={Cognition and Emotion}, year={2021}, volume={35}, number={2}, pages={324--340}, doi={10.1080/02699931.2020.1840337}}
@article{wenzel2022emotion, author={Wenzel, Mario and Blanke, Elisabeth S. and Rowland, Zarah and Kubiak, Thomas}, title={{Emotion regulation dynamics in daily life: Adaptive strategy use may be variable without being unstable and predictable without being autoregressive}}, journal={Emotion}, year={2022}, volume={22}, number={7}, pages={1487--1504}, doi={10.1037/emo0000967}}
R