Når man bygger statistiske modeller, spesielt i kontekster som psykologi eller lingvistikk, er det avgjørende å vurdere hvor godt modellen forutsier nye data. Kryssvalidering (CV) er en metodikk som gjør nettopp dette, og gir et mål for modellens generaliseringsevne. I denne sammenhengen vil vi fokusere på teknikker som Leave-One-Out Cross-Validation (LOO-CV) og K-fold Cross-Validation (K-fold-CV), implementert i verktøyene Stan og loo-pakken. Dette er to teknikker som gir innsikt i modellens prediktive nøyaktighet, og kan bidra til å avgjøre hvilken modell som er best når man sammenligner alternativer.

Leave-One-Out Cross-Validation (LOO-CV) i Stan

LOO-CV er en populær teknikk hvor hver observasjon i datasettet holdes ute én om gangen for å validere modellen. Dette gir et mål på hvor godt modellen kan forutsi de utelatte observasjonene. Et viktig aspekt ved LOO-CV er bruken av PSIS-LOO (Pareto Smoothed Importance Sampling), som estimerer log-likelihood for de utelatte datapunktene på en effektiv måte.

I eksempelet nedenfor, hvor vi bruker Stan for å fitte en modell og loo-pakken for å evaluere den, kan vi observere hvordan modellen presterer basert på log-likelihood-estimatene. For både den alternative modellen (fit_pupil_int_ll) og den null-modellen (fit_pupil_int_null_ll), viser resultatene at vi ikke kan avgjøre hvilken modell som har bedre prediktiv nøyaktighet utelukkende ved hjelp av PSIS-LOO.

r
loo_int <- loo(fit_pupil_int_ll)
loo_null <- loo(fit_pupil_int_null_ll) loo_compare(loo_int, loo_null)

Resultatene fra LOO-cv viser at begge modellene har relativt sammenlignbare elpd (expected log pointwise predictive density) verdier, og ingen av modellene skiller seg betydelig ut. Dette kan tyde på at datamengden ikke er stor nok, eller at effekten som prøves å påvises er liten.

K-fold Cross-Validation i Stan

For K-fold-CV, som deler datasettet inn i K separate fold, er prosessen litt annerledes. Hver fold holdes ute én om gangen, og modellen trenes på de resterende foldene. Deretter evalueres modellen på den holdte folden, og dette gjentas for hver fold. Denne tilnærmingen gir et mål på modellens generaliseringsevne over flere delsett av dataene.

I et typisk oppsett for K-fold-CV i Stan, som vist nedenfor, kan man splitte dataene i 10 fold, trene modellen på 9 fold, og deretter evaluere på den holdte folden. Prosessen innebærer å bruke funksjonene sampling() for å tilpasse modellen, og gqs() for å generere kvantiteter som brukes til å beregne log-likelihood for de holdte foldene.

r
df_pupil$fold <- kfold_split_random(K = 10, N = nrow(df_pupil))
# deretter kjøres sampling og evaluering for hver fold

Etter at log-likelihood for alle foldene er beregnet, kan vi bruke funksjonen elpd() for å få et samlet mål for modellens prediktive nøyaktighet. Som for LOO-CV kan resultatene være vanskelig å tolke i tilfeller hvor modellene er svært like. I eksempelet med K-fold-CV, er forskjellen i elpd mellom de alternative og null-modellene igjen minimal.

r
elpd_pupil_kfold <- elpd(log_pd_kfold)
elpd_pupil_null_kfold <- elpd(log_pd_null_kfold) loo_compare(elpd_pupil_kfold, elpd_pupil_null_kfold)

Igjen ser vi at K-fold-CV, på tross av grundig testing, ikke gir entydige resultater. Dette kan skyldes en rekke faktorer, inkludert modellens kompleksitet, dataens sparsommelighet, eller den lille størrelsen på effektene som vi prøver å identifisere.

Viktige Betraktninger ved Modellvalidering

Når man bruker kryssvalidering, er det flere faktorer som kan påvirke resultatene. For det første er det viktig å merke seg at kryssvalidering ikke alltid gir definitive svar, spesielt når modellene er relativt like. I situasjoner hvor dataene er sparse, eller effektene er små, kan det være vanskelig å skille mellom modellene. Dette er spesielt relevant i psykologi og lingvistikk, hvor små effekter kan være vanlige.

En annen faktor er at kryssvalidering kan være svært følsom for størrelsen på datasettet. Når datasettet er lite, kan variasjonene i modellens prediktive nøyaktighet være store, noe som kan gjøre det utfordrende å tolke resultatene. Derfor er det viktig å supplere kryssvalidering med andre metoder, som for eksempel Bayes-faktorer, for å få en mer nyansert forståelse av modellens ytelse.

Ytterligere Lesning

For de som ønsker en dypere forståelse av kryssvalidering, finnes det flere viktige ressurser. Gelman et al. (2014) diskuterer kryssvalidering i statistisk kontekst, og Gronau og Wagenmakers (2018) samt Vehtari et al. (2019) gir innsikt i fordelene og ulempene ved forskjellige kryssvalideringsteknikker. I tillegg finnes det flere blogginnlegg og FAQs, for eksempel fra Aki Vehtari, som gir praktiske råd for implementering og feilsøking når man bruker kryssvalidering i modeller.

Hvordan kan blandingsmodeller og sekvensielle prøveakkumulatorer forklare reaksjonstid og nøyaktighet?

Blandingsmodeller, spesielt i kognitiv vitenskap, gir en fleksibel ramme for å forstå hvordan ulike underliggende prosesser kan bidra til observerte data, slik som reaksjonstid og nøyaktighet i eksperimenter. En sentral innsikt er at slike modeller ofte består av flere komponenter som sammen fanger kompleksiteten i kognitiv atferd. For eksempel kan en "fast-guess"-modell kombinere en komponent som representerer raske, intuitive svar med en annen som reflekterer mer gjennomtenkte beslutninger.

Sammenligningen av slike modeller krever at de opererer på samme avhengige variabler og skalaer. Man kan ikke for eksempel direkte sammenligne en modell som kun forklarer nøyaktighet med en som modellerer både nøyaktighet og reaksjonstid uten å gjøre nødvendige omparametriseringer. Dette understreker viktigheten av konsistens i modellering for å sikre gyldige sammenligninger.

Sekvensielle prøveakkumulatorer, som den lognormale løpsmodellen, presenterer en elegant måte å modellere beslutningsprosesser som en konkurranse mellom ulike kilder til bevis (akkumulatorer) som bygger seg opp over tid. Disse modellene antar at en beslutning tas når en akkumulators bevismengde når en terskel, og dermed kan de samtidig forklare fordelingen av både valg og reaksjonstider. En viktig egenskap ved den lognormale løpsmodellen er at selv om hastigheten på oppsamlingen varierer mellom forsøk, forblir denne hastigheten konstant innen hvert enkelt forsøk. Dette gjør modellen deterministisk og dermed enklere å tilpasse i hierarkiske rammer.

Fordelene med den lognormale løpsmodellen sammenlignet med andre sekvensielle modeller er flere: den er relativt enkel, noe som letter utvidelser til mer komplekse modeller; den har færre problemer med konvergens under estimering; og den kan enkelt håndtere valg mellom flere alternativer, ikke bare binære valg. Selv om mer fleksible modeller som drift-diffusjonsmodellen ofte foretrekkes, er den lognormale løpsmodellen pedagogisk nyttig og praktisk anvendelig, særlig i situasjoner med hierarkiske data.

I en konkret anvendelse, som i en leksikal beslutningstest der forsøkspersoner skal avgjøre om en streng bokstaver utgjør et ord eller ikke, kan denne modellen brukes til å analysere hvordan faktorer som ordfrekvens påvirker både reaksjonstid og nøyaktighet. Ved å log-transformere og sentrere ordfrekvens kan man fange opp hvordan høyere frekvens typisk fører til raskere og mer nøyaktige avgjørelser.

Det er avgjørende å forstå at modelltilpasning og evaluering i slike sammenhenger krever grundige kontroller for konvergens og prediktiv validitet. Blanding av data og marginalisering er komplekse aspekter som må håndteres nøye for å sikre pålitelige konklusjoner. Ufullkommenheter i modellen kan reflektere både begrensninger i selve modellens struktur og i datamaterialets egenskaper, som for eksempel vanskeligheten med å modellere langsomme feil.

Å sammenligne modeller handler ikke bare om statistisk tilpasning, men også om hvorvidt modellen fanger essensen av de empiriske funnene som er viktige for forskningsspørsmålet. Dette innebærer å veie kompleksitet opp mot tolkbarhet og generaliserbarhet.

Det er viktig å merke seg at selv om slike kognitive modeller i stor grad er basert på sannsynlighetsteori og statistikk, fungerer de også som hypoteser om hvordan mentale prosesser kan foregå i hjernen. Modellene oversetter observerbare data til mulige mekanismer for beslutningstaking, noe som gir verdifull innsikt i både grunnforskning og anvendelser innen psykologi og nevrovitenskap.

Hvordan Modellere Respons Tider i Valgoppgaver ved Bruk av Akkumulatormodeller

Modellering av responstider i kognitive valgoppgaver, som den leksikalske beslutningsoppgaven, kan være utfordrende, særlig når man forsøker å forstå hvordan individer tar beslutninger under tidspress. En av de mest brukte tilnærmingene for å modellere slike valgprosesser er den såkalte log-normale akkumulatormodellen. Denne modellen forsøker å fange kompleksiteten i beslutningsprosesser, spesielt når responsene kan variere på grunn av både underliggende beslutningsprosesser og støy (kontaminantdistribusjoner).

Når vi har en respons tid som er mindre enn 0 (𝑇𝑛 < 0), kan det indikere at tidene våre for responsene ikke følger den normale logaritmiske fordelingen, men heller er utsatt for støy fra en kontaminantdistribusjon. I slike tilfeller representeres log-likelihooden i modellen som:

log(θcUniform(rtnmin,max)0.5+(1θc)plnrace)\log(\theta_c \cdot \text{Uniform}(r_tn| \text{min}, \text{max}) \cdot 0.5 + (1-\theta_c) \cdot p_{\text{lnrace}})

hvor 𝑝𝑙𝑛𝑟𝑎𝑐𝑒 = 0. Dette uttrykket betyr at vi benytter en enkel uniform fordeling, med en vektet miksing mellom en kontaminantdistribusjon og en log-normal fordeling, der parameteren 𝜃𝑐 bestemmer blandingsforholdet mellom de to distribusjonene. I Stan-koden for denne modellen er dette implementert som:

stan
target += log(theta_c) + uniform_lpdf(rt[n] | min_rt, max_rt) + log(0.5);

Når 𝑇𝑛 er større enn 0 (𝑇𝑛 > 0), kan dette bety at responstiden er mer kompleks og kan beskrives av en miks av en kontaminantdistribusjon og en log-normal akkumulatormodell. Modellen i slike tilfeller bruker en log-sum-exp-funksjon som også er benyttet i andre modeller for rask beslutningstaking. Den kombinerte log-likelihooden ser slik ut:

log_lik=log(θc)+uniform_lpdf(rtnmin,max)+log(0.5)+log(1θc)+lognormal_race2_lpdf(T[n]nchoice[n],μ,σ)\text{log\_lik} = \log(\theta_c) + \text{uniform\_lpdf}(r_tn | \text{min}, \text{max}) + \log(0.5) + \log(1-\theta_c) + \text{lognormal\_race2\_lpdf}(T[n] | nchoice[n], \mu, \sigma)

I Stan-koden ser dette ut som:

stan
target += log_sum_exp( log(theta_c) + uniform_lpdf(rt[n] | min_rt, max_rt) + log(.5), log1m(theta_c) + lognormal_race2_lpdf(T | nchoice[n], mu, sigma));

Denne miksen er viktig fordi den tillater modellen å være fleksibel nok til å håndtere både ideelle og ikke-ideelle data, der det finnes en viss grad av forurensning i de observerte responstidene.

For å implementere denne modellen i praksis, benyttes en Stan-modell med navnet lnrace_cont.stan. Koden for denne modellen er relativt enkel, men den gir en kraftig måte å tilpasse valgprosesser med både støy og tidspress. I modellens parametere finner vi variable som 𝛼, 𝛽, 𝜎, 𝑇₀, 𝜃𝑐, og 𝜏, som sammen kontrollerer hvordan resultatene fra forsøket skal simuleres og hvilke prediksjoner vi kan gjøre.

En praktisk utfordring i bruk av slike modeller er konvergensproblemer, som kan oppstå ved utilstrekkelig informasjon om parameterne, spesielt når man arbeider med store datasett eller høyt kompleksitetsmodeller. Et typisk eksempel er når parameteren 𝜃𝑐 for blandingsandelen mellom kontaminant- og log-normal distribusjoner er satt til svært høye verdier som kan føre til at kjedene stagnerer og ikke konvergerer effektivt. For å håndtere dette kan man justere priorene for parameterne, spesielt ved å sette en øvre grense for 𝜃𝑐, for å sikre at modellen konvergerer raskere og på en mer pålitelig måte.

Når man har gjennomført tilpasning av modellen på de observerte dataene, vil resultatene gi en god indikasjon på hvordan parameterne i modellen relaterer seg til de observerte beslutningstidsdataene. Eksemplene på resultatene som kan komme fra modelltilpasningen inkluderer estimater for 𝛼, 𝛽, 𝜎, 𝑇₀, og 𝜃𝑐, som gir innsikt i de underliggende kognitive prosessene.

En annen viktig utfordring når man benytter slike modeller er skaleringsproblemet, spesielt med parameteren 𝑇₀, som representerer ikke-beslutningstiden. Hvis denne verdien er svært høy, som for eksempel 300 ms, kan det være nødvendig å bruke en log-transformasjon av denne parameteren (𝑙𝑇₀ = log(𝑇₀)) for å forenkle samplingprosessen og gjøre modelltilpasningen mer effektiv. Dette skaper en modell med mindre parameterheterogenitet og kan føre til raskere konvergens og mer stabile resultater.

I den videre prosessen kan man vurdere å bruke simulering for å teste modellen på syntetiske data før man tilpasser den til faktiske eksperimentelle data. Dette er en viktig fremgangsmåte for å validere modellen og sikre at den kan gjenkjenne de sanne verdiene til de underliggende parameterne. Slike simuleringer kan også hjelpe til med å identifisere problemer før man begynner å bruke modellen på reelle data.

Endelig er det viktig å merke seg at modellens effektivitet og nøyaktighet avhenger sterkt av datakvaliteten. Modellen kan være svært følsom for støy og kan ikke alltid håndtere ekstremverdier i de observerte dataene uten videre justeringer. Derfor er det essensielt å bruke robust statistikk og forskjellige metoder for å verifisere resultatene før man trekker konklusjoner om de kognitive prosessene bak beslutningstakingen.

Hvordan bruke log-normal sannsynlighetsmodell for å tilpasse data fra en enkel deltaker som trykker på en knapp gjentatte ganger

Når man samler inn data fra eksperimenter som innebærer repetitiv atferd, for eksempel når en deltaker trykker på en knapp mange ganger, er det ofte nødvendig å benytte statistiske modeller som kan håndtere tid og responstider. Log-normal modellering er en metode som kan brukes til å analysere slike data, spesielt når responstidene er skjeve og ikke følger en normalfordeling.

Log-normal distribusjonen er nyttig når dataene er positive og skjeve, som ofte er tilfelle i eksperimenter som involverer tid eller responsfrekvenser. I slike tilfeller er det ofte mer passende å bruke en log-normal modell enn en enkel normalfordeling, ettersom log-transformasjonen kan gjøre dataene mer symmetriske. I denne typen modellering representeres variabelen som en logaritmisk transformasjon av den opprinnelige verdien, og dette kan hjelpe til med å håndtere skjevheter i dataene som kan oppstå fra naturlige prosesser som involverer tid eller ventetid.

Når en deltaker trykker på en knapp gjentatte ganger, er det viktig å vurdere hvordan variasjon i responsene kan være relatert til ulike faktorer, som for eksempel tid, stressnivå eller oppmerksomhet. Den log-normale modellen kan brukes til å estimere både de gjennomsnittlige responsene og variasjonen i disse responsene på tvers av tid og deltakerne, og dermed gi et dypere innblikk i dynamikken bak den atferden.

Likelihood og priors for log-normal modellen

I log-normal modellering, som i all statistisk modellering, er det viktig å spesifisere både likelihood og priors på en passende måte. Likelihood-funksjonen beskriver hvordan de observerte dataene kan være et resultat av de underliggende modellparametrene. For log-normal modellen betyr dette at vi antar at de logaritmerte dataene følger en normalfordeling, noe som gjør det mulig å bruke standard statistiske teknikker for å estimere parameterne. De viktigste parametrene i denne modellen er gjennomsnittet og standardavviket til de log-transformerte dataene.

Priors er antakelser som gjøres om verdiene til modellparametrene før dataene observeres. Når man bruker en log-normal modell, kan man bruke diffuse eller informative priors avhengig av hvor mye tidligere kunnskap man har om de underliggende prosessene. For eksempel, hvis man har grunn til å tro at deltakerens responstider vil være innen et bestemt område, kan man bruke en informert prior som reflekterer dette.

Modellimplementering i brms

I praksis kan log-normal modellen implementeres i R ved hjelp av pakken brms, som gir et grensesnitt til Stan, et kraftig verktøy for probabilistisk programmering. I brms kan modellen spesifiseres ved hjelp av en enkel formel, og det er mulig å inkludere både faste og tilfeldige effekter. For eksempel, i et eksperiment hvor hver deltaker trykker på knappen flere ganger, kan man modellere hver deltakers responstid som en tilfeldig effekt, mens de faste effektene kan representere faktorer som tid, oppgavebelastning eller andre eksperimentelle variabler.

Hvordan kommunisere resultatene?

Når modellene er tilpasset og parameterne er estimert, er det neste trinnet å tolke og formidle resultatene. En viktig del av denne prosessen er å vurdere hvor godt modellen beskriver dataene. Dette kan gjøres ved å undersøke residualene eller ved å bruke diagnostiske verktøy som hjelper til med å vurdere modellens tilpasning.

For log-normal modellen kan man se på prediksjonene av log-transformationene og vurdere om de samsvarer med de faktiske observasjonene. Det er også viktig å kommunisere usikkerheten i resultatene. Siden alle modeller har en viss grad av usikkerhet, er det viktig å bruke credible intervals (som er Bayesiansk analog til konfidensintervallene) for å indikere hvor sikkert man er på estimatene.

Beskrivende tilstrekkelighet

En annen viktig vurdering i statistisk modellering er den beskrivende tilstrekkeligheten til modellen, det vil si hvor godt modellen fanger opp de underliggende mønstrene i dataene. For en log-normal modell er det ofte nyttig å sammenligne de observerte dataene med modellens prediksjoner, og vurdere om det er systematiske avvik. I noen tilfeller kan det være behov for å justere modellen, for eksempel ved å inkludere flere variabler eller ved å endre måten vi spesifiserer priors på.

Når man arbeider med data fra en enkel deltaker som trykker på knappen gjentatte ganger, kan det også være nyttig å vurdere atferden på individuelt nivå, da det kan være stor variasjon mellom deltakerne. Å modellere deltakerens responstider på en individuell måte kan gi innsikt i hvordan ulike personer reagerer på oppgaven, og hvordan faktorer som oppmerksomhet eller tretthet kan påvirke resultatene.

Hva er viktig å huske på?

Når man bruker log-normal modeller i eksperimenter som involverer repetitiv atferd, er det viktig å være oppmerksom på noen aspekter som kan påvirke resultatene. For det første er det avgjørende å vurdere hvordan eventuelle eksterne faktorer som kan påvirke deltakerens ytelse (som distraksjoner eller endringer i oppgavebelastning) er inkludert i modellen. I tillegg er det viktig å være klar over at log-normal distribusjonen ikke alltid er den beste løsningen for alle typer data, og at andre modeller kan være mer hensiktsmessige avhengig av datatypen og de spesifikke forholdene i eksperimentet.

En annen viktig påminnelse er at det er flere måter å tilpasse log-normal modeller på, og at det er viktig å vurdere om modellen som brukes, gir de beste resultatene for de spesifikke spørsmålene man ønsker å besvare.

Hvordan optimalisere modeller med hierarkisk struktur i Stan

Modellering med иерархическими структурами в Stan требует внимательности к деталям, особенно в контексте проблем с сходимостью и точностью. В данном разделе рассматривается методика построения и настройки таких моделей, в частности, использование некорректной параметризации для решения распространённых проблем с сходимостью, а также оптимизация поведения модели в условиях ограничений вычислительных систем.

Одной из важнейших техник, часто необходимой для устранения проблем с сходимостью, является некорректная перепараметризация. Она позволяет более эффективно справляться с вызовами, возникающими при использовании вероятностных моделей. Для примера рассмотрим иерархическую модель, которая включает в себя различные уровни влияния переменных на зависимые переменные. Такой подход позволяет учитывать различия между субъектами и минимизировать смещение оценок.

Возьмём за основу модель с варьирующимся перехватом. Этот тип модели используется для анализа, где каждый субъект имеет свой собственный корректив, учитывающий специфичные особенности данных для каждого наблюдения. Например, при анализе ЭЭГ сигналов можно предположить, что каждый субъект может иметь уникальный перехват, отличающийся от общего, но для всех будет одинаково действовать эффект, связанный с вероятностью закрытия слов (cloze probability).

В такой модели перехват α\alpha регулируется через параметр uiu_i, который представляет собой корректировку для каждого конкретного субъекта. Например, если значение uiu_i положительное, это указывает на то, что сигнал субъекта выше среднего значения по всем наблюдениям, и наоборот, если оно отрицательное — то сигнал ниже среднего. Важно отметить, что предполагается, что среднее значение uu равно нулю, что означает, что все общие эффекты учитываются в α\alpha, а отклонения между субъектами отражаются в дисперсии параметра τu\tau_u.

Стандартная форма модели с варьирующимся перехватом может быть записана как:

signalnNormal(α+usubj[n]+ccloze[n]β,σ)signal_n \sim Normal(\alpha + u_{subj[n]} + c_{cloze[n]} \cdot \beta, \sigma)

Где usubj[n]u_{subj[n]} — это индивидуальная корректировка для каждого субъекта, а ccloze[n]c_{cloze[n]} — это значение переменной закрытия для конкретного наблюдения. Важно понимать, что использование "многократных индексов" в модели позволяет эффективно работать с большими массивами данных и минимизировать количество параметров модели, сохраняя при этом необходимую гибкость в учёте индивидуальных различий между субъектами.

Далее, переходим к более сложной иерархической модели, где предполагается, что каждый субъект может иметь не только варьирующийся перехват, но и варьирующуюся наклонную. В этой модели ослабляется жесткое предположение о том, что все субъекты реагируют одинаково на изменения в предсказателе (в данном случае переменной закрытия). Для этого предполагается, что корректировки для перехвата и наклона не коррелируют между собой.

Математическая запись такой модели выглядит следующим образом:

signalnNormal(α+usubj[n],1+ccloze[n](β+usubj[n],2),σ)signal_n \sim Normal(\alpha + u_{subj[n]}, 1 + c_{cloze[n]} \cdot (\beta + u_{subj[n]}, 2), \sigma)

Здесь для каждого субъекта предполагается наличие как индивидуального перехвата, так и индивидуального отклонения для наклона (коэффициента β\beta), что позволяет модели гибко учитывать различия в отклике между субъектами.

Для реализации таких моделей в Stan используется следующий код:

stan
data { int N; vector[N] signal; int N_subj; vector[N] c_cloze; array[N] int subj; } parameters { real sigma; real tau_u; real alpha; real beta; vector[N_subj] u; } model { target += normal_lpdf(alpha | 0, 10); target += normal_lpdf(beta | 0, 10); target += normal_lpdf(sigma | 0, 50) - normal_lccdf(0 | 0, 50); target += normal_lpdf(tau_u | 0, 20) - normal_lccdf(0 | 0, 20); target += normal_lpdf(u | 0, tau_u); target += normal_lpdf(signal | alpha + u[subj] + c_cloze * beta, sigma); }

В этом коде используется массив subjsubj для определения индексированных данных о субъектах. Важно отметить, что элементы массива должны быть целыми числами, начиная с 1 и заканчивая NsubjN_{subj}, чтобы обеспечить правильную индексацию и избегать пропусков в данных. Кроме того, при использовании стандартных функций normallpdfnormal_lpdf необходимо учитывать, что модель не использует специализированных функций для иерархических обобщённых линейных моделей, что может снизить эффективность работы на больших данных.

Кроме того, важным моментом является подготовка данных для модели. Например, центрирование предсказателя (в данном случае переменной clozecloze) помогает улучшить сходимость модели, минимизируя влияние сильных смещений в исходных данных. Центрирование может быть выполнено с использованием стандартных методов, например, через вычитание среднего значения из каждого наблюдения.

r
df_eeg <- df_eeg %>% mutate(c_cloze = cloze - mean(cloze))

Для итоговой оценки модели в Stan используется стандартная процедура, которая выводит средние значения для ключевых параметров, таких как α\alpha, β\beta, σ\sigma и τu\tau_u, а также проверяет конвергенцию модели с помощью статистики RhatRhat.

Важным аспектом является возможность адаптации модели в зависимости от сложности данных и особенностей исследуемого процесса. Разные сценарии могут требовать более сложных или более простых подходов, и важно всегда проверять результаты на консистентность и значимость.