From 17a6e06a263fb8196ab18d333fa1931816750534 Mon Sep 17 00:00:00 2001 From: Dominique Makowski Date: Mon, 29 Jul 2024 21:00:04 +0100 Subject: [PATCH] improve beta --- .gitignore | 1 + Project.toml | 4 +- .../base.ipynb | 329 ++++++ .../base.ipynb | 983 ++++++++++++++++++ content/.jupyter_cache/global.db | Bin 28672 -> 28672 bytes content/.quarto/cites/index.json | 2 +- content/.quarto/idx/2_predictors.qmd.json | 2 +- content/.quarto/xref/15f266d2 | 2 +- content/.quarto/xref/1a47137c | 2 +- content/.quarto/xref/26afb962 | 2 +- content/.quarto/xref/26e6880e | 2 +- content/.quarto/xref/6cbe9151 | 2 +- content/.quarto/xref/a408ff3e | 2 +- content/2_predictors.qmd | 105 ++ content/3a_scales.qmd | 148 ++- content/3b_choices.qmd | 135 ++- .../2_predictors/execute-results/html.json | 6 +- .../3a_scales/execute-results/html.json | 4 +- .../3b_choices/execute-results/html.json | 6 +- content/media/animations_scales2.jl | 51 +- 20 files changed, 1667 insertions(+), 121 deletions(-) create mode 100644 content/.jupyter_cache/executed/323341cc7559050e2ac9cccf38f375d2/base.ipynb create mode 100644 content/.jupyter_cache/executed/6aad0d658b933b40e71082925923418a/base.ipynb diff --git a/.gitignore b/.gitignore index ae487fb..6235965 100644 --- a/.gitignore +++ b/.gitignore @@ -83,3 +83,4 @@ Assets/scraps.cs.meta content/_book Manifest.toml +activate.jl diff --git a/Project.toml b/Project.toml index b5dd3a7..6ca9b69 100644 --- a/Project.toml +++ b/Project.toml @@ -7,4 +7,6 @@ GLMakie = "e9467ef8-e4e7-5192-8a1a-b1aee30e663a" Makie = "ee78f7c6-11fb-53f2-987a-cfe4a2b5a57a" QuartoNotebookRunner = "4c0109c6-14e9-4c88-93f0-2b974d3468f4" Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" -Turing = "fce5fe82-541a-59a6-adf8-730c64b5f9a0" \ No newline at end of file +SequentialSamplingModels = "0e71a2a6-2b30-4447-8742-d083a85e82d1" +SubjectiveScalesModels = "da3460ee-0a2f-4d2a-8d76-316f36bde5da" +Turing = "fce5fe82-541a-59a6-adf8-730c64b5f9a0" diff --git a/content/.jupyter_cache/executed/323341cc7559050e2ac9cccf38f375d2/base.ipynb b/content/.jupyter_cache/executed/323341cc7559050e2ac9cccf38f375d2/base.ipynb new file mode 100644 index 0000000..c9f7f0d --- /dev/null +++ b/content/.jupyter_cache/executed/323341cc7559050e2ac9cccf38f375d2/base.ipynb @@ -0,0 +1,329 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "a2a80c69", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling CairoMakie [13f3f980-e62b-5c42-98c6-ff1f3baf88f0]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[91m\u001b[1mERROR: \u001b[22m\u001b[39mLoadError: " + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "MethodError: no method matching to_rotation(::Nothing)\n", + "\n", + "\u001b[0mClosest candidates are:\n", + "\u001b[0m to_rotation(\u001b[91m::Makie.Quaternionf\u001b[39m)\n", + "\u001b[0m\u001b[90m @\u001b[39m \u001b[35mMakie\u001b[39m \u001b[90mC:\\Users\\domma\\.julia\\packages\\Makie\\rEu75\\src\\\u001b[39m\u001b[90m\u001b[4mconversions.jl:1245\u001b[24m\u001b[39m\n", + "\u001b[0m to_rotation(\u001b[91m::Tuple{Union{Tuple{Vararg{T, N}}, StaticArraysCore.StaticArray{Tuple{N}, T, 1}} where {N, T}, Number}\u001b[39m)\n", + "\u001b[0m\u001b[90m @\u001b[39m \u001b[35mMakie\u001b[39m \u001b[90mC:\\Users\\domma\\.julia\\packages\\Makie\\rEu75\\src\\\u001b[39m\u001b[90m\u001b[4mconversions.jl:1260\u001b[24m\u001b[39m\n", + "\u001b[0m to_rotation(\u001b[91m::Union{Tuple{Vararg{T, N}}, StaticArraysCore.StaticArray{Tuple{N}, T, 1}} where T\u001b[39m) where N\n", + "\u001b[0m\u001b[90m @\u001b[39m \u001b[35mMakie\u001b[39m \u001b[90mC:\\Users\\domma\\.julia\\packages\\Makie\\rEu75\\src\\\u001b[39m\u001b[90m\u001b[4mconversions.jl:1248\u001b[24m\u001b[39m\n", + "\u001b[0m ...\n", + "\n", + "Stacktrace:\n", + " [1] \u001b[0m\u001b[1mto_2d_rotation\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mx\u001b[39m::\u001b[0mNothing\u001b[0m\u001b[1m)\u001b[22m\n", + "\u001b[90m @\u001b[39m \u001b[36mCairoMakie\u001b[39m \u001b[90mC:\\Users\\domma\\.julia\\packages\\CairoMakie\\W0SZK\\src\\\u001b[39m\u001b[90m\u001b[4mutils.jl:76\u001b[24m\u001b[39m\n", + " [2] \u001b[0m\u001b[1mdraw_marker\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mctx\u001b[39m::\u001b[0mCairo.CairoContext, \u001b[90mbeziermarker\u001b[39m::\u001b[0mMakie.BezierPath, \u001b[90mpos\u001b[39m::\u001b[0mGeometryBasics.Vec\u001b[90m{2, Float32}\u001b[39m, \u001b[90mscale\u001b[39m::\u001b[0mGeometryBasics.Vec\u001b[90m{2, Float32}\u001b[39m, \u001b[90mstrokecolor\u001b[39m::\u001b[0mColorTypes.RGBA\u001b[90m{Float32}\u001b[39m, \u001b[90mstrokewidth\u001b[39m::\u001b[0mFloat32, \u001b[90mmarker_offset\u001b[39m::\u001b[0mGeometryBasics.Vec\u001b[90m{2, Float32}\u001b[39m, \u001b[90mrotation\u001b[39m::\u001b[0mNothing\u001b[0m\u001b[1m)\u001b[22m\n", + "\u001b[90m @\u001b[39m \u001b[36mCairoMakie\u001b[39m \u001b[90mC:\\Users\\domma\\.julia\\packages\\CairoMakie\\W0SZK\\src\\\u001b[39m\u001b[90m\u001b[4mprimitives.jl:434\u001b[24m\u001b[39m\n", + " [3] \u001b[0m\u001b[1m(::CairoMakie.var\"#27#28\"{Makie.Scene, Cairo.CairoContext, Tuple{typeof(identity), typeof(identity)}, StaticArraysCore.SMatrix{4, 4, Float64, 16}, StaticArraysCore.SMatrix{4, 4, Float32, 16}, FreeTypeAbstraction.FTFont, Symbol, Symbol})\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mpoint\u001b[39m::\u001b[0mGeometryBasics.Point\u001b[90m{2, Float64}\u001b[39m, \u001b[90mcol\u001b[39m::\u001b[0mColorTypes.RGBA\u001b[90m{Float32}\u001b[39m, \u001b[90mmarkersize\u001b[39m::\u001b[0mGeometryBasics.Vec\u001b[90m{2, Float32}\u001b[39m, \u001b[90mstrokecolor\u001b[39m::\u001b[0mColorTypes.RGBA\u001b[90m{Float32}\u001b[39m, \u001b[90mstrokewidth\u001b[39m::\u001b[0mFloat32, \u001b[90mm\u001b[39m::\u001b[0mMakie.BezierPath, \u001b[90mmo\u001b[39m::\u001b[0mGeometryBasics.Vec\u001b[90m{2, Float32}\u001b[39m, \u001b[90mrotation\u001b[39m::\u001b[0mNothing\u001b[0m\u001b[1m)\u001b[22m\n", + "\u001b[90m @\u001b[39m" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + " \u001b[36mCairoMakie\u001b[39m \u001b[90mC:\\Users\\domma\\.julia\\packages\\CairoMakie\\W0SZK\\src\\\u001b[39m\u001b[90m\u001b[4mprimitives.jl:337\u001b[24m\u001b[39m\n", + " [4] \u001b[0m\u001b[1mmacro expansion\u001b[22m\n", + "\u001b[90m @\u001b[39m \u001b[90mC:\\Users\\domma\\.julia\\packages\\Makie\\rEu75\\src\\utilities\\\u001b[39m\u001b[90m\u001b[4mutilities.jl:213\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n", + " [5] \u001b[0m\u001b[1mbroadcast_foreach\u001b[22m\u001b[0m\u001b[1m(\u001b[22m::\u001b[0mCairoMakie.var\"#27#28\"\u001b[90m{Makie.Scene, Cairo.CairoContext, Tuple{typeof(identity), typeof(identity)}, StaticArraysCore.SMatrix{4, 4, Float64, 16}, StaticArraysCore.SMatrix{4, 4, Float32, 16}, FreeTypeAbstraction.FTFont, Symbol, Symbol}\u001b[39m, ::\u001b[0mVector\u001b[90m{GeometryBasics.Point{2, Float64}}\u001b[39m, ::\u001b[0mVector\u001b[90m{ColorTypes.RGBA{Float32}}\u001b[39m, ::\u001b[0mGeometryBasics.Vec\u001b[90m{2, Float32}\u001b[39m, ::\u001b[0mColorTypes.RGBA\u001b[90m{Float32}\u001b[39m, ::\u001b[0mFloat32, ::\u001b[0mMakie.BezierPath, ::\u001b[0mGeometryBasics.Vec\u001b[90m{2, Float32}\u001b[39m, ::\u001b[0mNothing\u001b[0m\u001b[1m)\u001b[22m\n", + "\u001b[90m @\u001b[39m \u001b[35mMakie\u001b[39m \u001b[90mC:\\Users\\domma\\.julia\\packages\\Makie\\rEu75\\src\\utilities\\\u001b[39m\u001b[90m\u001b[4mutilities.jl:199\u001b[24m\u001b[39m\n", + " [6] \u001b[0m\u001b[1mdraw_atomic_scatter\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mscene\u001b[39m::\u001b[0mMakie.Scene, \u001b[90mctx\u001b[39m::\u001b[0mCairo.CairoContext, \u001b[90mtransfunc\u001b[39m::\u001b[0mTuple\u001b[90m{typeof(identity), typeof(identity)}\u001b[39m, \u001b[90mcolors\u001b[39m::\u001b[0mVector\u001b[90m{ColorTypes.RGBA{Float32}}\u001b[39m, \u001b[90mmarkersize\u001b[39m::\u001b[0mGeometryBasics.Vec\u001b[90m{2, Float32}\u001b[39m, \u001b[90mstrokecolor\u001b[39m::\u001b[0mColorTypes.RGBA\u001b[90m{Float32}\u001b[39m, \u001b[90mstrokewidth\u001b[39m::\u001b[0mFloat32, \u001b[90mmarker\u001b[39m::\u001b[0mMakie.BezierPath, \u001b[90mmarker_offset\u001b[39m::\u001b[0mGeometryBasics.Vec\u001b[90m{2, Float32}\u001b[39m, \u001b[90mrotations\u001b[39m::\u001b[0mNothing, \u001b[90mmodel\u001b[39m::\u001b[0mStaticArraysCore.SMatrix\u001b[90m{4, 4, Float64, 16}\u001b[39m, \u001b[90mpositions\u001b[39m::\u001b[0mVector\u001b[90m{GeometryBasics.Point{2, Float64}}\u001b[39m, \u001b[90msize_model\u001b[39m::\u001b[0mStaticArraysCore.SMatrix\u001b[90m{4, 4, Float32, 16}\u001b[39m, \u001b[90mfont\u001b[39m::\u001b[0mFreeTypeAbstraction.FTFont, \u001b[90mmarkerspace\u001b[39m::\u001b[0mSymbol, \u001b[90mspace\u001b[39m::\u001b[0mSymbol\u001b[0m\u001b[1m)\u001b[22m\n", + "\u001b[90m @\u001b[39m \u001b[36mCairoMakie\u001b[39m \u001b[90mC:\\Users\\domma\\.julia\\packages\\CairoMakie\\W0SZK\\src\\\u001b[39m\u001b[90m\u001b[4mprimitives.jl:317\u001b[24m\u001b[39m\n", + " [7] \u001b[0m\u001b[1mdraw_atomic\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mscene\u001b[39m::\u001b[0mMakie.Scene, \u001b[90mscreen\u001b[39m::\u001b[0mCairoMakie.Screen\u001b[90m{CairoMakie.IMAGE}\u001b[39m, \u001b[90mprimitive\u001b[39m::\u001b[0mMakieCore.Scatter\u001b[0m\u001b[1m)\u001b[22m\n", + "\u001b[90m @\u001b[39m \u001b[36mCairoMakie\u001b[39m \u001b[90mC:\\Users\\domma\\.julia\\packages\\CairoMakie\\W0SZK\\src\\\u001b[39m\u001b[90m\u001b[4mprimitives.jl:311\u001b[24m\u001b[39m\n", + " [8] \u001b[0m\u001b[1mdraw_plot\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mscene\u001b[39m::\u001b[0mMakie.Scene, \u001b[90mscreen\u001b[39m::\u001b[0mCairoMakie.Screen\u001b[90m{CairoMakie.IMAGE}\u001b[39m, \u001b[90mprimitive\u001b[39m::\u001b[0mMakieCore.Scatter\u001b[90m{Tuple{Vector{GeometryBasics.Point{2, Float64}}}}\u001b[39m\u001b[0m\u001b[1m)\u001b[22m\n", + "\u001b[90m @\u001b[39m \u001b[36mCairoMakie\u001b[39m \u001b[90mC:\\Users\\domma\\.julia\\packages\\CairoMakie\\W0SZK\\src\\\u001b[39m\u001b[90m\u001b[4minfrastructure.jl:129\u001b[24m\u001b[39m\n", + " [9] \u001b[0m\u001b[1mcairo_draw\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mscreen\u001b[39m::\u001b[0mCairoMakie.Screen\u001b[90m{CairoMakie.IMAGE}\u001b[39m, \u001b[90mscene\u001b[39m::\u001b[0mMakie.Scene\u001b[0m\u001b[1m)\u001b[22m\n", + "\u001b[90m @\u001b[39m \u001b[36mCairoMakie\u001b[39m \u001b[90mC:\\Users\\domma\\.julia\\packages\\CairoMakie\\W0SZK\\src\\\u001b[39m\u001b[90m\u001b[4minfrastructure.jl:51\u001b[24m\u001b[39m\n", + " [10] \u001b[0m\u001b[1mcolorbuffer\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mscreen\u001b[39m::\u001b[0mCairoMakie.Screen\u001b[90m{CairoMakie.IMAGE}\u001b[39m\u001b[0m\u001b[1m)\u001b[22m\n", + "\u001b[90m @\u001b[39m \u001b[36mCairoMakie\u001b[39m \u001b[90mC:\\Users\\domma\\.julia\\packages\\CairoMakie\\W0SZK\\src\\\u001b[39m\u001b[90m\u001b[4mscreen.jl:311\u001b[24m\u001b[39m\n", + " [11] \u001b[0m\u001b[1mcolorbuffer\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mscreen\u001b[39m::\u001b[0mCairoMakie.Screen\u001b[90m{CairoMakie.IMAGE}\u001b[39m, \u001b[90mformat\u001b[39m::\u001b[0mMakie.ImageStorageFormat\u001b[0m\u001b[1m)\u001b[22m\n", + "\u001b[90m @\u001b[39m \u001b[35mMakie\u001b[39m \u001b[90mC:\\Users\\domma\\.julia\\packages\\Makie\\rEu75\\src\\\u001b[39m\u001b[90m\u001b[4mdisplay.jl:382\u001b[24m\u001b[39m\n", + " [12] \u001b[0m\u001b[1mcolorbuffer\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mfig\u001b[39m::\u001b[0mMakie.FigureAxisPlot, \u001b[90mformat\u001b[39m::\u001b[0mMakie.ImageStorageFormat; \u001b[90mupdate\u001b[39m::\u001b[0mBool, \u001b[90mbackend\u001b[39m::\u001b[0mModule, \u001b[90mscreen_config\u001b[39m::\u001b[0m@Kwargs\u001b[90m{}\u001b[39m\u001b[0m\u001b[1m)\u001b[22m\n", + "\u001b[90m @\u001b[39m \u001b[35mMakie\u001b[39m \u001b[90mC:\\Users\\domma\\.julia\\packages\\Makie\\rEu75\\src\\\u001b[39m\u001b[90m\u001b[4mdisplay.jl:466\u001b[24m\u001b[39m\n", + " [13] \u001b[0m\u001b[1mcolorbuffer\u001b[22m\n", + "\u001b[90m @\u001b[39m \u001b[90mC:\\Users\\domma\\.julia\\packages\\Makie\\rEu75\\src\\\u001b[39m\u001b[90m\u001b[4mdisplay.jl:457\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n", + " [14] \u001b[0m\u001b[1mcolorbuffer\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mfig\u001b[39m::\u001b[0mMakie.FigureAxisPlot\u001b[0m\u001b[1m)\u001b[22m\n", + "\u001b[90m @\u001b[39m \u001b[35mMakie\u001b[39m \u001b[90mC:\\Users\\domma\\.julia\\packages\\Makie\\rEu75\\src\\\u001b[39m\u001b[90m\u001b[4mdisplay.jl:457\u001b[24m\u001b[39m\n", + " [15] top-level scope\n", + "\u001b[90m @\u001b[39m \u001b[90mC:\\Users\\domma\\.julia\\packages\\Makie\\rEu75\\precompile\\\u001b[39m\u001b[90m\u001b[4mshared-precompile.jl:6\u001b[24m\u001b[39m\n", + " [16] \u001b[0m\u001b[1minclude\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mmod\u001b[39m::\u001b[0mModule, \u001b[90m_path\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n", + "\u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mBase.jl:495\u001b[24m\u001b[39m\n", + " [17] \u001b[0m\u001b[1minclude\u001b[22m\n", + "\u001b[90m @\u001b[39m \u001b[90mC:\\Users\\domma\\.julia\\packages\\CairoMakie\\W0SZK\\src\\\u001b[39m\u001b[90m\u001b[4mCairoMakie.jl:1\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n", + " [18] \u001b[0m\u001b[1mmacro expansion\u001b[22m\n", + "\u001b[90m @\u001b[39m \u001b[90mC:\\Users\\domma\\.julia\\packages\\CairoMakie\\W0SZK\\src\\\u001b[39m\u001b[90m\u001b[4mprecompiles.jl:15\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n", + " [19] \u001b[0m\u001b[1mmacro expansion\u001b[22m\n", + "\u001b[90m @\u001b[39m \u001b[90mC:\\Users\\domma\\.julia\\packages\\PrecompileTools\\L8A3n\\src\\\u001b[39m\u001b[90m\u001b[4mworkloads.jl:78\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n", + " [20] top-level scope\n", + "\u001b[90m @\u001b[39m \u001b[90mC:\\Users\\domma\\.julia\\packages\\CairoMakie\\W0SZK\\src\\\u001b[39m\u001b[90m\u001b[4mprecompiles.jl:11\u001b[24m\u001b[39m\n", + " [21] \u001b[0m\u001b[1minclude\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mmod\u001b[39m::\u001b[0mModule, \u001b[90m_path\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n", + "\u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mBase.jl:495\u001b[24m\u001b[39m\n", + " [22] \u001b[0m\u001b[1minclude\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mx\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n", + "\u001b[90m @\u001b[39m \u001b[36mCairoMakie\u001b[39m \u001b[90mC:\\Users\\domma\\.julia\\packages\\CairoMakie\\W0SZK\\src\\\u001b[39m\u001b[90m\u001b[4mCairoMakie.jl:1\u001b[24m\u001b[39m\n", + " [23] top-level scope\n", + "\u001b[90m @\u001b[39m \u001b[90mC:\\Users\\domma\\.julia\\packages\\CairoMakie\\W0SZK\\src\\\u001b[39m\u001b[90m\u001b[4mCairoMakie.jl:36\u001b[24m\u001b[39m\n", + " [24] \u001b[0m\u001b[1minclude\u001b[22m\n", + "\u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mBase.jl:495\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n", + " [25] \u001b[0m\u001b[1minclude_package_for_output\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mpkg\u001b[39m::\u001b[0mBase.PkgId, \u001b[90minput\u001b[39m::\u001b[0mString, \u001b[90mdepot_path\u001b[39m::\u001b[0mVector\u001b[90m{String}\u001b[39m, \u001b[90mdl_load_path\u001b[39m::\u001b[0mVector\u001b[90m{String}\u001b[39m, \u001b[90mload_path\u001b[39m::\u001b[0mVector\u001b[90m{String}\u001b[39m, \u001b[90mconcrete_deps\u001b[39m::\u001b[0mVector\u001b[90m{Pair{Base.PkgId, UInt128}}\u001b[39m, \u001b[90msource\u001b[39m::\u001b[0mNothing\u001b[0m\u001b[1m)\u001b[22m\n", + "\u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2222\u001b[24m\u001b[39m\n", + " [26] top-level scope\n", + "\u001b[90m @\u001b[39m \u001b[90m\u001b[4mstdin:3\u001b[24m\u001b[39m\n", + "in expression starting at C:\\Users\\domma\\.julia\\packages\\Makie\\rEu75\\precompile\\shared-precompile.jl:4\n", + "in expression starting at C:\\Users\\domma\\.julia\\packages\\CairoMakie\\W0SZK\\src\\precompiles.jl:10\n", + "in expression starting at C:\\Users\\domma\\.julia\\packages\\CairoMakie\\W0SZK\\src\\CairoMakie.jl:1\n", + "in expression starting at stdin:3\n" + ] + } + ], + "source": [ + "import IJulia\n", + "\n", + "# The julia kernel has built in support for Revise.jl, so this is the \n", + "# recommended approach for long-running sessions:\n", + "# https://github.com/JuliaLang/IJulia.jl/blob/9b10fa9b879574bbf720f5285029e07758e50a5e/src/kernel.jl#L46-L51\n", + "\n", + "# Users should enable revise within .julia/config/startup_ijulia.jl:\n", + "# https://timholy.github.io/Revise.jl/stable/config/#Using-Revise-automatically-within-Jupyter/IJulia-1\n", + "\n", + "# clear console history\n", + "IJulia.clear_history()\n", + "\n", + "fig_width = 7\n", + "fig_height = 5\n", + "fig_format = :retina\n", + "fig_dpi = 96\n", + "\n", + "# no retina format type, use svg for high quality type/marks\n", + "if fig_format == :retina\n", + " fig_format = :svg\n", + "elseif fig_format == :pdf\n", + " fig_dpi = 96\n", + " # Enable PDF support for IJulia\n", + " IJulia.register_mime(MIME(\"application/pdf\"))\n", + "end\n", + "\n", + "# convert inches to pixels\n", + "fig_width = fig_width * fig_dpi\n", + "fig_height = fig_height * fig_dpi\n", + "\n", + "# Intialize Plots w/ default fig width/height\n", + "try\n", + " import Plots\n", + "\n", + " # Plots.jl doesn't support PDF output for versions < 1.28.1\n", + " # so use png (if the DPI remains the default of 300 then set to 96)\n", + " if (Plots._current_plots_version < v\"1.28.1\") & (fig_format == :pdf)\n", + " Plots.gr(size=(fig_width, fig_height), fmt = :png, dpi = fig_dpi)\n", + " else\n", + " Plots.gr(size=(fig_width, fig_height), fmt = fig_format, dpi = fig_dpi)\n", + " end\n", + "catch e\n", + " # @warn \"Plots init\" exception=(e, catch_backtrace())\n", + "end\n", + "\n", + "# Initialize CairoMakie with default fig width/height\n", + "try\n", + " import CairoMakie\n", + "\n", + " # CairoMakie's display() in PDF format opens an interactive window\n", + " # instead of saving to the ipynb file, so we don't do that.\n", + " # https://github.com/quarto-dev/quarto-cli/issues/7548\n", + " if fig_format == :pdf\n", + " CairoMakie.activate!(type = \"png\")\n", + " else\n", + " CairoMakie.activate!(type = string(fig_format))\n", + " end\n", + " CairoMakie.update_theme!(resolution=(fig_width, fig_height))\n", + "catch e\n", + " # @warn \"CairoMakie init\" exception=(e, catch_backtrace())\n", + "end\n", + " \n", + "# Set run_path if specified\n", + "try\n", + " run_path = raw\"C:\\Users\\domma\\Dropbox\\Software\\CognitiveModels\\content\"\n", + " if !isempty(run_path)\n", + " cd(run_path)\n", + " end\n", + "catch e\n", + " @warn \"Run path init:\" exception=(e, catch_backtrace())\n", + "end\n", + "\n", + "\n", + "# emulate old Pkg.installed beahvior, see\n", + "# https://discourse.julialang.org/t/how-to-use-pkg-dependencies-instead-of-pkg-installed/36416/9\n", + "import Pkg\n", + "function isinstalled(pkg::String)\n", + " any(x -> x.name == pkg && x.is_direct_dep, values(Pkg.dependencies()))\n", + "end\n", + "\n", + "# ojs_define\n", + "if isinstalled(\"JSON\") && isinstalled(\"DataFrames\")\n", + " import JSON, DataFrames\n", + " global function ojs_define(; kwargs...)\n", + " convert(x) = x\n", + " convert(x::DataFrames.AbstractDataFrame) = Tables.rows(x)\n", + " content = Dict(\"contents\" => [Dict(\"name\" => k, \"value\" => convert(v)) for (k, v) in kwargs])\n", + " tag = \"\"\n", + " IJulia.display(MIME(\"text/html\"), tag)\n", + " end\n", + "elseif isinstalled(\"JSON\")\n", + " import JSON\n", + " global function ojs_define(; kwargs...)\n", + " content = Dict(\"contents\" => [Dict(\"name\" => k, \"value\" => v) for (k, v) in kwargs])\n", + " tag = \"\"\n", + " IJulia.display(MIME(\"text/html\"), tag)\n", + " end\n", + "else\n", + " global function ojs_define(; kwargs...)\n", + " @warn \"JSON package not available. Please install the JSON.jl package to use ojs_define.\"\n", + " end\n", + "end\n", + "\n", + "\n", + "# don't return kernel dependencies (b/c Revise should take care of dependencies)\n", + "nothing\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "8db4fa3d", + "metadata": {}, + "outputs": [], + "source": [ + "#| code-fold: false\n", + "\n", + "# using Downloads, CSV, DataFrames, Random\n", + "# using Turing, Distributions\n", + "# using GLMakie\n", + "# using LinearAlgebra\n", + "\n", + "# # Define the monotonic function\n", + "# function monotonic(scale::Vector{Float64}, i::Int)\n", + "# if i == 0\n", + "# return 0.0\n", + "# else\n", + "# return length(scale) * sum(scale[1:i])\n", + "# end\n", + "# end\n", + "\n", + "# # Test\n", + "# using RDatasets\n", + "# data = dataset(\"datasets\", \"mtcars\")\n", + "\n", + "# # Response variable\n", + "# y = data[!, :MPG]\n", + "# x = data[!, :Gear]\n", + "\n", + "# # Number of observations\n", + "# N = length(y)\n", + "\n", + "# # Length of simplex\n", + "# Jmo = maximum(x)\n", + "\n", + "# # Prior concentration for the simplex (using a uniform prior for simplicity)\n", + "# con_simo_1 = ones(Jmo)\n", + "\n", + "# # Turing Model Specification\n", + "# @model function monotonic_model(y, x, N, Jmo, con_simo_1)\n", + "# # Parameters\n", + "# Intercept ~ Normal(19.2, 5.4)\n", + "# simo_1 ~ Dirichlet(con_simo_1)\n", + "# sigma ~ truncated(Normal(0, 5.4), 0, Inf)\n", + "# bsp ~ Normal(0, 1)\n", + " \n", + "# # Linear predictor\n", + "# mu = Vector{Float64}(undef, N)\n", + "# for n in 1:N\n", + "# mu[n] = Intercept + bsp * monotonic(simo_1, x[n])\n", + "# end\n", + " \n", + "# # Likelihood\n", + "# y ~ MvNormal(mu, sigma)\n", + "# end\n", + "\n", + "# # Run the model\n", + "# model = monotonic_model(y, x, N, Jmo, con_simo_1)\n", + "# chain = sample(model, NUTS(), 1000)\n", + "\n", + "# # Display the results\n", + "# display(chain)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "8f315cea", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/html": [ + "" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#| code-fold: false\n", + "\n", + "using Downloads, CSV, DataFrames, Random\n", + "using Turing, Distributions\n", + "using GLMakie\n", + "\n", + "Random.seed!(123) # For reproducibility\n", + "\n", + "df = CSV.read(Downloads.download(\"https://raw.githubusercontent.com/DominiqueMakowski/CognitiveModels/main/data/nonlinear.csv\"), DataFrame)\n", + "\n", + "# Show 10 first rows\n", + "scatter(df.Age, df.SexualDrive, color=:black)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Julia 1.10.2", + "language": "julia", + "name": "julia-1.10" + }, + "language_info": { + "file_extension": ".jl", + "mimetype": "application/julia", + "name": "julia", + "version": "1.10.2" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/content/.jupyter_cache/executed/6aad0d658b933b40e71082925923418a/base.ipynb b/content/.jupyter_cache/executed/6aad0d658b933b40e71082925923418a/base.ipynb new file mode 100644 index 0000000..cb87302 --- /dev/null +++ b/content/.jupyter_cache/executed/6aad0d658b933b40e71082925923418a/base.ipynb @@ -0,0 +1,983 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "38f3e722", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling CairoMakie [13f3f980-e62b-5c42-98c6-ff1f3baf88f0]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[91m\u001b[1mERROR: \u001b[22m\u001b[39mLoadError: " + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "MethodError: " + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "no method matching to_rotation(::Nothing)\n", + "\n", + "\u001b[0mClosest candidates are:\n", + "\u001b[0m to_rotation(\u001b[91m::Makie.Quaternionf\u001b[39m)\n", + "\u001b[0m\u001b[90m @\u001b[39m \u001b[35mMakie\u001b[39m \u001b[90mC:\\Users\\domma\\.julia\\packages\\Makie\\rEu75\\src\\\u001b[39m\u001b[90m\u001b[4mconversions.jl:1245\u001b[24m\u001b[39m\n", + "\u001b[0m to_rotation(\u001b[91m::Tuple{Union{Tuple{Vararg{T, N}}, StaticArraysCore.StaticArray{Tuple{N}, T, 1}} where {N, T}, Number}\u001b[39m)\n", + "\u001b[0m\u001b[90m @\u001b[39m \u001b[35mMakie\u001b[39m \u001b[90mC:\\Users\\domma\\.julia\\packages\\Makie\\rEu75\\src\\\u001b[39m\u001b[90m\u001b[4mconversions.jl:1260\u001b[24m\u001b[39m\n", + "\u001b[0m to_rotation(\u001b[91m::Union{Tuple{Vararg{T, N}}, StaticArraysCore.StaticArray{Tuple{N}, T, 1}} where T\u001b[39m) where N\n", + "\u001b[0m\u001b[90m @\u001b[39m \u001b[35mMakie\u001b[39m \u001b[90mC:\\Users\\domma\\.julia\\packages\\Makie\\rEu75\\src\\\u001b[39m\u001b[90m\u001b[4mconversions.jl:1248\u001b[24m\u001b[39m\n", + "\u001b[0m ...\n", + "\n", + "Stacktrace:\n", + " [1] \u001b[0m\u001b[1mto_2d_rotation\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mx\u001b[39m::\u001b[0mNothing\u001b[0m\u001b[1m)\u001b[22m\n", + "\u001b[90m @\u001b[39m \u001b[36mCairoMakie\u001b[39m \u001b[90mC:\\Users\\domma\\.julia\\packages\\CairoMakie\\W0SZK\\src\\\u001b[39m\u001b[90m\u001b[4mutils.jl:76\u001b[24m\u001b[39m\n", + " [2] \u001b[0m\u001b[1mdraw_marker\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mctx\u001b[39m::\u001b[0mCairo.CairoContext, \u001b[90mbeziermarker\u001b[39m::\u001b[0mMakie.BezierPath, \u001b[90mpos\u001b[39m::\u001b[0mGeometryBasics.Vec\u001b[90m{2, Float32}\u001b[39m, \u001b[90mscale\u001b[39m::\u001b[0mGeometryBasics.Vec\u001b[90m{2, Float32}\u001b[39m, \u001b[90mstrokecolor\u001b[39m::\u001b[0mColorTypes.RGBA\u001b[90m{Float32}\u001b[39m, \u001b[90mstrokewidth\u001b[39m::\u001b[0mFloat32, \u001b[90mmarker_offset\u001b[39m::\u001b[0mGeometryBasics.Vec\u001b[90m{2, Float32}\u001b[39m, \u001b[90mrotation\u001b[39m::\u001b[0mNothing\u001b[0m\u001b[1m)\u001b[22m\n", + "\u001b[90m @\u001b[39m \u001b[36mCairoMakie\u001b[39m \u001b[90mC:\\Users\\domma\\.julia\\packages\\CairoMakie\\W0SZK\\src\\\u001b[39m\u001b[90m\u001b[4mprimitives.jl:434\u001b[24m\u001b[39m\n", + " [3] \u001b[0m\u001b[1m(::CairoMakie.var\"#27#28\"{Makie.Scene, Cairo.CairoContext, Tuple{typeof(identity), typeof(identity)}, StaticArraysCore.SMatrix{4, 4, Float64, 16}, StaticArraysCore.SMatrix{4, 4, Float32, 16}, FreeTypeAbstraction.FTFont, Symbol, Symbol})\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mpoint\u001b[39m::\u001b[0mGeometryBasics.Point\u001b[90m{2, Float64}\u001b[39m, \u001b[90mcol\u001b[39m::\u001b[0mColorTypes.RGBA\u001b[90m{Float32}\u001b[39m, \u001b[90mmarkersize\u001b[39m::\u001b[0mGeometryBasics.Vec\u001b[90m{2, Float32}\u001b[39m, \u001b[90mstrokecolor\u001b[39m::\u001b[0mColorTypes.RGBA\u001b[90m{Float32}\u001b[39m, \u001b[90mstrokewidth\u001b[39m::\u001b[0mFloat32, \u001b[90mm\u001b[39m::\u001b[0mMakie.BezierPath, \u001b[90mmo\u001b[39m::\u001b[0mGeometryBasics.Vec\u001b[90m{2, Float32}\u001b[39m, \u001b[90mrotation\u001b[39m::\u001b[0mNothing\u001b[0m\u001b[1m)\u001b[22m\n", + "\u001b[90m @\u001b[39m \u001b[36mCairoMakie\u001b[39m \u001b[90mC:\\Users\\domma\\.julia\\packages\\CairoMakie\\W0SZK\\src\\\u001b[39m\u001b[90m\u001b[4mprimitives.jl:337\u001b[24m\u001b[39m\n", + " [4] \u001b[0m\u001b[1mmacro expansion\u001b[22m\n", + "\u001b[90m @\u001b[39m \u001b[90mC:\\Users\\domma\\.julia\\packages\\Makie\\rEu75\\src\\utilities\\\u001b[39m\u001b[90m\u001b[4mutilities.jl:213\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n", + " [5] \u001b[0m\u001b[1mbroadcast_foreach\u001b[22m\u001b[0m\u001b[1m(\u001b[22m::\u001b[0mCairoMakie.var\"#27#28\"\u001b[90m{Makie.Scene, Cairo.CairoContext, Tuple{typeof(identity), typeof(identity)}, StaticArraysCore.SMatrix{4, 4, Float64, 16}, StaticArraysCore.SMatrix{4, 4, Float32, 16}, FreeTypeAbstraction.FTFont, Symbol, Symbol}\u001b[39m, ::\u001b[0mVector\u001b[90m{GeometryBasics.Point{2, Float64}}\u001b[39m, ::\u001b[0mVector\u001b[90m{ColorTypes.RGBA{Float32}}\u001b[39m, ::\u001b[0mGeometryBasics.Vec\u001b[90m{2, Float32}\u001b[39m, ::\u001b[0mColorTypes.RGBA\u001b[90m{Float32}\u001b[39m, ::\u001b[0mFloat32, ::\u001b[0mMakie.BezierPath, ::\u001b[0mGeometryBasics.Vec\u001b[90m{2, Float32}\u001b[39m, ::\u001b[0mNothing\u001b[0m\u001b[1m)\u001b[22m\n", + "\u001b[90m @\u001b[39m \u001b[35mMakie\u001b[39m \u001b[90mC:\\Users\\domma\\.julia\\packages\\Makie\\rEu75\\src\\utilities\\\u001b[39m\u001b[90m\u001b[4mutilities.jl:199\u001b[24m\u001b[39m\n", + " [6] \u001b[0m\u001b[1mdraw_atomic_scatter\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mscene\u001b[39m::\u001b[0mMakie.Scene, \u001b[90mctx\u001b[39m::\u001b[0mCairo.CairoContext, \u001b[90mtransfunc\u001b[39m::\u001b[0mTuple\u001b[90m{typeof(identity), typeof(identity)}\u001b[39m, \u001b[90mcolors\u001b[39m::\u001b[0mVector\u001b[90m{ColorTypes.RGBA{Float32}}\u001b[39m, \u001b[90mmarkersize\u001b[39m::\u001b[0mGeometryBasics.Vec\u001b[90m{2, Float32}\u001b[39m, \u001b[90mstrokecolor\u001b[39m::\u001b[0mColorTypes.RGBA\u001b[90m{Float32}\u001b[39m, \u001b[90mstrokewidth\u001b[39m::\u001b[0mFloat32, \u001b[90mmarker\u001b[39m::\u001b[0mMakie.BezierPath, \u001b[90mmarker_offset\u001b[39m::\u001b[0mGeometryBasics.Vec\u001b[90m{2, Float32}\u001b[39m, \u001b[90mrotations\u001b[39m::\u001b[0mNothing, \u001b[90mmodel\u001b[39m::\u001b[0mStaticArraysCore.SMatrix\u001b[90m{4, 4, Float64, 16}\u001b[39m, \u001b[90mpositions\u001b[39m::\u001b[0mVector\u001b[90m{GeometryBasics.Point{2, Float64}}\u001b[39m, \u001b[90msize_model\u001b[39m::\u001b[0mStaticArraysCore.SMatrix\u001b[90m{4, 4, Float32, 16}\u001b[39m, \u001b[90mfont\u001b[39m::\u001b[0mFreeTypeAbstraction.FTFont, \u001b[90mmarkerspace\u001b[39m::\u001b[0mSymbol, \u001b[90mspace\u001b[39m::\u001b[0mSymbol\u001b[0m\u001b[1m)\u001b[22m\n", + "\u001b[90m @\u001b[39m \u001b[36mCairoMakie\u001b[39m \u001b[90mC:\\Users\\domma\\.julia\\packages\\CairoMakie\\W0SZK\\src\\\u001b[39m\u001b[90m\u001b[4mprimitives.jl:317\u001b[24m\u001b[39m\n", + " [7] \u001b[0m\u001b[1mdraw_atomic\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mscene\u001b[39m::\u001b[0mMakie.Scene, \u001b[90mscreen\u001b[39m::\u001b[0mCairoMakie.Screen\u001b[90m{CairoMakie.IMAGE}\u001b[39m, \u001b[90mprimitive\u001b[39m::\u001b[0mMakieCore.Scatter\u001b[0m\u001b[1m)\u001b[22m\n", + "\u001b[90m @\u001b[39m \u001b[36mCairoMakie\u001b[39m \u001b[90mC:\\Users\\domma\\.julia\\packages\\CairoMakie\\W0SZK\\src\\\u001b[39m\u001b[90m\u001b[4mprimitives.jl:311\u001b[24m\u001b[39m\n", + " [8] \u001b[0m\u001b[1mdraw_plot\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mscene\u001b[39m::\u001b[0mMakie.Scene, \u001b[90mscreen\u001b[39m::\u001b[0mCairoMakie.Screen\u001b[90m{CairoMakie.IMAGE}\u001b[39m, \u001b[90mprimitive\u001b[39m::\u001b[0mMakieCore.Scatter\u001b[90m{Tuple{Vector{GeometryBasics.Point{2, Float64}}}}\u001b[39m\u001b[0m\u001b[1m)\u001b[22m\n", + "\u001b[90m @\u001b[39m \u001b[36mCairoMakie\u001b[39m \u001b[90mC:\\Users\\domma\\.julia\\packages\\CairoMakie\\W0SZK\\src\\\u001b[39m\u001b[90m\u001b[4minfrastructure.jl:129\u001b[24m\u001b[39m\n", + " [9] \u001b[0m\u001b[1mcairo_draw\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mscreen\u001b[39m::\u001b[0mCairoMakie.Screen\u001b[90m{CairoMakie.IMAGE}\u001b[39m, \u001b[90mscene\u001b[39m::\u001b[0mMakie.Scene\u001b[0m\u001b[1m)\u001b[22m\n", + "\u001b[90m @\u001b[39m \u001b[36mCairoMakie\u001b[39m \u001b[90mC:\\Users\\domma\\.julia\\packages\\CairoMakie\\W0SZK\\src\\\u001b[39m\u001b[90m\u001b[4minfrastructure.jl:51\u001b[24m\u001b[39m\n", + " [10] \u001b[0m\u001b[1mcolorbuffer\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mscreen\u001b[39m::\u001b[0mCairoMakie.Screen\u001b[90m{CairoMakie.IMAGE}\u001b[39m\u001b[0m\u001b[1m)\u001b[22m\n", + "\u001b[90m @\u001b[39m \u001b[36mCairoMakie\u001b[39m \u001b[90mC:\\Users\\domma\\.julia\\packages\\CairoMakie\\W0SZK\\src\\\u001b[39m\u001b[90m\u001b[4mscreen.jl:311\u001b[24m\u001b[39m\n", + " [11] \u001b[0m\u001b[1mcolorbuffer\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mscreen\u001b[39m::\u001b[0mCairoMakie.Screen\u001b[90m{CairoMakie.IMAGE}\u001b[39m, \u001b[90mformat\u001b[39m::\u001b[0mMakie.ImageStorageFormat\u001b[0m\u001b[1m)\u001b[22m\n", + "\u001b[90m @\u001b[39m \u001b[35mMakie\u001b[39m \u001b[90mC:\\Users\\domma\\.julia\\packages\\Makie\\rEu75\\src\\\u001b[39m\u001b[90m\u001b[4mdisplay.jl:382\u001b[24m\u001b[39m\n", + " [12] \u001b[0m\u001b[1mcolorbuffer\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mfig\u001b[39m::\u001b[0mMakie.FigureAxisPlot, \u001b[90mformat\u001b[39m::\u001b[0mMakie.ImageStorageFormat; \u001b[90mupdate\u001b[39m::\u001b[0mBool, \u001b[90mbackend\u001b[39m::\u001b[0mModule, \u001b[90mscreen_config\u001b[39m::\u001b[0m@Kwargs\u001b[90m{}\u001b[39m\u001b[0m\u001b[1m)\u001b[22m\n", + "\u001b[90m @\u001b[39m \u001b[35mMakie\u001b[39m \u001b[90mC:\\Users\\domma\\.julia\\packages\\Makie\\rEu75\\src\\\u001b[39m\u001b[90m\u001b[4mdisplay.jl:466\u001b[24m\u001b[39m\n", + " [13] \u001b[0m\u001b[1mcolorbuffer\u001b[22m\n", + "\u001b[90m @\u001b[39m \u001b[90mC:\\Users\\domma\\.julia\\packages\\Makie\\rEu75\\src\\\u001b[39m\u001b[90m\u001b[4mdisplay.jl:457\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n", + " [14] \u001b[0m\u001b[1mcolorbuffer\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mfig\u001b[39m::\u001b[0mMakie.FigureAxisPlot\u001b[0m\u001b[1m)\u001b[22m\n", + "\u001b[90m @\u001b[39m \u001b[35mMakie\u001b[39m \u001b[90mC:\\Users\\domma\\.julia\\packages\\Makie\\rEu75\\src\\\u001b[39m\u001b[90m\u001b[4mdisplay.jl:457\u001b[24m\u001b[39m\n", + " [15] top-level scope\n", + "\u001b[90m @\u001b[39m \u001b[90mC:\\Users\\domma\\.julia\\packages\\Makie\\rEu75\\precompile\\\u001b[39m\u001b[90m\u001b[4mshared-precompile.jl:6\u001b[24m\u001b[39m\n", + " [16] \u001b[0m\u001b[1minclude\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mmod\u001b[39m::\u001b[0mModule, \u001b[90m_path\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n", + "\u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mBase.jl:495\u001b[24m\u001b[39m\n", + " [17] \u001b[0m\u001b[1minclude\u001b[22m\n", + "\u001b[90m @\u001b[39m \u001b[90mC:\\Users\\domma\\.julia\\packages\\CairoMakie\\W0SZK\\src\\\u001b[39m\u001b[90m\u001b[4mCairoMakie.jl:1\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n", + " [18] \u001b[0m\u001b[1mmacro expansion\u001b[22m\n", + "\u001b[90m @\u001b[39m \u001b[90mC:\\Users\\domma\\.julia\\packages\\CairoMakie\\W0SZK\\src\\\u001b[39m\u001b[90m\u001b[4mprecompiles.jl:15\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n", + " [19] \u001b[0m\u001b[1mmacro expansion\u001b[22m\n", + "\u001b[90m @\u001b[39m \u001b[90mC:\\Users\\domma\\.julia\\packages\\PrecompileTools\\L8A3n\\src\\\u001b[39m\u001b[90m\u001b[4mworkloads.jl:78\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n", + " [20] top-level scope\n", + "\u001b[90m @\u001b[39m \u001b[90mC:\\Users\\domma\\.julia\\packages\\CairoMakie\\W0SZK\\src\\\u001b[39m\u001b[90m\u001b[4mprecompiles.jl:11\u001b[24m\u001b[39m\n", + " [21] \u001b[0m\u001b[1minclude\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mmod\u001b[39m::\u001b[0mModule, \u001b[90m_path\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n", + "\u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mBase.jl:495\u001b[24m\u001b[39m\n", + " [22] \u001b[0m\u001b[1minclude\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mx\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n", + "\u001b[90m @\u001b[39m \u001b[36mCairoMakie\u001b[39m \u001b[90mC:\\Users\\domma\\.julia\\packages\\CairoMakie\\W0SZK\\src\\\u001b[39m\u001b[90m\u001b[4mCairoMakie.jl:1\u001b[24m\u001b[39m\n", + " [23] top-level scope\n", + "\u001b[90m @\u001b[39m \u001b[90mC:\\Users\\domma\\.julia\\packages\\CairoMakie\\W0SZK\\src\\\u001b[39m\u001b[90m\u001b[4mCairoMakie.jl:36\u001b[24m\u001b[39m\n", + " [24] \u001b[0m\u001b[1minclude\u001b[22m\n", + "\u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mBase.jl:495\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n", + " [25] \u001b[0m\u001b[1minclude_package_for_output\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mpkg\u001b[39m::\u001b[0mBase.PkgId, \u001b[90minput\u001b[39m::\u001b[0mString, \u001b[90mdepot_path\u001b[39m::\u001b[0mVector\u001b[90m{String}\u001b[39m, \u001b[90mdl_load_path\u001b[39m::\u001b[0mVector\u001b[90m{String}\u001b[39m, \u001b[90mload_path\u001b[39m::\u001b[0mVector\u001b[90m{String}\u001b[39m, \u001b[90mconcrete_deps\u001b[39m::\u001b[0mVector\u001b[90m{Pair{Base.PkgId, UInt128}}\u001b[39m, \u001b[90msource\u001b[39m::\u001b[0mNothing\u001b[0m\u001b[1m)\u001b[22m\n", + "\u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2222\u001b[24m\u001b[39m\n", + " [26] top-level scope\n", + "\u001b[90m @\u001b[39m \u001b[90m\u001b[4mstdin:3\u001b[24m\u001b[39m\n", + "in expression starting at C:\\Users\\domma\\.julia\\packages\\Makie\\rEu75\\precompile\\shared-precompile.jl:4\n", + "in expression starting at C:\\Users\\domma\\.julia\\packages\\CairoMakie\\W0SZK\\src\\precompiles.jl:10\n", + "in expression starting at C:\\Users\\domma\\.julia\\packages\\CairoMakie\\W0SZK\\src\\CairoMakie.jl:1\n", + "in expression starting at stdin:3\n" + ] + } + ], + "source": [ + "import IJulia\n", + "\n", + "# The julia kernel has built in support for Revise.jl, so this is the \n", + "# recommended approach for long-running sessions:\n", + "# https://github.com/JuliaLang/IJulia.jl/blob/9b10fa9b879574bbf720f5285029e07758e50a5e/src/kernel.jl#L46-L51\n", + "\n", + "# Users should enable revise within .julia/config/startup_ijulia.jl:\n", + "# https://timholy.github.io/Revise.jl/stable/config/#Using-Revise-automatically-within-Jupyter/IJulia-1\n", + "\n", + "# clear console history\n", + "IJulia.clear_history()\n", + "\n", + "fig_width = 7\n", + "fig_height = 5\n", + "fig_format = :retina\n", + "fig_dpi = 96\n", + "\n", + "# no retina format type, use svg for high quality type/marks\n", + "if fig_format == :retina\n", + " fig_format = :svg\n", + "elseif fig_format == :pdf\n", + " fig_dpi = 96\n", + " # Enable PDF support for IJulia\n", + " IJulia.register_mime(MIME(\"application/pdf\"))\n", + "end\n", + "\n", + "# convert inches to pixels\n", + "fig_width = fig_width * fig_dpi\n", + "fig_height = fig_height * fig_dpi\n", + "\n", + "# Intialize Plots w/ default fig width/height\n", + "try\n", + " import Plots\n", + "\n", + " # Plots.jl doesn't support PDF output for versions < 1.28.1\n", + " # so use png (if the DPI remains the default of 300 then set to 96)\n", + " if (Plots._current_plots_version < v\"1.28.1\") & (fig_format == :pdf)\n", + " Plots.gr(size=(fig_width, fig_height), fmt = :png, dpi = fig_dpi)\n", + " else\n", + " Plots.gr(size=(fig_width, fig_height), fmt = fig_format, dpi = fig_dpi)\n", + " end\n", + "catch e\n", + " # @warn \"Plots init\" exception=(e, catch_backtrace())\n", + "end\n", + "\n", + "# Initialize CairoMakie with default fig width/height\n", + "try\n", + " import CairoMakie\n", + "\n", + " # CairoMakie's display() in PDF format opens an interactive window\n", + " # instead of saving to the ipynb file, so we don't do that.\n", + " # https://github.com/quarto-dev/quarto-cli/issues/7548\n", + " if fig_format == :pdf\n", + " CairoMakie.activate!(type = \"png\")\n", + " else\n", + " CairoMakie.activate!(type = string(fig_format))\n", + " end\n", + " CairoMakie.update_theme!(resolution=(fig_width, fig_height))\n", + "catch e\n", + " # @warn \"CairoMakie init\" exception=(e, catch_backtrace())\n", + "end\n", + " \n", + "# Set run_path if specified\n", + "try\n", + " run_path = raw\"C:\\Users\\domma\\Dropbox\\Software\\CognitiveModels\\content\"\n", + " if !isempty(run_path)\n", + " cd(run_path)\n", + " end\n", + "catch e\n", + " @warn \"Run path init:\" exception=(e, catch_backtrace())\n", + "end\n", + "\n", + "\n", + "# emulate old Pkg.installed beahvior, see\n", + "# https://discourse.julialang.org/t/how-to-use-pkg-dependencies-instead-of-pkg-installed/36416/9\n", + "import Pkg\n", + "function isinstalled(pkg::String)\n", + " any(x -> x.name == pkg && x.is_direct_dep, values(Pkg.dependencies()))\n", + "end\n", + "\n", + "# ojs_define\n", + "if isinstalled(\"JSON\") && isinstalled(\"DataFrames\")\n", + " import JSON, DataFrames\n", + " global function ojs_define(; kwargs...)\n", + " convert(x) = x\n", + " convert(x::DataFrames.AbstractDataFrame) = Tables.rows(x)\n", + " content = Dict(\"contents\" => [Dict(\"name\" => k, \"value\" => convert(v)) for (k, v) in kwargs])\n", + " tag = \"\"\n", + " IJulia.display(MIME(\"text/html\"), tag)\n", + " end\n", + "elseif isinstalled(\"JSON\")\n", + " import JSON\n", + " global function ojs_define(; kwargs...)\n", + " content = Dict(\"contents\" => [Dict(\"name\" => k, \"value\" => v) for (k, v) in kwargs])\n", + " tag = \"\"\n", + " IJulia.display(MIME(\"text/html\"), tag)\n", + " end\n", + "else\n", + " global function ojs_define(; kwargs...)\n", + " @warn \"JSON package not available. Please install the JSON.jl package to use ojs_define.\"\n", + " end\n", + "end\n", + "\n", + "\n", + "# don't return kernel dependencies (b/c Revise should take care of dependencies)\n", + "nothing\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "1b3464b7", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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J510kgAAmJKM6vHzn//86quv/su//Ms//MM/vO+++9avX/+jH/1o7ty5GuEf//EfN23a9LnPfa65ufmWW24ZHBz8whe+oMkyY+HC4KmnBABOamlr0+RqaWs7sHOnxqelrU2vHqN6fOMb31i+fPnf/M3fNDU1LV68eOXKld3d3e973/s07OjRo/fdd9/1119/+eWXSyqVSh/96Ec//vGPL1y4UAAATD1GYxZF0RNPPNHR0dHU1CTp5JNPPuOMM5544on3ve99GpbP5/fs2XPuueeqor29PQzDZ599duHChZoU6WxWAOCqTC6nyZXJ5TRumVxOrx6jMSuVSi+99NIpp5yiYfPmzdu/f79GCILA87x58+apIpvNZjKZl156SSP8/d//vUZ4/PHHzznnnL6+Po1PFEVHwzAzZ84brrpq8NAhSf379mnY4d27BVTEcex5noCa4jiW5HmepqrZp52mYbNOOUVSes4cZTJHSyXb16dJEYWhMpk3XHXV4KFDkvr37dOww7t36/eZfdppGjbrlFMkpefMUSZztFSyfX0at8HBwVQqpXoY1SOKIh2rXC7rWHEca4S4QiMcOXLk6NGjGhaGYRzHQ0NDGp8oipRInH3zzd7QkIDqgiBorhBQ3ZEjR8IwzGazaihN6XScSAwNDWlyJBLn/O3fDg0Oanya0uk4kRgaGtK4xXGsOhmNmTFm1qxZ/f39GmatnT17tkZobm6WNDAwoIpSqRRF0YwZMzTChg0bNMKGDRskzZkzR+MTRZG1du78+cYYAdUlmptnVAiorlgshmGYy+WEhpLJZFQnozEzxixevPhXv/qVKsrl8p49e9797ndrhJNPPnnmzJnPP//8kiVLJO3du7dUKp166qkCAGBKMqrHxRdffMstt+zevfu0007bunXr7t27//iP/1jSD3/4Q2vt+eefv2DBgtWrVz/44INr1641xjz44INLly5dsmSJAACYkozqcfnll3d3d19yySVtbW2+73/iE59Yvny5pKeeeurOO+/ctWuXpJtvvvmDH/zg2rVrm5qa9u3b95WvfCWVSgkAgCnJqB7pdPpf//Vfn3jiiQMHDixevPjMM89UxcUXX/wnf/InJ510kqQzzjjj0UcfffLJJ4eGhpYvX75w4UIBADBVGdXJGHPuuefqWEuXLtUIc+fOveCCCwQAwJRnBACAw4wAAHCYEQAADjMCAMBhRgAAOMwIAACHGQEA4DAjAAAcZgQAgMOMAABwmNGrbdu2bZI2bNig8YnjuL+/f+bMmYlEQkB1R48eTVYIqK5UKg0NDTU3NwsNZdu2baqT0XRhrf3Zz362fPnybDYroLonnnhi3rx5Z5xxhoDqnnrqqSNHjqxevVqY7oxebdu2bdNEOHTo0FlnnfXVr3711FNPFVDde9/73ssrBFS3adOmnp6eDRs2CNOdEQAADjMCAMBhRgAAOMxoGvnzP/9zAcezdOlSAWMwf/58wQFG08WcOXM2bNgg4Hg2bNgg4HiuvfZawQ1GAAA4zAgAAIcZAQDgMCMAABxmNC3s2rXrS1/6ku/7p5122nXXXbds2TIBVTzzzDPXX3/9f/zHfyQSCQGjHD169F/+5V9+/OMfDw4Orlix4tprr/1//+//CdOXUePr7e39wAc+8KY3vemv/uqvvve971155ZU/+tGPTj75ZAHHiqLo5Zdf7urqOnTokIAqbr755kceeeSGG26YOXPmfffdt2PHju9///uzZ88Wpimjxvfwww+XSqUvfvGLuVxuzZo173jHOx5++OEPf/jDAo71gQ984L/+678OHjy4dOlSAb/P7373u82bN99xxx3vf//7JZ177rnveMc7tm3bdumllwrTlFHj27Fjx4oVK3K5nKRcLve2t73t8ccf//CHPyzgWLfffruk73//+9/4xjcE/D4vvfTSmWee+eY3v1kVr3nNa5qbmwcGBoTpy6jBxXG8f//+t7/97RrW1ta2ffv2OI49zxMwwute9zoBNZ1xxhmPPPKIKqIouv/++wcHB8855xxh+jJqfOVy2fM8jTA4OCgAGIcnn3zyjjvueOKJJ+68887FixcL05dRg/M8r7m5eWBgQMMGBgaam5s9zxMA1M9a+5nPfObLX/7yunXrHn300dNPP12Y1owa32mnnfbCCy9o2AsvvLB48WIBwCty8803b9++/Vvf+tZ5550nOMCo8V144YXXXnvtM88888Y3vvHXv/71//7v/959990CgPr5vv/AAw9s3rz59NNPf+mll1SRSqVmz54tTFNGje/CCy9cu3btn/3Zn73lLW/52c9+tnbt2osuukgAUL9nn3320KFDl112mUa49957L730UmGaMmp8yWTy3nvvfeyxx5577rnLL7987dq1yWRSQBXnnXdee3t7IpEQMEpbW9uPf/xjHWvOnDnC9GU0LaRSqYsuukjAGJxzzjkCqjjrrLMExxgBAOAwIwAAHGYEAIDDjAAAcJgRAAAOMwIAwGFGAAA4zAgAAIcZAQDgMCMAABxmBACAw4wAAHCYEQAADjMCAMBhRgAAOMwIAACH/X+KS3m4v0COQwAAAABJRU5ErkJggg==", + "text/html": [ + "" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#| code-fold: false\n", + "\n", + "using Downloads, CSV, DataFrames, Random\n", + "using Turing, Distributions, StatsFuns\n", + "using GLMakie\n", + "using SubjectiveScalesModels\n", + "\n", + "Random.seed!(123) # For reproducibility\n", + "\n", + "df = CSV.read(Downloads.download(\"https://raw.githubusercontent.com/DominiqueMakowski/CognitiveModels/main/data/makowski2023.csv\"), DataFrame)\n", + "\n", + "# Show 10 first rows\n", + "first(df, 10)\n", + "\n", + "# Plot the distribution of \"Disinhibition\"\n", + "hist(df.Disinhibition, normalization = :pdf, color=:darkred, bins=40)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "871050d2", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[36m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mFound initial step size\n", + "\u001b[36m\u001b[1m└ \u001b[22m\u001b[39m ϵ = 0.003125\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "\u001b[32mSampling: 82%|██████████████████████████████████ | ETA: 0:00:00\u001b[39m" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "\u001b[32mSampling: 100%|█████████████████████████████████████████| Time: 0:00:00\u001b[39m\n" + ] + }, + { + "data": { + "text/plain": [ + "Chains MCMC chain (400×14×1 Array{Float64, 3}):\n", + "\n", + "Iterations = 201:1:600\n", + "Number of chains = 1\n", + "Samples per chain = 400\n", + "Wall duration = 7.37 seconds\n", + "Compute duration = 7.37 seconds\n", + "parameters = σ, μ\n", + "internals = lp, n_steps, is_accept, acceptance_rate, log_density, hamiltonian_energy, hamiltonian_energy_error, max_hamiltonian_energy_error, tree_depth, numerical_error, step_size, nom_step_size\n", + "\n", + "Summary Statistics\n", + " \u001b[1m parameters \u001b[0m \u001b[1m mean \u001b[0m \u001b[1m std \u001b[0m \u001b[1m mcse \u001b[0m \u001b[1m ess_bulk \u001b[0m \u001b[1m ess_tail \u001b[0m \u001b[1m rhat \u001b[0m \u001b[1m e\u001b[0m ⋯\n", + " \u001b[90m Symbol \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m \u001b[0m ⋯\n", + "\n", + " σ 0.6187 0.0269 0.0014 395.1258 201.7491 1.0039 ⋯\n", + " μ 1.0627 0.0391 0.0018 495.6645 311.8955 0.9979 ⋯\n", + "\u001b[36m 1 column omitted\u001b[0m\n", + "\n", + "Quantiles\n", + " \u001b[1m parameters \u001b[0m \u001b[1m 2.5% \u001b[0m \u001b[1m 25.0% \u001b[0m \u001b[1m 50.0% \u001b[0m \u001b[1m 75.0% \u001b[0m \u001b[1m 97.5% \u001b[0m\n", + " \u001b[90m Symbol \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m\n", + "\n", + " σ 0.5681 0.5997 0.6173 0.6391 0.6723\n", + " μ 0.9798 1.0344 1.0647 1.0904 1.1342\n" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#| code-fold: false\n", + "#| output: false\n", + "\n", + "@model function model_Gaussian(x)\n", + "\n", + " # Priors\n", + " σ ~ truncated(Normal(0, 1); lower=0) # Strictly positive half normal distribution\n", + " μ ~ Normal(0, 3)\n", + "\n", + " # Iterate through every observation\n", + " for i in 1:length(x)\n", + " # Likelihood family\n", + " x[i] ~ Normal(μ, σ)\n", + " end\n", + "end\n", + "\n", + "# Fit the model with the data\n", + "fit_Gaussian = model_Gaussian(df.Disinhibition)\n", + "# Sample results using MCMC\n", + "chain_Gaussian = sample(fit_Gaussian, NUTS(), 400)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "00659d1c", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Mean of the data: 1.064 vs. mean from the model: 1.063\n", + "SD of the data: 0.616 vs. SD from the model: 0.619\n" + ] + } + ], + "source": [ + "println(\"Mean of the data: $(round(mean(df.Disinhibition); digits=3)) vs. mean from the model: $(round(mean(chain_Gaussian[:μ]); digits=3))\")\n", + "println(\"SD of the data: $(round(std(df.Disinhibition); digits=3)) vs. SD from the model: $(round(mean(chain_Gaussian[:σ]); digits=3))\")" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "b8c66cf4", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "400×242 Matrix{Float64}:\n", + " 1.87896 1.74269 0.579289 1.46626 … 1.88295 1.50169 1.44181\n", + " 1.09126 0.825007 0.417088 1.943 0.362718 1.1332 0.457766\n", + " 1.88099 1.03492 1.22157 1.20718 1.19812 1.253 2.88614\n", + " 0.709835 0.777187 0.320459 1.25192 1.55005 1.25615 2.03014\n", + " 0.71871 1.34485 -0.155216 1.52097 0.717123 0.648919 -0.24882\n", + " 0.698067 1.30413 1.15535 0.576725 … 1.44578 0.349072 0.82938\n", + " 1.16122 1.2214 0.386035 0.56494 0.51261 0.822139 1.36067\n", + " 0.309368 1.68091 1.34847 0.46689 1.21579 0.380718 1.14156\n", + " 0.889422 1.32731 0.66382 1.0916 1.90632 1.26181 0.614998\n", + " 0.699686 0.124487 1.45932 0.466457 1.73733 0.439634 2.13405\n", + " 0.842961 0.384929 0.368665 0.162651 … 0.747377 1.21857 1.98701\n", + " 0.397977 0.436404 1.87246 0.708039 1.04499 1.05683 1.7742\n", + " 1.81747 0.612219 0.562643 0.644842 1.7088 1.58653 0.831699\n", + " ⋮ ⋱ ⋮ \n", + " 1.44706 0.837304 0.520614 1.34582 0.677154 0.315256 0.74136\n", + " 1.45585 0.881104 1.31958 -0.130238 2.06861 1.99317 1.36411\n", + " 1.51458 1.45902 1.38462 1.7859 … 1.74101 1.21358 1.53174\n", + " 1.85991 0.98439 0.894672 1.12501 0.915842 0.542613 1.45163\n", + " 0.251837 0.125793 1.34296 1.32191 1.84905 1.09457 0.185232\n", + " 1.36216 0.275958 -0.00702115 0.219977 0.945843 0.923138 0.78315\n", + " 0.17504 1.16572 0.828693 0.750682 1.98755 0.668542 0.684638\n", + " 1.47218 1.72696 1.38812 0.926673 … 1.19508 2.48437 0.404958\n", + " 1.12248 0.579649 1.15273 1.13442 1.63423 2.38905 1.86201\n", + " 1.66844 1.37867 -0.0437109 0.988681 1.57544 0.19989 1.23621\n", + " 1.04603 1.69678 0.0808684 1.0015 0.493868 1.775 2.13612\n", + " 0.707157 1.19781 0.923073 0.524175 1.42194 0.626433 0.30829" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#| output: false\n", + "\n", + "pred = predict(model_Gaussian([(missing) for i in 1:length(df.Disinhibition)]), chain_Gaussian)\n", + "pred = Array(pred)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "6f30fe52", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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BRMwDMMwjBVMwDAMwzBWMAHDMAzDWMEEDMMwDGMFE/hpe/zxxwFMTk7inJckidbadV0MljzPkyQplUoYLFrrTqdTLpeJCIMlDEPHcYQQGCxxHBOR4zgYLFnB930MFqVUGIblchnnkscffxxnScB41Z566qk0TXft2oXBMjU19dJLL11xxRVEhAHS7Xa///3vb9++vVwuY7D867/+67p1684//3wMln/5l3+xLOuyyy7DYPnhD384Pz+/a9cuDJaFhYVnn312586dtm2jnwn8tD3++OPoE/fee+/x48cnJycxWL797W9/pMAYwwCZmZmZmJj4u7/7u9HRUQwQrfU///M/v+c977nyyisxWO64446RkZHf+Z3fwWD5+7//+4cffnhychKD5fnnn7/hhhvuuuuuUqmEfiZgGIZhGCuYgGEYhmGsYAKGYRiGsYIJGGejXC5jEO3atQuD6Nd//dcxiC6//HIMolKphAF10UUXYRC94x3vQP8TMF612267DYPoigIGzsjIyOTkJAYOEU1OTmIQTU5OYhD94i/+IgbRli1bJicn0f8EDMMwDGMFEzAMwzCMFUzAMAzDMFYwAcMwDMNYwQSMs5Sm6V/+5V/u27ev1+tt3779fe973/nnn48B8sEPfnBiYuKXfumX0M+efvrp+++//9ChQxdddNEHPvCBLVu2YIA8+eSTH//4xx966CEMivn5+U9+8pNPPvkkgF27dr3vfe+r1Wrof6dOnbr//vu/+93vEtFll132m7/5m/V6HQOk2+2+853vfPe73/3zP//z6FsCxln66Ec/+jd/8ze33357o9H44he/+I53vGPv3r3NZhP9L0mSZ5555qGHHpqYmEA/O3bs2M0337xjx47f/u3ffvjhh9/1rnd99atfHR4eRv+TUs7Ozn7uc5/r9XoYFFLK3/iN33j55ZdvvfXWLMvuv//+73//+3/7t38rhECfu+22255//vlbb71VSnnfffcdOnToC1/4AgbIxz72sX/8x39897vfjX4mYJyNpaWlBx988M477/y1X/s1AJdffvnOnTu//vWv33zzzehzP/zhD2+88cbp6enFxUX0uX/4h39wHOcTn/hEpVK5/PLLd+7c+cgjj9xyyy3of9dcc83BgwcXFhauuOIKDIqDBw8+9thjX/7yl9/0pjcB2Lp169VXX/2DH/zgkksuQT87duzYvn37vvjFL1511VUAqtXqrbfeOjs7u2rVKgyEf/qnf3r44Yc3bNiAPidgnI3FxcXNmzdfcsklKAwNDZXL5V6vh/63Zs2aL3/5y1rrt73tbehzTzzxxKWXXlqpVACsWrXqjW984/e+971bbrkF/e9Tn/oUgM9+9rPPPPMMBsXx48d37NixdetWFEZHRxljSZKgz/V6vTvuuGPjxo0oWJYlhCAiDISjR4/eeeedf/RHf3T77bejzwkYZ2PDhg179+5FQWv9wAMPzM3N7dixA/2vVCpt2LAhjmP0OaXU9PT0jh07sGx8fPy5557DQNiwYQMGzlsLKMRx/JnPfOa8887bsmUL+tzmAoB77733+PHjjz766G233dZsNtH/siy78847r7766t27d6P/CRiv5MSJE0tLSzgT53zTpk1EBODAgQN33333E088cc8997zuda9Dn2i1WsePH8eZiOiCCy6wbRsDQWud5zkR4TRJksA4533zm9+8++67p6am/uIv/qJer2NQzM3NtdttrfWxY8fyPBdCoM997nOfm56e/tSnPkVE6H8Cxis5dOjQpz/9aZzpyiuvXL9+PWPsnnvu+eQnP3nNNdd89atf3bZtG/rH9PT03XffHccxTrN+/frbb7+92WxiIDDGfN/v9XpYliSJ7/swzmELCwsf+tCHHnnkkVtuueXzn//8+Pg4BoLWmoj++I//GMBTTz21e/fu6667bteuXehnzz777H333fexj33sO9/5DgpRFO3du/eaa65BfxIwXkkQBL/wC7+AMzmOwxj7wz/8w6985SsPPPDArl270G9c17322mvx31iWhUFBRBdccMGLL76IZUeOHNm0aROMc1WWZbfeemu73f7a1762bds2DIovfelLf/7nf/7II48EQQDgwgsvLJfLCwsL6H++73/oQx9CYXZ29u677242m29729uICH1IwHgl27dvf8Mb3oAzEdHLL7+8Z8+ev/7rv962bdvc3BwKlmXVajX0g/Xr15933nn4bxhjGCBXX331Bz/4wcOHD19wwQXPPPPMU0899f73vx/GueqJwre+9a1GozE3N4dCuVx2XRf9bNOmTQcPHvzOd77z1re+FcC3v/3tTqezadMm9Llt27Y99dRTKMRxPDEx8ZGPfOT6668nIvQnAeNHYIzhv3nxxRfn5+dvvvlmnObee++9+eab0ScYYxh011133Ze+9KUbb7zx9a9//f79+2+44YY3v/nNMM5VBw4cOHXq1OWXX47T7Nu3b2JiAv1s27Zt73nPe37lV35l+/btSqmnn376tttue93rXof+J4RAgXOOghACfUvAOBujo6Pf/OY3caYgCDAobNves2eP7/voZ67r7tmz5xvf+MZ//ud/3nTTTW9+85s55xggN9xww/XXX49Bcemll37jG9/AmZrNJvrfn/zJn1x77bUHDx60LOujH/3oJZdcgsFi2/YXvvCFSqWCfiZgnI1t27ZhoDHGdu7cif7nuu61116LAbVjxw4MkB07dmBAEdGbChhQnPPLLrsMfU7AMAzDMFYwAcMwDMNYwQQMwzAMYwUTMAzDMIwVTMAwDMMwVjABwzAMw1jBBAzDMAxjBRMwDMMwjBVMwDAMwzBWMAHDMAzDWMEEDMMwDGMFEzAMwzCMFUzAMAzDMFYwAcMwDMNYwQQMwzAMYwUTMAzDMIwV7P8BDQd8OcJEfFcAAAAASUVORK5CYII=", + "text/html": [ + "" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "fig = hist(df.Disinhibition, normalization = :pdf, color=:darkred, bins=40)\n", + "for i in 1:length(chain_Gaussian)\n", + " density!(pred[i, :], color=(:black, 0.0), strokecolor = (:black, 0.1), strokewidth = 1)\n", + "end\n", + "fig" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "511d5da6", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "242-element Vector{Float64}:\n", + " 0.014\n", + " 0.456\n", + " 0.414\n", + " 0.15\n", + " 0.204\n", + " 0.236\n", + " 0.014\n", + " 0.5\n", + " 0.408\n", + " 0.308\n", + " 0.38799999999999996\n", + " 0.148\n", + " 0.19399999999999998\n", + " ⋮\n", + " 0.026\n", + " 0.62\n", + " 0.18400000000000002\n", + " 0.484\n", + " 0.586\n", + " 0.448\n", + " 0.104\n", + " 0.22\n", + " 0.023999999999999997\n", + " 0.41\n", + " 0.40599999999999997\n", + " 0.536" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#| code-fold: false\n", + "#| output: false\n", + "\n", + "function data_rescale(x; old_range=[minimum(x), maximum(x)], new_range=[0, 1])\n", + " return (x .- old_range[1]) ./ (old_range[2] - old_range[1]) .* (new_range[2] - new_range[1]) .+ new_range[1]\n", + "end\n", + "\n", + "# Rescale the variable\n", + "df.Disinhibition2 = data_rescale(df.Disinhibition; old_range=[0, 3], new_range=[0, 1])" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "70ca0547", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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Hnnk8ccfz7Ls537u5+68804z01udPHnyM5/5zLe+9a3t27d/+MMfPnDggIB18sorrzz00EPf/va3L7744o985CN79+7VW333u9/90pe+pHnuuOOOyy67TMD6ueWWW+66665SqaT/4c033/zc5z73T//0Tz09PTfffPMtt9yizma64Dz88MP333//Jz7xiTAMH3zwwbNnz5bLZc2TZdldd911+vTpX/u1XxsfH7/tttu+9rWv7d27V8Cam5qauuOOOzZt2nTPPfc8/fTTt9xyy9///d+/+93v1jzf+973/vzP//zKK6/UnNtvv13AOnnzzTe/+c1vPvnkk3fddZcW8qlPferv/u7vPvaxj50+ffree++VdMstt6iDmS4sU1NTX/ziF3/7t3/7N37jNySFYTg6Ovrrv/7rg4ODmvPss8+OjY09+eSTP/qjP/pLv/RL1Wq1Uqns3btXwJr7x3/8xyiK/vmf//myyy77+Z//+fHx8UcfffSBBx7QPMeOHbvsssueeOKJMAwFrKunn376rrvuevXVV8+ePauFHD9+/NFHH3344YdvvPFGSadOnfriF7/4i7/4i11dXepUpgvLsWPHvvvd7+7fv1+zSqXS2bNnX3rppfe9732a8/zzz//gD/7gu971Lkm5XO76669/+OGHm81mT0+PgLX1zDPP7N69+9JLL5XU09Ozf//+w4cPt9vtIAg05+WXX7700kuff/7506dPFwqFK6+8MggCAevhPe95zxNPPNFsNkulkhZy9OjRrq6uq6++WrMOHDjwyCOPnDhxYnh4WJ3KdGF57bXXcrncO9/5Ts16xzve0d3dfeLECc1z7Nix7du3d3d3a9bFF1986tSpRqPR09MjYG0dP358aGgoCALNuvTSSx977LFms5nP5zXnhRdeeO211+66667u7u6XXnrpF37hF/70T/+0u7tbwJrbOuvkyZNaxMTERH9//8DAgGYVCoUsy5IkGR4eVqcyXVjas4Ig0KwgCNrtdqvV0jwzMzOaJwiC6elpAethZmbGzDQnCIJms9lutzWn1Wo1m829e/f+/u//fk9Pz9NPP/2BD3ygVCrdeuutAjpPu92WFASB5szMzLRaLXUw04Wlt7dXUrPZ1Kzp6el2u71p0ybN09/fn6ap5kxNTfX09IRhKGDNbd68eWpqSnPeeOONfD5vZpqTy+W+9rWvac5111137bXXHj58+NZbbxXQeTZv3txqtdI07enpkeScy+Vy+XxeHcx0YRkaGgrD8Pjx45dddpmkycnJLMt27Nihea644orHH3+80Wj09fVJevnlly+++OLNmzcLWHNXXHHF17/+9SzLzEzSCy+8cNlll4VhqDnHjx//zne+s2fPnp07d2pWd3d3V1eXgI50ySWXnD179uTJk319fZKOHz/e19f3jne8Qx3MdGHZuXPne9/73scff3zfvn1BEPzt3/7tj8yS9Oyzz0r6iVlpSiawAAACX0lEQVRnz549fPjwDTfc8Prrrz/xxBM/9VM/1dXVJWDN7d+//9Of/vRzzz13zTXXnDhx4qmnnrr77rslHTt27MSJE0NDQ4ODg7/7u797++23/87v/E4QBFEUPf/88w888ICATvLss89K+omf+In3vOc927Zt+8Y3vnHPPfdkWfbYY4+VSqWtW7eqg5kuLLlcrlwuf+hDH5qcnAyC4Nlnn3344Yd7enpmZmbuvvvuyy+//Ktf/eoVV1zx0Y9+9CMf+cj73//+V155xczuvPNOAevh6quvvuOOOz70oQ9dc801//Vf//VDP/RDH/zgByUdP378+uuvf+qppy699NLfnfX000/39/cfOXLk/e9//0033SSgk3z2s5996aWXnnvuuYsuuuiTn/zkxz/+8W9961u1Wu2///u//+Zv/kadzXTBKZVK//AP/zA2NtZqtQ4ePPiud71LUi6X++M//mPN+cQnPnHttdf+53/+5w033HDgwIEtW7YIWCcPPvjgz/zMzxw9evTGG288cODA5s2bJW3fvv0b3/jG9u3bJd1222179ux55plnGo3G7bffft1115mZgPWzefPmr3/960NDQ5rz4Q9/WFJXV5ekm2++edeuXUeOHMnn8/v379+5c6c6m+lC9P/N0jxBEBw4cEDzXDtLwHrL5XLXzdI8u2ZpzpWzBHSGzZs37927V/McOHBA8/zYLG0QJgAAPGYCAMBjJgAAPGYCAMBjJgAAPGYCAMBjJgAAPGYCAMBjJgAAPGYCAMBjJgAAPGYCAMBjJgAAPGYCAMBjJgAAPGYCAMBj/xdfjrX9EwzguQAAAABJRU5ErkJggg==", + "text/html": [ + "" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Visualize\n", + "fig = hist(df.Disinhibition2, normalization = :pdf, color=:darkred, bins=40)\n", + "xlims!(-0.1, 1.1)\n", + "fig" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "c44d2d02", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "242-element Vector{Float64}:\n", + " 0.014000000000000215\n", + " 0.456\n", + " 0.41400000000000003\n", + " 0.15000000000000016\n", + " 0.20400000000000013\n", + " 0.2360000000000001\n", + " 0.014000000000000215\n", + " 0.5\n", + " 0.40800000000000003\n", + " 0.3080000000000001\n", + " 0.388\n", + " 0.14800000000000016\n", + " 0.19400000000000012\n", + " ⋮\n", + " 0.02600000000000021\n", + " 0.62\n", + " 0.18400000000000016\n", + " 0.484\n", + " 0.586\n", + " 0.448\n", + " 0.10400000000000018\n", + " 0.2200000000000001\n", + " 0.02400000000000021\n", + " 0.41000000000000003\n", + " 0.406\n", + " 0.536" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#| code-fold: false\n", + "#| output: false\n", + "\n", + "df.Disinhibition3 = data_rescale(df.Disinhibition; old_range=[0, 3], new_range=[eps(), 1 - eps()])" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "1380a4ed", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlgAAAHCCAIAAAC8ESAzAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAIABJREFUeAHswQl4TOf+B/DvOXPeTDIx2RPLoIKgaWily3SRWkrtWqJo3Wp60VLauZQuurfa/+V2ubrQVksrKaq1lFRogiFtdWiPqjHS1hZxGEoQxJt5MzN/z9wn94lLCEImM7/PR/F6vSCEEEKClQJCCCEkiCkghBBCgpgCQgghJIgpIIQQQoKYAkIIISSIKSCEEEKCmAJCCCEkiCkghBBCgpgCQgghJIgpIIQQQoKYAkIIISSIKSCEEEKCmAJCCCEkiCkghBBCgpgCQgghJIgpIIQQQoKYAkIIISSIKQgChYWFW7ZsQSUxMTGpqamhoaE4y4wZM4qKiuLj48eNG4dLtWXLlsLCQkmSevfuDT+QnZ2NShhj1113XePGjVFDli1bBqBPnz6SJMGnsLBQluUmTZrgLB6Px26379+/Pzo6OiUlxWAwwKeoqAiV6HS6Ro0a4UIKCwslSWratCnO4vV67Xb7vn37oqKiUlJSwsPD4VNUVIRKZFl2Op379u1r3bp1q1atQM5r1apVp06dQiVNmzZt27atJEk4y/PPP+/xeHr27JmWloZL4vV6v//++2PHjkVERNx55524DJs2bdqzZw+Ae+65B5dNVdWffvqpuLg4ISHh1ltvbdeuHfwA5zw3N1eW5d69e8PH5XLt37+/Xr16sbGxOEtRUREqYYw1aNAAF1JYWCjLcpMmTeCzd+9er9eLSiIiItatW6fX6++++27UBQqCwIkTJwYOHFhWVoYKiqJ07tx51qxZjRs3xplOnDjxf//3fy+88AIu1caNG/v06XPo0KEePXr07t0bfuCtt96yWq2oIElS48aNJ0+ePGzYMFTB6/WOGTPG6/WOGTMmJSUFVduwYcPDDz/8+uuvS5IEn99//71r165Dhgz517/+hTOVlpY+9thjX3311alTpxRFufXWWz/88MPk5OSjR4927Njx8OHDqPDiiy8++eSTOK8dO3Z07dq1d+/e77//Ps7EOR87duz8+fNLS0sVRbn55ptnzJjRrl2748eP33XXXQcOHECFp5566vHHH3/kkUeuvfbaOXPmyLIMUrXt27ePGjUKlYSHhw8fPvztt9/W6XQ404YNG/Ly8rp3745LNX369HHjxgF4880377zzTlyG4uLi/v379+jR45577sFlOHbs2FNPPZWVlVVaWgofo9E4YsSIf/7znyEhIahVs2bNev755/Py8lBh6dKlGRkZixYtuvvuu3Emp9NpNptPnjyJCm+++ebIkSNxXlu3bu3atevw4cMnT54Mn4kTJy5fvhwVbrzxxtWrV3/77bf5+fl5eXkNGzaE31MQHDweT0JCwoQJEwCUlpZ+/vnnubm506dPf+ONN1CJx+MxmUzTp083GAyoxO12y7IsSRLO4vV6JUlCJX/++efBgweHDRv22GOPoYLXR5ZlnIvb7dbpdLjCXnvtNb1eD2DHjh2ffPLJs88+27lz5yZNmsDH6/UCkCQJFTZt2vTLL7889thjqMTtdut0OlTwer1Tp06Ni4tLT0/3eDw5OTm///77Z599tnfvXpzLvHnzPv/887S0tNGjR69du/ajjz6aNGnS4sWLnU7ngQMH0tLSUA1er3f58uV//vnn559/vnv3bpzLggULPv3009tuu23s2LHr169///33n3322WXLlh08eNDpdN5+++2oJCIiYtSoUU888cSDDz7YvXt3kAvp0aNHly5dAOzdu/fjjz/+4IMPevXq1b17d1TweDyyLA8YMKB///56vR6VuN1unU6Hc3G73TqdDpWsX79eCDF79ux27dqhgtfrBSBJEs7F7XbrdDqci9frxWV7+umnP/7445YtW44aNaply5Z//PHHtGnT3nnnnUaNGk2YMAEVPB6PLMuoIIQAIEmSx+MpLS2tV6+eoigej+fEiROMsbCwMAAej8ftdgNgjB0/flyn0xkMBgClpaXl5eVGo1GSJFTi8XhkWUaFffv2vf3227169UpNTd27d+/PP/9ss9k++eSTkydP4lz27dt3+PDhzp07oxrKy8tXrFhRUFAwe/Zsp9OJCm63e9euXddee21UVBR8DAYDgEcffXTevHkzZsx49dVX4fcUBA1JkoYPHx4TEwMgLi5u7Nixv/zyy5EjR4YOHQrgpZdemjx58sCBA/fu3Wu322+66Sb4fPfdd59//vnu3bsjIiLuvvvuESNGGI3GXbt2jRkzRpKkp59+evLkyRMnTuzWrRt8Zs+evXfvXgBut9tqtZrN5mPHjn300Ud5eXmlpaUtWrTIyMjo3LkzgGeffXbz5s2dOnUqLS1du3ZtXl6eTqdDhZkzZy5evLhVq1b//ve/Abz33ns5OTkpKSlTp07FpUpMTBw6dCiAsrKyH374oaCg4NChQ02aNDl8+PC77767bt06r9d75513jh07Ni4u7sUXXywvL/d6vV9++eXhw4c7duw4Z86cr7/+2ul0xsbGduvWbcyYMaGhoTabbfny5RMmTIiLi3O5XE8//fSePXtQNavVCuDpp5/u3bt3p06dlixZsmHDhuLi4sLCQrfb/dxzz91xxx2SD6rmdruff/75HTt2oGrr1q0DMHHixP79+3fr1m3x4sUbN248dOjQnj17XC7XxIkTO3fuLPnAp2/fvq+//vqMGTPuvvtuSZJAzkuW5YkTJ8KnsLDwm2+++e233/R6/dSpUw0Gw6BBg95///1PPvlk/fr1LpfrxhtvBCCEmDNnzpIlS/7666/GjRsPHjz4vvvuAzB//vw5c+bEx8ffcccdn3322dKlS+Pi4uAzZcoUl8sFYO/eveXl5ampqQUFBdOnT9+8ebPX67355psfffTRVq1aeTye/v37CyFefPHFDz74ICEh4a233sKZVq9ePXfuXACHDh166623Hnroobi4OFy8n3/+OSsrKzo6Oisry2w2w6dly5YWi2XJkiVPPPFESEjIvHnzvvzyy/3790dGRnbu3Pnxxx8PCwsbPXr00aNH+/TpY7VaCwsLk5OTR4wY8cUXX2zatCkiIuL+++8fNGjQqlWrPvroI8bYjTfeuHLlyrCwsCFDhni93gULFpw4ceKmm26yWCyNGjU6duzYtGnT1q1bd+LECZPJ9MADD6SnpwOYP39+YWHh9OnTARw7duzvf/97eXm5y+VCFXbt2iVJ0uuvv96+fXvJB1UTQkyYMGHfvn1erxeVHD16VNO0YcOGvfbaawBkWYbPDTfc0KVLlzlz5owePbphw4bwbwqCkiRJAEJCQgBs2rSprKxs/PjxP//888CBA10u1/z582+44QYAixcvzsjIKCsra9euncPhWLFixaZNm2bPng1g7dq19evXf/TRR3ft2jVx4kRUOHz4cHZ2NoCtW7cWFxePHz9+5MiRX331VbNmzeLi4ubNm7d06dKsrKzevXt7vd6cnJy2bdtOmzbtuuuuw5m8Xm9OTk7z5s1RIScnp02bNrgMXq93w4YNXq+3oKBgz5497du3b9asmcvlGjly5JIlSzp06OD1el9//fVff/113rx5v/zyy4EDB9xud35+fpcuXTIzM4cPHx4XF5eYmLh169aVK1e6XK5nn332m2++KS8v79mzJ4CQkJCVK1cCmDt37lNPPYVzufPOO9PS0uLj4wF4fRhjsixv375dr9evXbv2hRdeiI6OfvDBBwcMGIAqKIqSnZ0NYNGiRU888QTO5bbbbrvlllsSEhIAeHwURZFleceOHYqibNiwYfLkyZGRkQ888MCgQYMANGjQIC0tLTs7e8eOHS1btgSpNlmWASiKAiAnJ6dz585jxoxxuVwAdu7c+eOPP44bNw7Aiy++OGXKlPj4+ObNm+fm5i5dutTpdD7++OMAcnJyhgwZMmHCBIPBgEq+//77HTt2AFi2bNk999yzY8eO9PR0h8PRrl07AG+//faqVau++eabJk2aHDhwYOPGjTExMV999dXYsWNxpmnTpk2aNKm0tBTARp8lS5ZkZWVdc801uEjff//9yZMnu3TpYjabUeHee+/t1q0bgJCQkIULF2ZkZERERDRv3vyPP/7Izc09ceLEq6++KoRYtGjRwYMHPR7P/v37165du2vXLk3T9Hq91Wrdvn17SkoKgJUrVyYmJm7btk2v11ut1oKCAkmS6tevv2PHjnXr1sXFxU2cOPGpp576+OOPW7VqFRkZuXLlyhUrVsTFxd1xxx2LFi1q3rz5rbfeCqB58+ZbtmwBkJGRkZeXh3P5448/jEbjN998M378+Pj4+IyMjD59+qAKYWFhq1atAjB79uwXXngBFZxOZ3Fxcf369fv06eNyubp37/7YY4+Fh4dLktS3b99vvvlm7dq1Q4YMgX9TEDS8Xu+cOXMAHDt27LPPPgPQsWNH+Bw5cqRz584ff/yxTqfbuXMnfMrLy995553jx49/+umnDz744M6dO/v16/fll18++uijjRo1ArB79+633nqre/fuBoMBFcaPH9+oUaOhQ4fecMMNn3zyyZo1axYtWnTDDTcsXrzYZDJ99NFHjz/++HvvvdezZ0/4fPfddytWrIiLi9PpdLhUQgidTifLMs7roYcego/H40lNTZ0+fXp0dPSqVauWLl3aq1evr7/+GsDQoUOXLFmyZs2a7OzsDh06OJ3O999/v23btoMGDUpJSXnjjTe6d++el5fXo0cPVVU9Hs+PP/7YoEGDNm3awMdkMuG8Ro4cCR/O+dSpUw8ePDh69Ojo6OitW7eWlJTMnDmzUaNGK1euXLFixRdffDFgwABUwWQy4byGDx8On7KysjfffHP//v3Dhw+Pi4vbunXryZMnp0+f3qRJk7y8vBUrVni93sGDBwMwm81ZWVm//fZby5YtQc7L7Xb/+9//BrB79+7ly5eHhoaazWaXywVg48aNH330UWpqanx8PCps3779448/TkhIWLZsWWpq6ooVK9LT0z/44IMHH3wQPmvWrMnMzGzdurXRaESFJUuWPPTQQ9u2bZswYUJ6evpLL73kcDgefvjhadOmARg1atRcn6effhqAx+ORJOmnn36SJAmVbNy48cUXX/R6vS+99NIrr7zSo0ePU6dOrV279rXXXvvkk09wJo/H43a7GWOowt69ewE0btwYPj/++OO8efNQ4f/+7/+ys7Ovvfba5557bsCAAT/++GOnTp1UVUWFDh06jBs3bs2aNRkZGQcOHMjMzIyMjHzwwQc3b968f/9++Oh0utmzZ8fExGRkZOTn57/99tsPPPDAF198MX78eIfDcfjwYVVV27dvv3Tp0oYNGz777LP/+te//vzzz8TERIfD0alTp4iICABhYWEmkwnn5XA4Dh06lJWVlZCQkJ2dvXLlyq+++qpHjx6ogslkwll2795dWlr6/PPPt23btrCwcNWqVUVFRe+++y6A1NRUxlh+fv6QIUPg3xQEjYMHD44bNw4+Op2uX79+f//73+ETHR39yCOPNG3aFJUcOnSooKDAZDL169dPUZRWrVp169bt/fff37p1a6NGjQBcc801f//73yMjI1GJLMuooNPpNm3a5Ha7e/Xq1axZMwD9+/d/5ZVXHA7HsWPH4JOent6pUydcKpfL9e23327atKlBgwY9evSIjY1dv359aGhop06dcJZHH31UlmUApaWlX3755YgRI7755pvNmze73W69Xv/oo48CYIx5PB6bzda7d29U8vnnn//6668bN25ctmzZr7/+Cp9Tp07t27cvKiqqXr16uBi7d+9+5plnvv7668GDB7/xxhsAGGNjxowZPXp069atP//88xEjRnz66af9+/eXJAmXYc+ePZMmTZo3b156evrUqVPhM2bMmJEjR6akpMybN+/BBx+cOXPmfffdJ8uyyWQCsGvXLpAL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0DQNVBsVFRVCCFSRJMlut2uahiqVlZV2u71v375z58719vbes2fPmDFjoqOj7733XlC9qqysRDWSJKmqqmkaGp4kSQAqKytBTpcuXQoLC5s0adKYMWMqKireeuutJ554YsCAAZqmAZAkCU6SJFVUVGiaBvotkiQBqHRCNZIkqaoK9yFwM3h7ewshysrK4FTh5Ovri2p8fX0rKiocDocQAkBZWZlerzcYDKDa8PX1LS0tRZUrV64YDAYhBKrodLpNmzahyqBBg/785z/v3bv33nvvBdWrZs2aORyOyspKnU4HoLS01MsJDcDHx0fTNFVV4WS32wH4+PiAnEJDQ3fs2AEnIcS4ceOWLl166NAhX1/fiooKh8MhyzIARVH0er23tzfIycfHR9M0VVXhZLfbAfj4+DRr1szhcGiaJkkSgNLSUi8vL1mW4SYEboYWTqdOnerbty+Aixcv5ufnt2vXDtW0b98+3yksLAxATk5O8+bNW7RoAaqNzp07b9myxeFwCCEAZGdnt2/fXpZlVMnNzT169Gj37t3DwsLg5OXlpdfrQfUtIiLi7bffLi4ubt68OYAff/wxNDTUz88PDSA0NNThcNhstqCgIACnT58WQgQHB4Oc9u7dW1JSMnjwYFmWAciyLJxMJtPFixfz8/NvueUWADk5OQEBAS1btgQ5hYaGOhwOm80WFBQE4PTp00KI4ODgiIiINWvWFBcXBwQEAPjxxx9NJpOfnx/chMDN4O/vP2DAgE2bNt11111eXl7bt2/38/Pr2bMngAMHDgDo3bv3n/70p4CAgB07djzwwAPl5eUffvhhTExMQEAAqDZiYmJSUlIsFku/fv3y8vLS0tIeeughAKdOncrLywsJCWnZsuU//vGPyZMnJyYmSpJ07Nixr776asmSJaB6cuDAAQC9e/fu1atXeXn5rl27Ro8efeXKlc2bNw8ePNjLywsNIDw8vFOnTps3b+7Ro4emaR999FGvXr3CwsJATn5+fmPGjFmzZs3QoUMB7Nq169KlS7fddltwcHCLFi22b98+depUVVU/+OCDAQMGNG/eHOQUHh7eqVOnzZs39+jRQ9O0jz76qFevXmFhYRUVFXa7fffu3X/7299KSko2b948ZMgQWZbhJgRuklmzZo0dO3b06NEtW7ZMT09fvHhxUFAQgCVLlly4cGHfvn2BgYHz5s178skn9+3bd+HChdOnT2/cuBFUS2az+b777psyZUq/fv2+//77Dh06jB8/HkBubm5sbGxaWlq7du3+4bRnzx4/P78vv/xy4MCBo0ePBtUHTdMSExMDAwM3b97crl27xMTEmTNnbtmy5cyZM4qizJgxAw3DYDDMmzdv2rRpx48ft9vt33777erVq3U6HcipZ8+ekyZNmjJlSv/+/VVVPXjw4Jw5c7p27QrgySeffOKJJ/bv33/hwoXTp09v2LABVMVgMMybN2/atGnHjx+32+3ffvvt6tWrdTpdhw4dZs6cmZCQ8PHHH58+fVpV1enTp8N9CNwkf/zjH7dv356enn7lypVHH300MjISTg8//DAASZIATJw48dZbb7VarT4+PoMGDQoNDQXVXnJy8rBhw7777ruRI0cOHjzY19cXQOvWrbdu3dq6dWsAEydO7N69e2ZmZklJyeTJkwcNGiSEAN2QwMDALVu2NG/eHE6SJCUlJaHKo48+ajabv/7662HDhsXGxrZq1QoNZvjw4Tt27MjMzNTpdCkpKR07dgRV8+yzzw4bNuzw4cOyLM+dO/f222+H04QJE2699dZDhw75+PgMHDjQZDLBg/n7+2/ZsqVNmzaoMnz48B07dmRmZup0upSUlI4dO8Jp1qxZvXv3/uabb4YNGxYbG9uqVSu4D4Gbx2QyjR8/Hr80ePBgVHObE6gOdDrdICdU08UJVXo6geosxAnVDB48GNX0cUKj6OoE+i06nW6gE34l0gkE+Pn59e3bF7/U1Qm/0tcJbkiAiIjIgwkQERF5MAEiIiIPJkBEROTBBIiIiDyYABERkQcTICIi8mAC5KrmzZt37NixtWvX+vj4oMorr7yyZ8+e1157LTAwEL9y+fLlKVOmJCYm9unTB/WtvLz8qaeeOnz48EsvvRQREQEi95GVlTV//vyJEyeOHDkSVfLy8h566KGhQ4c++OCD+C2LFi06c+bM66+/jgawY8eO119//Y9//OMzzzyDXzl79uyMGTOWLl3aqVMnUAMTIFc1dOjQl19++auvvoqOjoZTZWXlp59++oc//CEwMBA1+Oqrr9Awdu/e/c4777z44ou+vr4gciudO3cuKSlJTU0dOXIkquzfv3/fvn0pKSmoQUVFRXFxMRqAw+FISkqKjY3t3bs3avDll1+CGoUAuaqoqKguXbps2bIlOjoaTj/88MPBgwcfeeQROFVWVubn52ua5u/vbzQa8Uuqqur1ep1OBydVVWVZhlNFRUV+fr5Op2vdujVqUFxcXFpa6uvr6+fnB6fS0lJ/f/877rjDaDTil1RV1el0er0eTqqqyrIMIpeh1+tHjRr1zDPP5OXlhYSEwGnz5s29e/fu0KEDnIqLi0tLS4UQgYGB+CWHw6FpmizLcFJVVZIkIQScCgoK7HZ7QECAj48PfktFRUV+fr5OpwsKCpIkCUB5eXlRUVFUVNQdd9yB31JZWQlA0zRQwxMgV2UwGO68886NGzcuWLDAz88PQHp6emBgYJ8+fQAcP3585syZ3377bWVlZVBQUGJi4sSJE1GlvLy8f//+CxYsGD58OIDjx4+PGTPms88+a9Omzddff/3EE0988803Op0uJiYmOTk5NDQU1Wia9vzzz7/55puXL18OCAh44IEHHn300R07dixduvTixYuDBw9+++23IyIiUKWioqJ///6PPfZYfHw8gLy8vCFDhmzYsKFr164gchlDhw596qmn9uzZM3bsWAAXLlzIyMhYsGCBJEmapi1atOjdd98tKSnR6/UDBw5ctmxZ8+bNUWXFihVbt27dvn07nMaOHRsVFTV37lxVVRcvXvzuu++WlZW1adNm9uzZY8aMwS8dOnRozpw53333nV6vj4qKWrp0aVhYWFxc3MWLF1NSUjIyMpYuXYpqFEV56aWX3n333X//+9933nnn6NGjH3/88ebNm4MajAC5sBEjRrzwwgsWiyU2NlbTtC1btgwZMqRly5YAkpOTvb29P//8c6PRuHHjxqeffnrUqFGopqSkBNWcP38eQGFh4dSpU6OiopYtW1ZSUjJ79uyEhISNGzfqdDpUef/9959//vnly5f37dt33759jzzyyC233NKjR49HH3104cKFy5cvDwoKwi/Z7XZUk5+fDyIX0759+z//+c+pqaljx44FsH///rKyskGDBgHYv3//yy+//Oabb0ZFRf3444+TJk3aunXr+PHjUU1lZSV+5eWXX37//fdXrlzZqVOnjz/++O9//3vbtm179eqFKkVFRdOmTYuMjPzXv/5lt9uffPLJmTNnfvTRR88999y99947c+bM9u3boxpN0x577LG9e/fOnz9/5syZS5YsSUlJ+emnn9555x1ZlkENQ4Bc2K233hoZGblly5bY2NhTp04dOnQoISEBTkOGDPH19e3atSuAPn36LF++vKKiQq/X43dlZGRcuHBh4cKFQUFBABYvXnznnXeeOnWqQ4cOqLJhw4YxTgDGjh27a9eu999/Pz4+/ttvvwXQrVs3b29vELmhu+66KzEx8fTp02FhYZ988kl0dPQtt9wCoLy8/OWXX46Li9Pr9a1atQoODi4pKcG12O329957LzExcdCgQQBmzJjx2Wefbd26tVevXqhy4MCBc+fOzZs3LywsDMC8efNGjBhx/Pjxbt26AZBl+bbbbkM1X3311cdOoaGhALp16/bOO+/Exsbu3Llz+PDhoIYhQC5Mr9ePHj162bJlhYWF6enprVq1MpvNcBo8eHBqaupDDz106tSp3NxcTdNwHU6cOCFJ0pgxY1CltLT00qVLHTp0gFNFRUVOTs7w4cNRpWfPnm+99VZFRQWI3NzAgQNlWd69e3dcXNyePXv++c9/wmngwIG7d+9euHDhiRMncnNzs7OzcR2Kiopyc3PXOcGpuLg4NzcX1dhstuDg4DZt2sCpU6dOsizn5eV17NgRv+Wbb77puJeBigAABXNJREFU2LHjbbfddu7cOTiFh4f36tXr4MGDw4cPBzUMAXJtQ4cOTUpK2r9//+bNm4cOHerv7w9AUZRx48bp9fq77rprzJgxAMaPH4+a2e12TdMA6PX6kJCQJUuWoJqQkBBUo9frKyoqUEVVVSGEJEkgcnOtW7cePHhwampqYGCg3W4fMGAAnN5+++358+fff//9EyZMuOWWW6ZNm4bf5XA4AEiSJISYPXt28+bNUUWSJFQjSZLD4aisrISTqqoAdDodauDj42O32x0OB6qx2+2+vr6gBiNArq1Dhw7R0dGpqakWi2XWrFlwysnJOXz48O7du2+99VYAqampmqbhV8rKyuBktVorKioAdO/ePTk5OTg4uEOHDgDS09OXLVu2cuVKVNHr9d27d9+1a9eDDz6o0+kqKip2797dvXt3nU6H35WZmRkfHw/gwIEDV65cAZFLio+PnzRpUmho6IABA9q0aQOnzz777O67705KSgJQUlJSVlaGX1FVVdM0SZIuXLiQnZ3dp0+fFi1adOrU6ZtvvpkzZw6A8vLyCRMmREdH9+7dG1W6dOly9uzZ7777rmfPngAOHjxYWVnZrl071KB3796zZ8/+6KOPoqOj4fTZZ5/t379//vz5oAYjQC5vzJgx999/f3h4eFRUFJxatWrVokWLdevWxcTE/PDDD++++67dbt+xY8df//pXOMmy3LZt22XLlsmyfOHChdWrVxsMBgD9+vW7/fbbH3zwwSlTpiiK8sorrwwZMiQoKAjV/M///E98fHxiYmJ0dHR6errFYklNTcW1pKamGgyGwMDAlStXgshV9e3bNygoaO3atWvWrEGV8PDwbdu2paamSpK0fv16nU6XnZ39xRdfoIrJZLJarcuWLevcufO6det69+4NQAgxffr0xx57rLKyskuXLrt27fruu+9SUlJQTVRUVExMzPTp0x966KGysrIXXnjhnnvuadeund1ux2/p2LHj/PnzZ82aNWrUKE3TXn311Q8++GDWrFlRUVGgBiNALi8mJubuu+8OCwvz8fGBU2Bg4IoVK1599dX9+/fffvvtq1evXrNmzc6dO4cMGfKXv/wFgCRJzz///HNO4eHhL7300tq1awF4e3uvWrXqlVdeefvtt729ve+///4HHngAv9SvX7/169evWrXqhRdeaN++/YYNG3r16gWnHj16oAbPPPNMenr6jz/+uGTJkkOHDkmSBCLX4+fnN3r06DNnzkRHR6PK448/7nA4li9f3rJly/Hjx/v5+b311lvFxcVeXl6tW7cGMHLkyEWLFn3yySeff/752LFjs7OzjUYjgHvuucfb2/u9997bsWNH9+7d169f37ZtW1QjhFixYsWrr766du1anU43Y8aMqVOnwqlnz574LVOnTo2IiFi3bp2iKPn5+StWrLjjjjtADUmAXF5wcPCqVavwSwOdNE2TJAnA4sWL4bRq1So4denSZdWqVZqmSZIEIDIyEk5BQUFPPfWUpmmSJKEGA500TZMkCVVGOaEGQojXXnsNTiNHjgSRq3rqqafwS/7+/kuWLNE0TZIkOA0ePBjAsGHD4KTT6R5xwq+MdtI0TZIk/JZWrVrNnz9f0zRJklDF29v7vffeQw0GDhzYuXPnHTt2LFy4sFOnTqAGJkDuTJIk/C5JkvBbJEnCtUiSBCKPIUkSbpQkSfhdkiSBXJUAUZ0FBQWBiOpV27ZtQY1CgKhu9Hr9Z599BiKqP6Ghofv27dPpdKCGJ0BERK5Hp9OBGoUAERGRBxMgIiLyYAJEREQeTICIiMiDCRAREXkwASIiIg8mQERE5MEEiIiIPJgAERGRBxMgIiLyYAJEREQeTICIiMiDCRAREXmw/weL7b9SiAi+zAAAAABJRU5ErkJggg==", + "text/html": [ + "" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "fig = Figure()\n", + "ax1 = Axis(fig[1, 1], xlabel=\"Value of μ\", ylabel=\"Plausibility\", title=\"Prior for μ ~ Beta(1.25, 1.25)\", yticksvisible=false, yticklabelsvisible=false,)\n", + "band!(ax1, range(0, 1, length=1000), 0, pdf.(Beta(1.25, 1.25), range(0, 1, length=1000)), color=:red)\n", + "ylims!(0, 1.25)\n", + "ax1 = Axis(fig[1, 2], xlabel=\"Value of ϕ\", title=\"Prior for ϕ ~ Gamma(1.5, 15)\", yticksvisible=false, yticklabelsvisible=false,)\n", + "band!(ax1, range(0, 120, length=1000), 0, pdf.(Gamma(1.5, 15), range(0, 120, length=1000)), color=:blue)\n", + "fig" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "23132845", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[36m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mFound initial step size\n", + "\u001b[36m\u001b[1m└ \u001b[22m\u001b[39m ϵ = 0.2\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "\u001b[32mSampling: 67%|████████████████████████████ | ETA: 0:00:00\u001b[39m" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "\u001b[32mSampling: 100%|█████████████████████████████████████████| Time: 0:00:00\u001b[39m\n" + ] + }, + { + "data": { + "text/plain": [ + "Chains MCMC chain (500×14×1 Array{Float64, 3}):\n", + "\n", + "Iterations = 251:1:750\n", + "Number of chains = 1\n", + "Samples per chain = 500\n", + "Wall duration = 2.92 seconds\n", + "Compute duration = 2.92 seconds\n", + "parameters = μ, ϕ\n", + "internals = lp, n_steps, is_accept, acceptance_rate, log_density, hamiltonian_energy, hamiltonian_energy_error, max_hamiltonian_energy_error, tree_depth, numerical_error, step_size, nom_step_size\n", + "\n", + "Summary Statistics\n", + " \u001b[1m parameters \u001b[0m \u001b[1m mean \u001b[0m \u001b[1m std \u001b[0m \u001b[1m mcse \u001b[0m \u001b[1m ess_bulk \u001b[0m \u001b[1m ess_tail \u001b[0m \u001b[1m rhat \u001b[0m \u001b[1m e\u001b[0m ⋯\n", + " \u001b[90m Symbol \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m \u001b[0m ⋯\n", + "\n", + " μ 0.2746 0.0160 0.0009 315.7530 313.4341 0.9993 ⋯\n", + " ϕ 0.6889 0.0544 0.0032 289.4199 313.0454 1.0030 ⋯\n", + "\u001b[36m 1 column omitted\u001b[0m\n", + "\n", + "Quantiles\n", + " \u001b[1m parameters \u001b[0m \u001b[1m 2.5% \u001b[0m \u001b[1m 25.0% \u001b[0m \u001b[1m 50.0% \u001b[0m \u001b[1m 75.0% \u001b[0m \u001b[1m 97.5% \u001b[0m\n", + " \u001b[90m Symbol \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m\n", + "\n", + " μ 0.2459 0.2637 0.2736 0.2857 0.3049\n", + " ϕ 0.5882 0.6502 0.6890 0.7247 0.7988\n" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#| code-fold: false\n", + "#| output: false\n", + "\n", + "@model function model_Beta(x)\n", + " μ ~ Beta(1.25, 1.25)\n", + " ϕ ~ Gamma(1.5, 15)\n", + " \n", + " for i in 1:length(x)\n", + " x[i] ~ BetaPhi2(μ, ϕ)\n", + " end\n", + "end\n", + "\n", + "fit_Beta = model_Beta(df.Disinhibition3)\n", + "posteriors_Beta = sample(fit_Beta, NUTS(), 500)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "4368473a", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlgAAAHCCAIAAAC8ESAzAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAIABJREFUeAHtwQ2QXXV9P/73+Z7POffs3d1kd7N5WggkiMBAEYIC/UG0MQYEa2vHlmk7IiJFrFbRFgGFqWY6LdSn0Q7Q/toidoZfx4eCjpSqY7EFilAGLAhCyZMhz2F3s9nde/fe8/B9+Od/ndvZ7Wbv3bA3yd4979dLnHMgIiLKKwEREVGOCYiIiHJMQERElGMCIiKiHBMQERHlmICIiCjHBERERDkmICIiyjEBERFRjgmIiIhyTEBERJRjAiIiohwTEBER5ZiAiIgoxwQnyPr16wGsX78ec+acA+B5HogWIuccajzPA9FC5JwD4Hke5uzRRx8F8Oijj2LWBO1vYmKio6PD930QLVClUqm7uxtEC5S1tlqtdnV14UQQnCDr168HsGnTJszZgQMHent7C4UCiBYiY8z+/ftXrlzp+z6IFqIkSQ4dOrRixQrM2aZNm3CUBERERDkmICIiyjHB6/Xzn/+8WCyedtppqMmyTGuNSTo6OkBERDS/CV4Xa+2nP/3pG2644bTTTkPNN77xjT/7sz9DXU9Pz1NPPRUEAYiIiOYxwVEaHBx87rnnfvzjH//oRz+64YYbUPeLX/ziggsu+L3f+z3UKaVAREQ0vwmO0v79+++66y4AixcvxiRbt24944wz3vve94KIiKh9CI7Seeed9/DDD5fL5XPOOQd11tqdO3du2LDh6quvHh8fv/TSS6+//volS5aAiIhofhO0QqlU2rt377333nv11Venafr1r3/9iSee+Pa3v93R0YG6TZs2Pf3006irVqsXXnjh4OAg5mx4eFhrHYYhiBYiY8zw8LBfA6KFKE3T0dFRpRTmbGJiolgs4mgIWiHLsi9/+csXXHDB6tWrAaxbt+6yyy57/PHH3/nOd6LuV2tQd//99xcKhe7ubsxZpVLp6uoqFAogWoiMMRMTE93d3b7vg2ghSpJEa93d3Y05KxQKOEqCVujv73/ve9+LunPPPXf58uV79uzBJFdccQUm+c///E8AHR0dmLMoijo6OgqFAogWImNMFEUdHR2+74NoIVJKxXHc0dGBORMRHCVBKzz44IP333//fffd19fXB2B8fLxarS5btgxERETzm6AV1q1bd9ttt/3lX/7lRz7yEa31Pffcs3Tp0nXr1oGIiGh+E7xeK1euRN3y5cvvvvvuP/3TP/3Wt74F4Fd+5Vf+/u//vre3F0RERPOb4HXp6up68sknPc9D3WWXXfZrv/Zrr732mu/7y5cv930fRERE857g9VJKYaowDFetWgUiIqL2ISAiIsoxwYJga9CQUgpERERTCYiIiHJMQERElGMCIiKiHBMQERHlmICIiCjHBERERDkmICIiyjEBERFRjgmIiIhyTEBERJRjAiIiohwTEBER5ZiAiIgoxwREREQ5JiAiIsoxARERUY4JiIiIckxARESUYwIiIqIcExAREeWYgIiIKMcEREREOSYgIiLKMQEREVGOCYiIiHJMQERElGMCIiKiHBMQERHlmICIiCjHBERERDkmICIiyjEBERFRjgmIiIhyTEBERJRjAiIiohwTEBER5ZiAiIgoxwREREQ5JlgQtNa+76OhMAxBREQ0lYCIiCjHBERERDkmICIiyjHBgmBrQEREdJQEREREOSYgIiLKMQEREVGOCRaENE09z0NDURSBiIhoKgEREVGOCYiIiHJMQERElGOCBSFNU8/zQEREdJQEREREOSYgIiLKMQEREVGOCRYErbXv+yAiIjpKAiIiohwTEBER5ZiAiIgoxwTtzzl38OBBNLR8+XJrrVIKREREkwjan3MOzWitQURENI0gH4wxICIimkaQD3EcO+dAREQ0lWBBGB8fT9MUM1u0aBGIiIimEbQ/5xxmwTkHIiKiqQREREQ5JiAiIsoxwYIwMTGBhrTWnueBiIhoKsGC4JzzPA8zm5iYcM6BiIhoKgEREVGOCRYEa63v+5iZtRZERETTCBaENE2dc5hZGIYgIiKaRrAgOOfQkLUWRERE0wiIiIhyTND+nHPWWqUUZmatdc6BiIhoKsGCEMextRYzC8MQRERE0wgWBGstGnLOgYiIaBoBERFRjgkWBOec53mYmbUWRERE0wgWhCzLrLWYWaFQABER0TSCBcE5h4astSAiIppGQERElGOC9uecM8YopTAzY4xzDkRERFMJFoRKpWKMwcyiKAIREdE0ggXBWouGrLUgIiKaRkBERJRjgvbnnLPWep6HmRljnHMgIiKaSrAgVCqVLMsws46ODs/zQERENJVgQTDGoCFrrXMOREREUwmIiIhyTLAgGGM8z8PMtNbOORAREU0lWBBKpZJSKo5jzKCzs9PzPBAREU0laH/OOWNMmqaYmTHGOQciIqKpBERERDkmaH/OOWMMGtJaO+dAREQ0laD9eZ5XrVbTNMXMOjs7Pc8DERHRVIL255yz1qIha61zDkRERFMJiIiIckywIBhj0FCWZSAiIppGsCCUy+VKpYKZdXd3g4iIaBpB+3M1aMgY45wDERHRVAIiIqIcExAREeWYgIiIKMcEREREOSYgIiLKMQEREVGOCYiIiHJMQERElGOC1+vGG2/cuHHjb/7mb6LuW9/61gMPPJBl2ZVXXvkHf/AHIgIiIqL5TXD0siz72c9+9r3vfW/jxo2ou//++z/1qU/ddNNNHR0dd9555/Dw8O233w4iIqL5TXCUfvazn1133XW7d+8eHh5GXZIkd99998c+9rFbbrkFwKJFizZt2nTDDTcsXboURERE85jgKJ1yyin/+I//aK298sorUbd79+4tW7Zs3LgRNW9729sqlcqWLVuWLl0KIiKieUxwlHpryuUyJhkeHnbOrVixAjVLliyJoujAgQOY5IEHHsAkL7300hlnnFGpVDBncRw759CQc65arYKoDRljqtVqpVLxfR9EC1GSJNVqtVKpYM6yLBMRHA1BK7gapRRqPM9zzhljMMnPa1A3PDy8Zs2aiYkJzFmlUsEsTExMWGtB1G6MMZVKZWJiwvd9EC1EaZpWKpWJiQnMWZZlIoKjIWiFQqHgeV6SJKjJssw519HRgUk2bdqESTZt2gRg6dKlmLNyuex5HhryPK+/v79YLIKo3RhjtNZLly71fR9EC1GSJL7vL126FHNWLBZxlAStsGzZsjAMd+/efcYZZwB47bXXkiQZGBgAERHR/CZohYGBgYsuuui73/3uhg0bPM97+OGHV61addZZZ4GIiGh+E7SCUurTn/70Bz7wgauvvjoIgkceeeSuu+7q7OwEERHR/CZ4XcIw/Id/+Ife3l7UrVu37vvf//6///u/G2M+8YlPrF27FkRERPOe4HUJw/Dtb387pjqzBkRERO1DQERElGMCIiKiHBMQERHlmICIiCjHBERERDkmICIiyjEBERFRjgmIiIhyTEBERJRjAiIiohwTEBER5ZiAiIgoxwREREQ5JiAiIsoxARERUY4JiIiIckxARESUYwIiIqIcExAREeWYgIiIKMcEREREOSYgIiLKMQEREVGOCYiIiHJMQERElGMCIiKiHBMQERHlmICIiCjHBERERDkmICIiyjEBERFRjgmIiIhyTEBERJRjAiIiohwTEBER5ZiAiIgoxwREREQ5JiAiIsoxARERUY4JiIiIckxARESUYwIiIqIcExAREeWYgIiIKMcEREREOSYgIiLKMQEREVGOCYiIiHJMQERElGMCIiKiHBMQERHlmICIiCjHBERERDkmICIiyjEBERFRjgmIiIhyTEBERJRjAiIiohwTEBER5ZiAiIgoxwREREQ5JiAiIsoxARERUY4JiIiIckxARESUYwIiIqIcExAREeWYgIiIKMcEREREOSYgIiLKMQEREVGOCYiIiHJMQERElGMCIiKiHBMQERHlmICIiCjHBERERDkmICIiyjEBERFRjgmIiIhyTEBERJRjAiIiohwTEBER5ZiAiIgoxwREREQ5JiAiIsoxARERUY4JiIiIckxARESUYwIiIqIcExAREeWYgIiIKMcEREREOSYgIiLKMQEREVGOCYiIiHJMQERElGMCIiKiHBMQERHlmICIiCjHBLnhnLPWohmlFIiIKDcEueGcAxER0VQCIiKiHBMQERHlmICIiCjHBERERDkmICIiyjEBERFRjgmIiIhyTEBERJRjghY5ePBgHMeY5KSTTgIREdH8JmiR733vezfffLPneahZsWLFc889FwQBiIiI5jFBi2zbtu2KK674kz/5E9SJCIiIiOY3QYts27btnHPOWbt2rXPO930QERG1A0EraK137dq1bt269evXl0qliy666FOf+tQb3/hGTFKtVjFJlmVBEDjn0ArOOTTknNNaO+fQjHMORPOJmwREC5Grw4kgaIVSqbR///5/+7d/+8xnPpMkyd133/2BD3zg+9//fk9PD+o+//nPP/DAA6jr7+9/y1vecuDAAczZ0NCQcw4NeZ43Pj4+MTGBZpRSIJpPjDFDQ0Oe5/m+D6KFKE3T0dFRtEK5XO7s7MTRELRCGIYPPvjgG97wht7eXgBnnXXWW9/61scee+w973kP6q6qQd0999xTLBb7+/sxZ+Vy2fM8NOSc6+zsLBaLaEZEQDSfGGO01v39/b7vg2ghSpJEKdXf3485KxaLOEqCVujo6Fi7dq3v+6hZvXp1X1/f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MTFRqVRQl2WZc84YgznzlPr9z3zGA9HCZIwZHBxctmyZ7/ugNuEpZZxTSmHOrLW+5zlr0QqeUsY5pRTmE+dcuVw2xmDOnHM4SoJW6OjoAFCtVlGTpqm1tlgsYpJNmzZhkk2bNgHo7e3FnCVJ0tvbWygUQLQQGWM8kZUrV/q+D6KFKEkS3/d7e3sxZ1EU4SgJWmHlypWdnZ3bt28/66yzAOzZsydN01NOOQVERETzm6AVli9fvn79+m984xsbN24UkW984xtnn332WWedBSIiovlN0CK33377Nddcs3HjRt/39+7de99994VhCCIiovlN0CLnnHPOj370o2effdYYc/755w8MDICIiGjeE7TOkiVL3vnOd4KIiKh9CIiIiHJMQERElGMCIiKiHBMQERHlmICIiCjHBERERDkmICIiyjEBERFRjgmIiIhyTEBERJRjghPk0UcfBbBp0ybMWblc7ujo8H0fRAuRc65UKnV3d3ueB6KFyBhTrVa7urowZ48++iiOkqDNWWufffbZ008//eSTTwbRQlQul//rv/7rzW9+c3d3N4gWov3792/btu1tb3ubUgrHneAEefTRR9EKWut169Z96EMfuvjii0G0EB04cGDt2rXf/OY3V6xYAaKF6Omnn/7EJz7x2c9+VkRw3AmIiIhyTEBERJRjAiIiohwTtL8rrrgCRAvahz/8YRAtaFdccQVOEEGbE5FNmzaBaOFasWLFpk2bQLRwXVyDE0RARESUYwIiIqIcExAREeWYgIiIKMcE7WN8fPyrX/3qE0880d3d/f73v/+3fuu3MM0LL7xw1113bdmy5cwzz/zkJz959tlng6h97Ny58ytf+cpzzz13yimnfOQjH7nkkksw1Y4dO+677z5Mct11161ZswZEbeWv/uqvkiS55ZZbcCTfrInj+B3veMfHPvaxjo4OHEuC9nHTTTc9//zzN954486dO6+//vowDN/1rndhkr1791599dVvfvObP/7xj3/3u9+9+uqrf/jDHy5btgxE7aBSqVx33XXFYvHjH//4Y4899vu///s/+MEPzj77bEyyZ8+ev/u7v1u7di3qrr32WhC1jyzLtm7dev/991911VU4km9+85s33njjrbfe2tvb+6UvfWlwcPCLX/wijiVBm3jppZe+853vPPjgg+vXrwewe/fuv/3bv33Xu96FSR544AGl1Fe/+tXFixevX7/+0ksvfeihh66//noQtYN//dd/feWVV5544ok1a9b8xm/8xosvvnj//fffeeedmOTVV19ds2bNP//zPwdBAKJ2MzQ0dPnll+/bt+/gwYNXXXUVptFa//Vf//WHPvShm266CUBvb+9HP/rRG2+8cdWqVThmBG3i+eef7+npueCCC1Bz+eWX33zzzaOjoz09Pah74oknLr744sWLFwPo7++/6KKLfvKTn1x//fUgagdPPfXUOeecs3r1agCFQmH9+vWPP/64c87zPNRt37599erVzz777MGDBwcGBtauXet5HojaRG9v74MPPuic+8AHPoAj2b9//yuvvLJp0ybU/Oqv/qpS6uWXX161ahWOGUGb2L1795IlSzo7O1Fz0kknlcvl0dHRnp4e1Fhr9+3bd/7556PupJNOev7550HUJnbt2rVixQrP81CzevXqBx54IEmSKIpQt2XLlqGhoY9+9KNhGG7btu13fud37rrrrjAMQdQOROS0005zzmEGIyMjWuuBgQHU9Pb2dnV17d+/H8eSoE1YawF4nocaz/O01s45TKK1xiSe58VxDKI2YYwREdR5npckiXMOddbaJEkuueSSz3zmM4VC4bHHHrvqqqve+ta3Xn311SBaEJxz1lpMZYzBsSRoE11dXaZGKQWgWq2KSKFQQJ1SqlgsVqtV1MVxXCwWQdQmOjs7K5UK6iYmJqIoEhHUKaUefPBB1G3YsGHdunWPP/741VdfDaIFIYoipVQcx6jRWltri8UijiVBm3jDG95w4MCBkZGR5cuXA3j11Vf7+/sXL16MSU4//fTt27ejbseOHaeffjqI2sSZZ5750EMPaa1FBMCWLVvWrFkTBAHqdu3a9fOf//zcc89dtWoVasIw9H0fRAtFf39/V1fXzp07zz//fACDg4Pj4+OrVq3CsSRoExdccEGhUPjRj370/ve/P47jBx98cMOGDZ2dnePj4y+//HIUReeff/6VV175x3/8x1u3bn3jG9/48ssvP/PMMx/+8IdB1CbWr1//hS984emnn7700ksPHDjwyCOP/NEf/RGAV1999cCBAytWrOjr67vllluuvfbam266yfO8V1555dlnn73zzjtB1Oaef/75OI7PPvvs/v7+devWPfjgg+9+97t933/44YeXLVt27rnn4lgStImVK1d++tOfvv3223/84x8fOHBgaGjoK1/5CoCxsbErr7zyL/7iL84///x3v/vd3/nOd6666qq1a9c+88wz7373uy+//HIQtYmLL774uuuu++AHP3jppZf+93//92mnnfa+970PwK5duzZu3PjII4+sXr36lprHHnusu7v7mWeeefvb3/7e974XRG3uySefvP3221944YVFixbdfPPN73vf+377t3+7s7PzP/7jP7785S8vXrwYx5Kgfdxwww3nn3/+c889193d/Y53vGP58uUAurq6vv3tbxeLRQBhGH7ta1975JFHtm/f/ru/+7vveMc7fN8HUfv4/Oc/f+WVV7700kvvec97Lrvsss7OTgDLli37l3/5l2XLlgG45pprzj333KeeeqpcLl977bUbNmwQERC1Fc/zvvCFLwRBgLrzzjvv29/+dldXF4C1a9f+8Ic/fPTRR9M0veWWW8477zwcY4K2clENJunt7b3ssstQVygUfv3Xfx1E7UkptaEGk5xVg7q1NSBqZ5dccgkmufTSSzHJKaeccs011+B4ERAREeWYgIiIKMcEREREOSYgIiLKMQEREVGOCYiIiHJMQERElGMCIiKiHBMQERHlmICIiCjHBERERDkmICIiyjEBERFRjgmIiIhyTEBERJRjAiIiohz7/wBbsU5adEvnewAAAABJRU5ErkJggg==", + "text/html": [ + "" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pred = predict(model_Beta([(missing) for i in 1:nrow(df)]), posteriors_Beta)\n", + "pred = Array(pred)\n", + "\n", + "bins = range(0, 1, length=40)\n", + "\n", + "fig = hist(df.Disinhibition3, normalization = :pdf, color=:darkred, bins=bins)\n", + "for i in 1:length(posteriors_Beta)\n", + " hist!(pred[i, :], normalization = :pdf, bins=bins, color=(:black, 0.01))\n", + "end\n", + "fig" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "733684f0", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "232-element Vector{Float64}:\n", + " 0.014\n", + " 0.456\n", + " 0.414\n", + " 0.15\n", + " 0.204\n", + " 0.236\n", + " 0.014\n", + " 0.5\n", + " 0.408\n", + " 0.308\n", + " 0.38799999999999996\n", + " 0.148\n", + " 0.19399999999999998\n", + " ⋮\n", + " 0.026\n", + " 0.62\n", + " 0.18400000000000002\n", + " 0.484\n", + " 0.586\n", + " 0.448\n", + " 0.104\n", + " 0.22\n", + " 0.023999999999999997\n", + " 0.41\n", + " 0.40599999999999997\n", + " 0.536" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#| code-fold: false\n", + "#| output: false\n", + "\n", + "# Filter out extreme values\n", + "var_noextreme = df.Disinhibition2[(df.Disinhibition2 .> 0) .& (df.Disinhibition2 .< 1)]" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "59725db7", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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Dz/csmVLp06dEhISFi9e3LFjx5KSki+//DI2NrZt27YZGRkTJkw4efLkqFGjUOPHH39csWLFp59+2q1bt4sXL7711lvOzs5jx45FozZo0KB169ZdunRpwIABAI4cOdKnTx8nJycAH3/8sSiKJ0+etLKyiouL++ijj0aMGCGVSlFDp9OhloKCAgBVVVXTpk0LCQn55JNPtFrte++9N2fOnLi4OIZhUOPgwYNr167dtGlTt27dkpOTZ82a5enpGR4evmjRooULF3722WfOzs54lMlkQi0lJSV4zI0bN9asWfPpp5/26NHjwYMHU6ZM2bdv34QJE9asWTN06NBPP/1UEIT27du/++67cXFxrq6uGzduPHjw4M6dO/39/X/44YfZs2f7+vqGhIRUV1evX79+6tSprVq1wpNcuXJlzpw5S5cuHTp0aGZm5syZM21tbZcuXbpjx47vv//+66+/DgwM3LVr18GDB4cPHw5AEASYLV++3NXVdcuWLSaTadasWZ9//vnixYtXr179zjvvxMXFubm5CYIAsy1bthw9enTXrl3e3t47d+6cO3fu+fPn7e3tYTZgwACapmNjY7/99lsbGxuTyXTw4MEhQ4Z06tSpuLj4vffee/vtt4cPH15ZWblw4cIvv/zys88+A1BRUXHz5s2ffvrJaDROmjRp69atX3zxRUxMjJOT088//8zz/OzZs7ds2fLee+/FxMS8+eabmzdvdnd3X716dVJS0u7duz09Pffu3Ttr1qzmzZsHBgZqtdotW7a8+eabrVu3BpCTk1NYWLh///4//vhjypQpJSUlX375pSiKM2fOjI+PDwsL++6775KSkr777jtvb+/k5ORJkyaNHDkyOjpaIpFcvnx548aNcrlcq9XC7N13383NzT106JCtre327dunT5/+888/q9XqsrKylStXfvLJJ/7+/l9++eWaNWtGjx5ta2uLZ8SC+NNGjhz5+uuv//HHH8HBwcePHw8NDQ0ODgag1Wo3bdr0yiuvKJVKV1dXLy+vyspK/C+CIOzevXv69OkDBw6kKGrixImJiYkHDx7s378/avzbLDExMTg4GMDSpUsjIiKuXr0aEREBgKKo9u3b49nl5uaeOHHim2++6dChA4BFixbFxcWdPXt26NChgiCMGjUqIiICwKBBgzZt2mQ0GlFDKpVaW1sDYBjGw8MDAMMwixcv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", + "text/html": [ + "" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "xaxis = range(-10, 10, length=1000)\n", + "\n", + "fig = Figure()\n", + "ax1 = Axis(fig[1:2, 1], xlabel=\"Value of μ on the logit scale\", ylabel=\"Actual value of μ\", title=\"Logistic function\")\n", + "lines!(ax1, xaxis, logistic.(xaxis), color=:red, linewidth=2)\n", + "ax2 = Axis(fig[1, 2], xlabel=\"Value of μ on the logit scale\", ylabel=\"Plausibility\", title=\"Prior for μ ~ Normal(0, 3)\", yticksvisible=false, yticklabelsvisible=false,)\n", + "lines!(ax2, xaxis, pdf.(Normal(0, 3), xaxis), color=:blue, linewidth=2)\n", + "ax3 = Axis(fig[2, 2], xlabel=\"Value of μ after logistic transformation\", ylabel=\"Plausibility\", yticksvisible=false, yticklabelsvisible=false,)\n", + "lines!(ax3, logistic.(xaxis), pdf.(Normal(0, 3), xaxis), color=:green, linewidth=2)\n", + "fig" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "cb60f303", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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T506dU6cONGxY0cADx8+vHHjRkREBEpJS0tbvHjxkiVL4q1mzJhx/PjxPn36ALh06VJERASAI0eOjB07du3atdevXz916lRAQACAHTt24Hk1atTged5gMLRv3x7A/fv3x4wZM23aNFQ0FmUgEom2b98eHBwsk8nwihISErp16xYREYF/4Dhu06ZNhw8fZhimV69ePXr0gFV+fv7y5cvPnz/v4eExcODAkJAQ/Au//vrr8uXLN23ahBI3b95ctWrVrVu3GjRoMHz48GrVqsEqOzu7T58+np6e27ZtA0XZofx8FHN0xNuOENKnT58RI0Y0aNCgcePGsHJ1dZXL5Vu2bAkNDb158+b27dt1Ot3Bgwfff/99WIlEIl9f3/nz53Mcl5mZuWPHDpZlAbRr165u3bpxcXEff/yxRqP59ttve/bs6ejoiFJiY2P79u07YcKEkJCQn3/++dq1a7Nnz8bLffbZZ+fOnYuKigoJCTEYDD169MjOzv7+++/xvC5duixfvjw+Pj46Ovru3buLFy9OSkoSi8X4FwghOTk5y5YtGzhwIF4kODi4TZs28fHxsbGxFotl+fLlwcHBVatWxYv07t173bp1w4cP79Gjx7Vr1zZt2rRs2TKhUJiQkDBy5EixWOzv779ly5YOHTrgeQEBAVeuXJk5c2ZEREROTs7OnTtjYmKqV6/er1+/zz///PHjxyKRaPHixZGRkf7+/nK5fPPmzS1btrx58+b27dv1ev2BAwfCw8NhVb169b59+44aNWrkyJFKpXLTpk1SqTQoKAgVjUUZVLHCK+I47vLly/v37+/WrRteZN68eUuXLv3ss8+0Wu0nn3yi0+k++ugji8UycuTI27dvDx48+OrVq717905OTm7atCn+T3l5eRs2bMjPz0eJjIyMfv361apVq3v37rt37x4wYMD+/fsdHBwsFktiYmJcXNz+/ftBUfbp2TMUc3bGO6BDhw59+vSpWbOmSCSClZeX14oVK1auXHnixIng4OAtW7asWrUqNTU1LCzsgw8+AMAwzKJFi+bNm/f111/Xrl17/vz5mzdvBiCTyTZs2PDdd9+tXbtWKpWOHDly6NCheF6HDh22bt26fv36BQsW1KxZc+fOnUFBQbCqW7cu/sHd3X3nzp0bN248fPhwYWFheHj44MGDq1Wrhud5eHhs27ZtyZIl3333nbOz86JF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", + "text/html": [ + "" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "xaxis = range(-10, 10, length=1000)\n", + "\n", + "fig = Figure()\n", + "ax1 = Axis(fig[1:2, 1], xlabel=\"Value of ϕ on the log scale\", ylabel=\"Actual value of ϕ\", title=\"Exponential function\")\n", + "lines!(ax1, xaxis, exp.(xaxis), color=:red, linewidth=2)\n", + "xlims!(-10, 10)\n", + "ax2 = Axis(fig[1, 2], xlabel=\"Value of ϕ on the log scale\", ylabel=\"Plausibility\", title=\"Prior for ϕ ~ Normal(0, 2)\", yticksvisible=false, yticklabelsvisible=false,)\n", + "lines!(ax2, xaxis, pdf.(Normal(0, 2), xaxis), color=:blue, linewidth=2)\n", + "ax3 = Axis(fig[2, 2], xlabel=\"Value of ϕ after exponential transformation\", ylabel=\"Plausibility\", yticksvisible=false, yticklabelsvisible=false,)\n", + "lines!(ax3, exp.(xaxis), pdf.(Normal(0, 2), xaxis), color=:green, linewidth=2)\n", + "xlims!(-1, 20)\n", + "fig" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "603f8ac4", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[36m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mFound initial step size\n", + "\u001b[36m\u001b[1m└ \u001b[22m\u001b[39m ϵ = 0.4\n", + "\r", + "\u001b[32mSampling: 77%|████████████████████████████████ | ETA: 0:00:00\u001b[39m" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "\u001b[32mSampling: 100%|█████████████████████████████████████████| Time: 0:00:00\u001b[39m\n" + ] + }, + { + "data": { + "text/plain": [ + "Chains MCMC chain (500×14×1 Array{Float64, 3}):\n", + "\n", + "Iterations = 251:1:750\n", + "Number of chains = 1\n", + "Samples per chain = 500\n", + "Wall duration = 2.42 seconds\n", + "Compute duration = 2.42 seconds\n", + "parameters = μ, ϕ\n", + "internals = lp, n_steps, is_accept, acceptance_rate, log_density, hamiltonian_energy, hamiltonian_energy_error, max_hamiltonian_energy_error, tree_depth, numerical_error, step_size, nom_step_size\n", + "\n", + "Summary Statistics\n", + " \u001b[1m parameters \u001b[0m \u001b[1m mean \u001b[0m \u001b[1m std \u001b[0m \u001b[1m mcse \u001b[0m \u001b[1m ess_bulk \u001b[0m \u001b[1m ess_tail \u001b[0m \u001b[1m rhat \u001b[0m \u001b[1m e\u001b[0m ⋯\n", + " \u001b[90m Symbol \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m \u001b[0m ⋯\n", + "\n", + " μ -0.5528 0.0559 0.0026 445.8441 323.8611 1.0009 ⋯\n", + " ϕ 0.8529 0.0835 0.0043 378.5202 320.3967 1.0004 ⋯\n", + "\u001b[36m 1 column omitted\u001b[0m\n", + "\n", + "Quantiles\n", + " \u001b[1m parameters \u001b[0m \u001b[1m 2.5% \u001b[0m \u001b[1m 25.0% \u001b[0m \u001b[1m 50.0% \u001b[0m \u001b[1m 75.0% \u001b[0m \u001b[1m 97.5% \u001b[0m\n", + " \u001b[90m Symbol \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m\n", + "\n", + " μ -0.6550 -0.5936 -0.5527 -0.5116 -0.4463\n", + " ϕ 0.6803 0.7943 0.8553 0.9141 1.0070\n" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#| code-fold: false\n", + "#| output: false\n", + "\n", + "@model function model_Beta(x)\n", + " μ ~ Normal(0, 3) # On the logit scale\n", + " ϕ ~ Normal(0, 2) # On the log scale\n", + " \n", + " for i in 1:length(x)\n", + " x[i] ~ BetaPhi2(logistic(μ), exp(ϕ))\n", + " end\n", + "end\n", + "\n", + "# Refit\n", + "fit_Beta = model_Beta(var_noextreme)\n", + "posteriors_Beta = sample(fit_Beta, NUTS(), 500)" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "1da1f160", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
2×3 DataFrame
Rowparametersmeanvalues_raw
SymbolFloat64Float64
1μ-0.5528150.365211
2ϕ0.8528532.34633
" + ], + "text/latex": [ + "\\begin{tabular}{r|ccc}\n", + "\t& parameters & mean & values\\_raw\\\\\n", + "\t\\hline\n", + "\t& Symbol & Float64 & Float64\\\\\n", + "\t\\hline\n", + "\t1 & μ & -0.552815 & 0.365211 \\\\\n", + "\t2 & ϕ & 0.852853 & 2.34633 \\\\\n", + "\\end{tabular}\n" + ], + "text/plain": [ + "\u001b[1m2×3 DataFrame\u001b[0m\n", + "\u001b[1m Row \u001b[0m│\u001b[1m parameters \u001b[0m\u001b[1m mean \u001b[0m\u001b[1m values_raw \u001b[0m\n", + " │\u001b[90m Symbol \u001b[0m\u001b[90m Float64 \u001b[0m\u001b[90m Float64 \u001b[0m\n", + "─────┼───────────────────────────────────\n", + " 1 │ μ -0.552815 0.365211\n", + " 2 │ ϕ 0.852853 2.34633" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "params = DataFrame(mean(posteriors_Beta))\n", + "params.values_raw = [logistic(params.mean[1]), exp(params.mean[2])]\n", + "params" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "9822664e", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlgAAAHCCAIAAAC8ESAzAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAIABJREFUeAHswXuMbWldJ/zvetZv7bX3rtpVdS59bs3bdtNcOjgqBA2IGNqxxTCDEJiXmUjEOPqPkcSYECfcXuigQUSjoCQSMKBcBKIxgUicQSGMg/cWJspF+kLZffqcOpc6dapq71p7rfU8z+95K7tTpNp9zl6rujZ1atf6fj4SQgAREVFTCYiIiBpMQERE1GACIiKiBhMQERE1mICIiKjBBERERA0mICIiajABERFRgwmIiIgaTEBERNRgAiIiogYTEBERNZiAiIiowQREREQNJvgOu/feewHce++92LcQAoAoikB01IUQMBJFEYiOuhACgCiKsG9f/OIXAXzxi19EbYKnqt/vf/rTn37pS1966tQpHIiyLEMI7XYbRA3Q7/d7vR6IGqAoiiiK0jTFrSB4qt797ne/733v+9rXvoaJ7r33XgD3338/9m1zc9N7f+zYMRAddd77lZWVs2fPxnEMoqPu+vXrcRwvLCxg3+6//37skeAp+exnP/vHf/zHIQQQERHNMsHeLS8vv/GNb3z729/+C7/wCyAiIpplgj2y1r7lLW95xStecffdd+NGrl+/jl2Gw2G73VZV7JvuANFRpzuiKALRUaeqURSpKvYthIA9EuzR7/3e7129evX973//v/7rv+JG3vve9/7BH/wBdtx5553Pf/7zV1ZWsG/9fl9V8zwH0VHnvb9y5QqAOI5BdNRtbGwYY7a2trBvg8Fgfn4eeyHYi7/5m79573vf+8lPfjJJkhACAO/9cDjsdDrY8bMj2PFbv/Vbc3Nzp0+fxr51Oh3v/bFjx0B01HnvVfX06dNxHIPoqGu1WnEcLywsYN/m5uawR4K9eOCBB4qi+Mmf/EmMbG5u/siP/MjrXve6t7/97dhxxx13YJelpSUAIoJ9E5EoikQEREddFEUyEscxiI46EYnjWESwb8YY7JFgL17wghf80R/9EUa2trZe+9rXfvCDH2y1WiAiIppNgr14wQtegB3/8A//AODZz372uXPnQERENJsET1UURa9+9atBREQ0ywRP1Q+MgIiIaJYJiIiIGkxARETUYAIiIqIGExARETWYgIiIqMEEREREDSYgGlFVVDHG4LBSVdRgjAER0S4CIiKiBhMQERE1mICIiKjBBERERA0mICIiajABERFRgwmIiIgaTEBERNRgAiIiogYTEBERNZiAiIiowQREREQNJiAiImowARERUYMJiIiIGkxAM0tVUYMxBjWoKg6WMQZERLeagIiIqMEEREREDSYgIiJqMAEREVGDCYiIiBpMQERE1GACIiKiBhMQERE1mICIiKjBBERERA0mICIiajABERFRgwmIiIgaTEBERNRgAjrqVBU1qCqqqCpqEBFMj6qCiOg7RkBERNRgAiIiogYTEBERNZiAiIiowQREREQNJiAiImowARERUYMJiIiIGkxARETUYAIiIqIGExARETWYgIiIqMEEREREDSYgIiJqMAEREVGDCaiKqmJKjDGoQVUxPaqKGsqyRBURQQ2qihqcc6hBRFCDqqIGYwyIiHYREBERNZiAiIiowQREREQNJiAiImowARERUYMJiIiIGkxARETUYAIiIqIGExARETWYgIiIqMEEREREDSYgIiJqMAEREVGDCYiIiBpMQAdIVVGDqqIGYwxqyPMcNZRliSqqihpUFdMjIqjBOYcajDGYEmMMpkdVsYvuiKIIuxhjQERTJSAiImowARERUYMJiIiIGkxARETUYAIiIqIGExARETWYgIiIqMEEREREDSYgIiJqMAEREVGDCYiIiBpMQERE1GCCPVLVv/iLv/inf/qnVqv1whe+8MUvfjGIiIhmlmCP3vzmN3/sYx976Utfmuf5O9/5zl/5lV95/etfDyIiotkk2IvHHnvsD//wDz/wgQ/8xE/8BIB3vetd73//+3/2Z3+20+mAiIhoBgn24uLFi89//vOf+9znYuTZz372xsZGWZadTgfNVpYlahAR1FCWJWowxqCGPM9RQ1mWqOKcQw1LS0uoYTAYoIalpSXUkGUZalhYWEANqooq7XYbNagqalBV7KI7oijCLsYYENFUCfbihS984Z/92Z8B+Pu///vLly+///3vf+UrX7m4uIhdHn74Yexy7dq1Y8eOOeewb845771zDgdLVVHFOYfpcc6hBmMManDOoQbnHKo451CDcw41OOdQg3MONTjnUINzDjWoKqo451CDqqIGVcUu3ns3EkIA0VHnnAshOOewb6oaRRH2QvCU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", + "text/html": [ + "" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pred = predict(model_Beta([(missing) for i in 1:length(var_noextreme)]), posteriors_Beta)\n", + "pred = Array(pred)\n", + "\n", + "bins = range(0, 1, length=40)\n", + "\n", + "fig = hist(var_noextreme, normalization = :pdf, color=:darkred, bins=bins)\n", + "for i in 1:length(posteriors_Beta)\n", + " hist!(pred[i, :], normalization = :pdf, bins=bins, color=(:black, 0.01))\n", + "end\n", + "fig" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Julia 1.10.2", + "language": "julia", + "name": "julia-1.10" + }, + "language_info": { + "file_extension": ".jl", + "mimetype": "application/julia", + "name": "julia", + "version": "1.10.2" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/content/.jupyter_cache/global.db b/content/.jupyter_cache/global.db index e45e134c8a94b80e45d6ea2d1d5b277fa60da296..18e793b5330fab1dfeacd7bd2cc54bc9944035cc 100644 GIT binary patch delta 365 zcmZp8z}WDBae_3X*F+g-Mz4(tOZ=JTnF=Sf2UxQ(Jzy%_*r?5pr!4AZkBU}OuCkWRDEYcK?^?i`u` diff --git a/content/.quarto/cites/index.json b/content/.quarto/cites/index.json index 1fb4e88..e6ea4f7 100644 --- a/content/.quarto/cites/index.json +++ b/content/.quarto/cites/index.json @@ -1 +1 @@ -{"3a_scales.qmd":["makowski2023novel"],"5_individual.qmd":[],"references.qmd":[],"3b_choices.qmd":["wagenmakers2008diffusion","heathcote2012linear","theriault2024check"],"4_rt.qmd":["wagenmakers2008diffusion","heathcote2012linear","theriault2024check","lo2015transform","schramm2019reaction","balota2011moving","matzke2009psychological","hohle1965inferred","kieffaber2006switch","matzke2009psychological","schwarz2001ex","heathcote2004fitting","anders2016shifted"],"2_predictors.qmd":[],"4a_rt_descriptive.qmd":["wagenmakers2008diffusion","heathcote2012linear","theriault2024check","wiemann2023using","lo2015transform","schramm2019reaction","wagenmakers2005relation","limpert2001log","balota2011moving","matzke2009psychological","hohle1965inferred","kieffaber2006switch","matzke2009psychological","schwarz2001ex","heathcote2004fitting","anders2016shifted"],"1_introduction.qmd":[],"3_scales.qmd":["makowski2023novel"],"4b_rt_generative.qmd":[],"index.qmd":[],"4_1_Normal.qmd":["wagenmakers2008diffusion","theriault2024check","lo2015transform","schramm2019reaction"]} +{"2_predictors.qmd":[],"4_rt.qmd":["wagenmakers2008diffusion","heathcote2012linear","theriault2024check","lo2015transform","schramm2019reaction","balota2011moving","matzke2009psychological","hohle1965inferred","kieffaber2006switch","matzke2009psychological","schwarz2001ex","heathcote2004fitting","anders2016shifted"],"3_scales.qmd":["makowski2023novel"],"references.qmd":[],"index.qmd":[],"5_individual.qmd":[],"3b_choices.qmd":["wagenmakers2008diffusion","heathcote2012linear","theriault2024check"],"4_1_Normal.qmd":["wagenmakers2008diffusion","theriault2024check","lo2015transform","schramm2019reaction"],"4b_rt_generative.qmd":[],"3a_scales.qmd":["makowski2023novel"],"1_introduction.qmd":[],"4a_rt_descriptive.qmd":["wagenmakers2008diffusion","heathcote2012linear","theriault2024check","wiemann2023using","lo2015transform","schramm2019reaction","wagenmakers2005relation","limpert2001log","balota2011moving","matzke2009psychological","hohle1965inferred","kieffaber2006switch","matzke2009psychological","schwarz2001ex","heathcote2004fitting","anders2016shifted"]} diff --git a/content/.quarto/idx/2_predictors.qmd.json b/content/.quarto/idx/2_predictors.qmd.json index 033f143..7a2d64b 100644 --- a/content/.quarto/idx/2_predictors.qmd.json +++ b/content/.quarto/idx/2_predictors.qmd.json @@ -1 +1 @@ -{"title":"Predictors","markdown":{"headingText":"Predictors","containsRefs":false,"markdown":"\n![](https://img.shields.io/badge/status-not_started-red)\n\n## Categorical predictors (Condition, Group, ...)\n\n![](https://img.shields.io/badge/status-good_for_contributing-blue)\n\nIn the previous chapter, we have mainly focused on the relationship between a response variable and a single **continuous** predictor.\n\n- Contrasts, ...\n\n## Interactions\n\n![](https://img.shields.io/badge/status-good_for_contributing-blue)\n\nTodo. \n\n- Nested interactions (difference between R's formula `fac1 * fac2` and `fac1 / fac2` and how to specify that in Julia/Turing)\n- Use of the `@formula` macro to create the design matrix.\n\n## Ordered predictors (Likert Scales)\n\nLikert scales, i.e., ordered multiple *discrete* choices are often used in surveys and questionnaires. While such data is often treated as a *continuous* variable, such assumption is not necessarily valid. Indeed, distance between the choices is not necessarily equal. For example, the difference between \"strongly agree\" and \"agree\" might not be the same as between \"agree\" and \"neutral\". Even when using integers like 1, 2, 3, 4; people might implicitly process \"4\" as more extreme relative to \"3\" as \"3\" to \"2\".\n\n![](media/probability_perception.png)\n\n> The probabilities assigned to discrete probability descriptors are not necessarily equidistant (https://github.com/zonination/perceptions)\n\nWhat can we do to better reflect the cognitive process underlying a Likert scale responses? [Monotonic effects](https://cran.r-project.org/web/packages/brms/vignettes/brms_monotonic.html).\n\n- How to do Monotonic effects in Turing?\n\n## Non-linear Relationships\n\n![](https://img.shields.io/badge/status-good_for_contributing-blue)\n\n```{julia}\n#| code-fold: false\n\nusing Downloads, CSV, DataFrames, Random\nusing Turing, Distributions\nusing GLMakie\n\nRandom.seed!(123) # For reproducibility\n\ndf = CSV.read(Downloads.download(\"https://raw.githubusercontent.com/DominiqueMakowski/CognitiveModels/main/data/nonlinear.csv\"), DataFrame)\n\n# Show 10 first rows\nscatter(df.Age, df.SexualDrive, color=:black)\n```\n\n\n### Polynomials \n\nRaw vs. orthogonal polynomials.\n\n### Generalized Additive Models (GAMs)\n\nTodo. ","srcMarkdownNoYaml":""},"formats":{"html":{"identifier":{"display-name":"HTML","target-format":"html","base-format":"html"},"execute":{"fig-width":7,"fig-height":5,"fig-format":"retina","fig-dpi":96,"df-print":"default","error":false,"eval":true,"cache":true,"freeze":"auto","echo":true,"output":true,"warning":true,"include":true,"keep-md":false,"keep-ipynb":false,"ipynb":null,"enabled":null,"daemon":null,"daemon-restart":false,"debug":false,"ipynb-filters":[],"ipynb-shell-interactivity":null,"plotly-connected":true,"execute":true,"engine":"jupyter"},"render":{"keep-tex":false,"keep-typ":false,"keep-source":false,"keep-hidden":false,"prefer-html":false,"output-divs":true,"output-ext":"html","fig-align":"default","fig-pos":null,"fig-env":null,"code-fold":true,"code-overflow":"scroll","code-link":false,"code-line-numbers":false,"code-tools":false,"tbl-colwidths":"auto","merge-includes":true,"inline-includes":false,"preserve-yaml":false,"latex-auto-mk":true,"latex-auto-install":true,"latex-clean":true,"latex-min-runs":1,"latex-max-runs":10,"latex-makeindex":"makeindex","latex-makeindex-opts":[],"latex-tlmgr-opts":[],"latex-input-paths":[],"latex-output-dir":null,"link-external-icon":false,"link-external-newwindow":false,"self-contained-math":false,"format-resources":[],"notebook-links":true},"pandoc":{"standalone":true,"wrap":"none","default-image-extension":"png","to":"html","output-file":"2_predictors.html"},"language":{"toc-title-document":"Table of contents","toc-title-website":"On this page","related-formats-title":"Other Formats","related-notebooks-title":"Notebooks","source-notebooks-prefix":"Source","other-links-title":"Other Links","code-links-title":"Code Links","launch-dev-container-title":"Launch Dev Container","launch-binder-title":"Launch Binder","article-notebook-label":"Article Notebook","notebook-preview-download":"Download Notebook","notebook-preview-download-src":"Download Source","notebook-preview-back":"Back to Article","manuscript-meca-bundle":"MECA Bundle","section-title-abstract":"Abstract","section-title-appendices":"Appendices","section-title-footnotes":"Footnotes","section-title-references":"References","section-title-reuse":"Reuse","section-title-copyright":"Copyright","section-title-citation":"Citation","appendix-attribution-cite-as":"For attribution, please cite this work as:","appendix-attribution-bibtex":"BibTeX citation:","title-block-author-single":"Author","title-block-author-plural":"Authors","title-block-affiliation-single":"Affiliation","title-block-affiliation-plural":"Affiliations","title-block-published":"Published","title-block-modified":"Modified","title-block-keywords":"Keywords","callout-tip-title":"Tip","callout-note-title":"Note","callout-warning-title":"Warning","callout-important-title":"Important","callout-caution-title":"Caution","code-summary":"Code","code-tools-menu-caption":"Code","code-tools-show-all-code":"Show All Code","code-tools-hide-all-code":"Hide All Code","code-tools-view-source":"View Source","code-tools-source-code":"Source Code","tools-share":"Share","tools-download":"Download","code-line":"Line","code-lines":"Lines","copy-button-tooltip":"Copy to Clipboard","copy-button-tooltip-success":"Copied!","repo-action-links-edit":"Edit this page","repo-action-links-source":"View source","repo-action-links-issue":"Report an issue","back-to-top":"Back to top","search-no-results-text":"No results","search-matching-documents-text":"matching documents","search-copy-link-title":"Copy link to search","search-hide-matches-text":"Hide additional matches","search-more-match-text":"more match in this document","search-more-matches-text":"more matches in this document","search-clear-button-title":"Clear","search-text-placeholder":"","search-detached-cancel-button-title":"Cancel","search-submit-button-title":"Submit","search-label":"Search","toggle-section":"Toggle section","toggle-sidebar":"Toggle sidebar navigation","toggle-dark-mode":"Toggle dark mode","toggle-reader-mode":"Toggle reader mode","toggle-navigation":"Toggle navigation","crossref-fig-title":"Figure","crossref-tbl-title":"Table","crossref-lst-title":"Listing","crossref-thm-title":"Theorem","crossref-lem-title":"Lemma","crossref-cor-title":"Corollary","crossref-prp-title":"Proposition","crossref-cnj-title":"Conjecture","crossref-def-title":"Definition","crossref-exm-title":"Example","crossref-exr-title":"Exercise","crossref-ch-prefix":"Chapter","crossref-apx-prefix":"Appendix","crossref-sec-prefix":"Section","crossref-eq-prefix":"Equation","crossref-lof-title":"List of Figures","crossref-lot-title":"List of Tables","crossref-lol-title":"List of Listings","environment-proof-title":"Proof","environment-remark-title":"Remark","environment-solution-title":"Solution","listing-page-order-by":"Order By","listing-page-order-by-default":"Default","listing-page-order-by-date-asc":"Oldest","listing-page-order-by-date-desc":"Newest","listing-page-order-by-number-desc":"High to Low","listing-page-order-by-number-asc":"Low to High","listing-page-field-date":"Date","listing-page-field-title":"Title","listing-page-field-description":"Description","listing-page-field-author":"Author","listing-page-field-filename":"File Name","listing-page-field-filemodified":"Modified","listing-page-field-subtitle":"Subtitle","listing-page-field-readingtime":"Reading Time","listing-page-field-wordcount":"Word Count","listing-page-field-categories":"Categories","listing-page-minutes-compact":"{0} min","listing-page-category-all":"All","listing-page-no-matches":"No matching items","listing-page-words":"{0} words"},"metadata":{"lang":"en","fig-responsive":true,"quarto-version":"1.4.549","bibliography":["references.bib"],"julia":{"exeflags":["--project=@."]},"theme":"pulse","number-depth":3},"extensions":{"book":{"multiFile":true}}}},"projectFormats":["html"]} \ No newline at end of file +{"title":"Predictors","markdown":{"headingText":"Predictors","containsRefs":false,"markdown":"\n![](https://img.shields.io/badge/status-not_started-red)\n\n## Categorical predictors (Condition, Group, ...)\n\n![](https://img.shields.io/badge/status-good_for_contributing-blue)\n\nIn the previous chapter, we have mainly focused on the relationship between a response variable and a single **continuous** predictor.\n\n- Contrasts, ...\n\n## Interactions\n\n![](https://img.shields.io/badge/status-good_for_contributing-blue)\n\nTodo. \n\n- Nested interactions (difference between R's formula `fac1 * fac2` and `fac1 / fac2` and how to specify that in Julia/Turing)\n- Use of the `@formula` macro to create the design matrix.\n\n## Ordered predictors (Likert Scales)\n\nLikert scales, i.e., ordered multiple *discrete* choices are often used in surveys and questionnaires. While such data is often treated as a *continuous* variable, such assumption is not necessarily valid. Indeed, distance between the choices is not necessarily equal. For example, the difference between \"strongly agree\" and \"agree\" might not be the same as between \"agree\" and \"neutral\". Even when using integers like 1, 2, 3, 4; people might implicitly process \"4\" as more extreme relative to \"3\" as \"3\" to \"2\".\n\n![](media/probability_perception.png)\n\n> The probabilities assigned to discrete probability descriptors are not necessarily equidistant (https://github.com/zonination/perceptions)\n\n### Monotonic Effects\n\nWhat can we do to better reflect the cognitive process underlying a Likert scale responses? [Monotonic effects](https://cran.r-project.org/web/packages/brms/vignettes/brms_monotonic.html).\n\n- How to do Monotonic effects in Turing?\n\n```\nlibrary(brms)\n\nm <- brm(mpg ~ mo(gear), data = mtcars, refresh=0)\n\n# stancode(m)\nm\n```\n```\n Family: gaussian \n Links: mu = identity; sigma = identity \nFormula: mpg ~ mo(gear) \n Data: mtcars (Number of observations: 32) \n Draws: 4 chains, each with iter = 2000; warmup = 1000; thin = 1;\n total post-warmup draws = 4000\n\nRegression Coefficients:\n Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS\nIntercept 16.51 1.31 14.01 19.19 1.00 2106 2213\nmogear 3.88 1.02 1.81 5.86 1.00 2160 2315\n\nMonotonic Simplex Parameters:\n Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS\nmogear1[1] 0.84 0.13 0.52 0.99 1.00 2698 1862\nmogear1[2] 0.16 0.13 0.01 0.48 1.00 2698 1862\n\nFurther Distributional Parameters:\n Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS\nsigma 5.02 0.68 3.90 6.58 1.00 2850 2485\n\nDraws were sampled using sampling(NUTS). For each parameter, Bulk_ESS\nand Tail_ESS are effective sample size measures, and Rhat is the potential\nscale reduction factor on split chains (at convergence, Rhat = 1).\n```\n\n\n```{julia}\n#| code-fold: false\n\n# using Downloads, CSV, DataFrames, Random\n# using Turing, Distributions\n# using GLMakie\n# using LinearAlgebra\n\n# # Define the monotonic function\n# function monotonic(scale::Vector{Float64}, i::Int)\n# if i == 0\n# return 0.0\n# else\n# return length(scale) * sum(scale[1:i])\n# end\n# end\n\n# # Test\n# using RDatasets\n# data = dataset(\"datasets\", \"mtcars\")\n\n# # Response variable\n# y = data[!, :MPG]\n# x = data[!, :Gear]\n\n# # Number of observations\n# N = length(y)\n\n# # Length of simplex\n# Jmo = maximum(x)\n\n# # Prior concentration for the simplex (using a uniform prior for simplicity)\n# con_simo_1 = ones(Jmo)\n\n# # Turing Model Specification\n# @model function monotonic_model(y, x, N, Jmo, con_simo_1)\n# # Parameters\n# Intercept ~ Normal(19.2, 5.4)\n# simo_1 ~ Dirichlet(con_simo_1)\n# sigma ~ truncated(Normal(0, 5.4), 0, Inf)\n# bsp ~ Normal(0, 1)\n \n# # Linear predictor\n# mu = Vector{Float64}(undef, N)\n# for n in 1:N\n# mu[n] = Intercept + bsp * monotonic(simo_1, x[n])\n# end\n \n# # Likelihood\n# y ~ MvNormal(mu, sigma)\n# end\n\n# # Run the model\n# model = monotonic_model(y, x, N, Jmo, con_simo_1)\n# chain = sample(model, NUTS(), 1000)\n\n# # Display the results\n# display(chain)\n```\n\n\n\n## Non-linear Relationships\n\n![](https://img.shields.io/badge/status-good_for_contributing-blue)\n\n```{julia}\n#| code-fold: false\n\nusing Downloads, CSV, DataFrames, Random\nusing Turing, Distributions\nusing GLMakie\n\nRandom.seed!(123) # For reproducibility\n\ndf = CSV.read(Downloads.download(\"https://raw.githubusercontent.com/DominiqueMakowski/CognitiveModels/main/data/nonlinear.csv\"), DataFrame)\n\n# Show 10 first rows\nscatter(df.Age, df.SexualDrive, color=:black)\n```\n\n\n### Polynomials \n\nRaw vs. orthogonal polynomials.\n\n### Generalized Additive Models (GAMs)\n\nTodo. ","srcMarkdownNoYaml":""},"formats":{"html":{"identifier":{"display-name":"HTML","target-format":"html","base-format":"html"},"execute":{"fig-width":7,"fig-height":5,"fig-format":"retina","fig-dpi":96,"df-print":"default","error":false,"eval":true,"cache":true,"freeze":"auto","echo":true,"output":true,"warning":true,"include":true,"keep-md":false,"keep-ipynb":false,"ipynb":null,"enabled":null,"daemon":null,"daemon-restart":false,"debug":false,"ipynb-filters":[],"ipynb-shell-interactivity":null,"plotly-connected":true,"execute":true,"engine":"jupyter"},"render":{"keep-tex":false,"keep-typ":false,"keep-source":false,"keep-hidden":false,"prefer-html":false,"output-divs":true,"output-ext":"html","fig-align":"default","fig-pos":null,"fig-env":null,"code-fold":true,"code-overflow":"scroll","code-link":false,"code-line-numbers":false,"code-tools":false,"tbl-colwidths":"auto","merge-includes":true,"inline-includes":false,"preserve-yaml":false,"latex-auto-mk":true,"latex-auto-install":true,"latex-clean":true,"latex-min-runs":1,"latex-max-runs":10,"latex-makeindex":"makeindex","latex-makeindex-opts":[],"latex-tlmgr-opts":[],"latex-input-paths":[],"latex-output-dir":null,"link-external-icon":false,"link-external-newwindow":false,"self-contained-math":false,"format-resources":[],"notebook-links":true},"pandoc":{"standalone":true,"wrap":"none","default-image-extension":"png","to":"html","output-file":"2_predictors.html"},"language":{"toc-title-document":"Table of contents","toc-title-website":"On this page","related-formats-title":"Other Formats","related-notebooks-title":"Notebooks","source-notebooks-prefix":"Source","other-links-title":"Other Links","code-links-title":"Code Links","launch-dev-container-title":"Launch Dev Container","launch-binder-title":"Launch Binder","article-notebook-label":"Article Notebook","notebook-preview-download":"Download Notebook","notebook-preview-download-src":"Download Source","notebook-preview-back":"Back to Article","manuscript-meca-bundle":"MECA Bundle","section-title-abstract":"Abstract","section-title-appendices":"Appendices","section-title-footnotes":"Footnotes","section-title-references":"References","section-title-reuse":"Reuse","section-title-copyright":"Copyright","section-title-citation":"Citation","appendix-attribution-cite-as":"For attribution, please cite this work as:","appendix-attribution-bibtex":"BibTeX citation:","title-block-author-single":"Author","title-block-author-plural":"Authors","title-block-affiliation-single":"Affiliation","title-block-affiliation-plural":"Affiliations","title-block-published":"Published","title-block-modified":"Modified","title-block-keywords":"Keywords","callout-tip-title":"Tip","callout-note-title":"Note","callout-warning-title":"Warning","callout-important-title":"Important","callout-caution-title":"Caution","code-summary":"Code","code-tools-menu-caption":"Code","code-tools-show-all-code":"Show All Code","code-tools-hide-all-code":"Hide All Code","code-tools-view-source":"View Source","code-tools-source-code":"Source Code","tools-share":"Share","tools-download":"Download","code-line":"Line","code-lines":"Lines","copy-button-tooltip":"Copy to Clipboard","copy-button-tooltip-success":"Copied!","repo-action-links-edit":"Edit this page","repo-action-links-source":"View source","repo-action-links-issue":"Report an issue","back-to-top":"Back to top","search-no-results-text":"No results","search-matching-documents-text":"matching documents","search-copy-link-title":"Copy link to search","search-hide-matches-text":"Hide additional matches","search-more-match-text":"more match in this document","search-more-matches-text":"more matches in this document","search-clear-button-title":"Clear","search-text-placeholder":"","search-detached-cancel-button-title":"Cancel","search-submit-button-title":"Submit","search-label":"Search","toggle-section":"Toggle section","toggle-sidebar":"Toggle sidebar navigation","toggle-dark-mode":"Toggle dark mode","toggle-reader-mode":"Toggle reader mode","toggle-navigation":"Toggle navigation","crossref-fig-title":"Figure","crossref-tbl-title":"Table","crossref-lst-title":"Listing","crossref-thm-title":"Theorem","crossref-lem-title":"Lemma","crossref-cor-title":"Corollary","crossref-prp-title":"Proposition","crossref-cnj-title":"Conjecture","crossref-def-title":"Definition","crossref-exm-title":"Example","crossref-exr-title":"Exercise","crossref-ch-prefix":"Chapter","crossref-apx-prefix":"Appendix","crossref-sec-prefix":"Section","crossref-eq-prefix":"Equation","crossref-lof-title":"List of Figures","crossref-lot-title":"List of Tables","crossref-lol-title":"List of Listings","environment-proof-title":"Proof","environment-remark-title":"Remark","environment-solution-title":"Solution","listing-page-order-by":"Order By","listing-page-order-by-default":"Default","listing-page-order-by-date-asc":"Oldest","listing-page-order-by-date-desc":"Newest","listing-page-order-by-number-desc":"High to Low","listing-page-order-by-number-asc":"Low to High","listing-page-field-date":"Date","listing-page-field-title":"Title","listing-page-field-description":"Description","listing-page-field-author":"Author","listing-page-field-filename":"File Name","listing-page-field-filemodified":"Modified","listing-page-field-subtitle":"Subtitle","listing-page-field-readingtime":"Reading Time","listing-page-field-wordcount":"Word Count","listing-page-field-categories":"Categories","listing-page-minutes-compact":"{0} min","listing-page-category-all":"All","listing-page-no-matches":"No matching items","listing-page-words":"{0} words"},"metadata":{"lang":"en","fig-responsive":true,"quarto-version":"1.4.549","bibliography":["references.bib"],"julia":{"exeflags":["--project=@."]},"theme":"pulse","number-depth":3},"extensions":{"book":{"multiFile":true}}}},"projectFormats":["html"]} \ No newline at end of file diff --git a/content/.quarto/xref/15f266d2 b/content/.quarto/xref/15f266d2 index 1c7c10e..e8e45e6 100644 --- a/content/.quarto/xref/15f266d2 +++ b/content/.quarto/xref/15f266d2 @@ -1 +1 @@ -{"options":{"chapters":true},"headings":["brief-intro-to-julia-and-turing","installing-julia-and-packages","julia-basics","generate-data-from-normal-distribution","recover-distribution-parameters-with-turing","bayesian-linear-models","hierarchical-models"],"entries":[]} \ No newline at end of file +{"headings":["brief-intro-to-julia-and-turing","installing-julia-and-packages","julia-basics","generate-data-from-normal-distribution","recover-distribution-parameters-with-turing","bayesian-linear-models","hierarchical-models"],"options":{"chapters":true},"entries":[]} \ No newline at end of file diff --git a/content/.quarto/xref/1a47137c b/content/.quarto/xref/1a47137c index bbf8a95..fd15102 100644 --- a/content/.quarto/xref/1a47137c +++ b/content/.quarto/xref/1a47137c @@ -1 +1 @@ -{"entries":[],"options":{"chapters":true},"headings":["extracting-individual-parameters-from-mixed-models","population-informed-individual-bayesian-models","task-reliability"]} \ No newline at end of file +{"entries":[],"headings":["extracting-individual-parameters-from-mixed-models","population-informed-individual-bayesian-models","task-reliability"],"options":{"chapters":true}} \ No newline at end of file diff --git a/content/.quarto/xref/26afb962 b/content/.quarto/xref/26afb962 index 1d92e44..64b8a2c 100644 --- a/content/.quarto/xref/26afb962 +++ b/content/.quarto/xref/26afb962 @@ -1 +1 @@ -{"headings":["categorical-predictors-condition-group","interactions","ordered-predictors-likert-scales","non-linear-relationships","polynomials","generalized-additive-models-gams"],"options":{"chapters":true},"entries":[]} \ No newline at end of file +{"options":{"chapters":true},"entries":[],"headings":["categorical-predictors-condition-group","interactions","ordered-predictors-likert-scales","monotonic-effects","non-linear-relationships","polynomials","generalized-additive-models-gams"]} \ No newline at end of file diff --git a/content/.quarto/xref/26e6880e b/content/.quarto/xref/26e6880e index b9bdb02..a867a38 100644 --- a/content/.quarto/xref/26e6880e +++ b/content/.quarto/xref/26e6880e @@ -1 +1 @@ -{"headings":["the-data","gaussian-aka-linear-model","model-specification","posterior-predictive-check","scaled-gaussian-model","solution-1-directional-effect-of-condition","solution-2-avoid-exploring-negative-variance-values","solution-3-use-a-softplus-function","exponential-transformation","softplus-function","the-model","conclusion","the-problem-with-linear-models","shifted-lognormal-model","prior-on-minimum-rt","model-specification-1","interpretation","exgaussian-model","conditional-tau-tau-parameter","interpretation-1","shifted-wald-model","model-specification-2","model-comparison","shifted-lognormal-mixed-model"],"entries":[],"options":{"chapters":true}} \ No newline at end of file +{"headings":["the-data","gaussian-aka-linear-model","model-specification","posterior-predictive-check","scaled-gaussian-model","solution-1-directional-effect-of-condition","solution-2-avoid-exploring-negative-variance-values","solution-3-use-a-softplus-function","exponential-transformation","softplus-function","the-model","conclusion","the-problem-with-linear-models","shifted-lognormal-model","prior-on-minimum-rt","model-specification-1","interpretation","exgaussian-model","conditional-tau-tau-parameter","interpretation-1","shifted-wald-model","model-specification-2","model-comparison","shifted-lognormal-mixed-model"],"options":{"chapters":true},"entries":[]} \ No newline at end of file diff --git a/content/.quarto/xref/6cbe9151 b/content/.quarto/xref/6cbe9151 index d5b017d..4563769 100644 --- a/content/.quarto/xref/6cbe9151 +++ b/content/.quarto/xref/6cbe9151 @@ -1 +1 @@ -{"entries":[],"options":{"chapters":true},"headings":["preface","why-julia","why-bayesian","looking-for-coauthors"]} \ No newline at end of file +{"headings":["preface","why-julia","why-bayesian","looking-for-coauthors"],"entries":[],"options":{"chapters":true}} \ No newline at end of file diff --git a/content/.quarto/xref/a408ff3e b/content/.quarto/xref/a408ff3e index 78f03c5..8126257 100644 --- a/content/.quarto/xref/a408ff3e +++ b/content/.quarto/xref/a408ff3e @@ -1 +1 @@ -{"options":{"chapters":true},"entries":[],"headings":["evidence-accumulation","wald-distribution-revisited","drift-diffusion-model-ddm","linear-ballistic-accumulator-lba","other-models-lnr-rdm","including-random-effects","random-intercept","random-slopes","performance-tips","additional-resources"]} \ No newline at end of file +{"entries":[],"headings":["evidence-accumulation","wald-distribution-revisited","drift-diffusion-model-ddm","linear-ballistic-accumulator-lba","other-models-lnr-rdm","including-random-effects","random-intercept","random-slopes","performance-tips","additional-resources"],"options":{"chapters":true}} \ No newline at end of file diff --git a/content/2_predictors.qmd b/content/2_predictors.qmd index fe86dcb..f084b45 100644 --- a/content/2_predictors.qmd +++ b/content/2_predictors.qmd @@ -27,14 +27,119 @@ Likert scales, i.e., ordered multiple *discrete* choices are often used in surve > The probabilities assigned to discrete probability descriptors are not necessarily equidistant (https://github.com/zonination/perceptions) +### Monotonic Effects + What can we do to better reflect the cognitive process underlying a Likert scale responses? [Monotonic effects](https://cran.r-project.org/web/packages/brms/vignettes/brms_monotonic.html). - How to do Monotonic effects in Turing? +``` +library(brms) + +m <- brm(mpg ~ mo(gear), data = mtcars, refresh=0) + +# stancode(m) +m +``` +``` + Family: gaussian + Links: mu = identity; sigma = identity +Formula: mpg ~ mo(gear) + Data: mtcars (Number of observations: 32) + Draws: 4 chains, each with iter = 2000; warmup = 1000; thin = 1; + total post-warmup draws = 4000 + +Regression Coefficients: + Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS +Intercept 16.51 1.31 14.01 19.19 1.00 2106 2213 +mogear 3.88 1.02 1.81 5.86 1.00 2160 2315 + +Monotonic Simplex Parameters: + Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS +mogear1[1] 0.84 0.13 0.52 0.99 1.00 2698 1862 +mogear1[2] 0.16 0.13 0.01 0.48 1.00 2698 1862 + +Further Distributional Parameters: + Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS +sigma 5.02 0.68 3.90 6.58 1.00 2850 2485 + +Draws were sampled using sampling(NUTS). For each parameter, Bulk_ESS +and Tail_ESS are effective sample size measures, and Rhat is the potential +scale reduction factor on split chains (at convergence, Rhat = 1). +``` + + +```{julia} +#| code-fold: false + +# using Downloads, CSV, DataFrames, Random +# using Turing, Distributions +# using GLMakie +# using LinearAlgebra + +# # Define the monotonic function +# function monotonic(scale::Vector{Float64}, i::Int) +# if i == 0 +# return 0.0 +# else +# return length(scale) * sum(scale[1:i]) +# end +# end + +# # Test +# using RDatasets +# data = dataset("datasets", "mtcars") + +# # Response variable +# y = data[!, :MPG] +# x = data[!, :Gear] + +# # Number of observations +# N = length(y) + +# # Length of simplex +# Jmo = maximum(x) + +# # Prior concentration for the simplex (using a uniform prior for simplicity) +# con_simo_1 = ones(Jmo) + +# # Turing Model Specification +# @model function monotonic_model(y, x, N, Jmo, con_simo_1) +# # Parameters +# Intercept ~ Normal(19.2, 5.4) +# simo_1 ~ Dirichlet(con_simo_1) +# sigma ~ truncated(Normal(0, 5.4), 0, Inf) +# bsp ~ Normal(0, 1) + +# # Linear predictor +# mu = Vector{Float64}(undef, N) +# for n in 1:N +# mu[n] = Intercept + bsp * monotonic(simo_1, x[n]) +# end + +# # Likelihood +# y ~ MvNormal(mu, sigma) +# end + +# # Run the model +# model = monotonic_model(y, x, N, Jmo, con_simo_1) +# chain = sample(model, NUTS(), 1000) + +# # Display the results +# display(chain) +``` + + + ## Non-linear Relationships ![](https://img.shields.io/badge/status-good_for_contributing-blue) +It is a common misconception that "linear models" can only model straight relationships between variables. +In fact, the "linear" part refers to the relationship between the parameters (between the outcome varialbe and the predictors). + + + ```{julia} #| code-fold: false diff --git a/content/3a_scales.qmd b/content/3a_scales.qmd index 2a9bcc6..ce9658f 100644 --- a/content/3a_scales.qmd +++ b/content/3a_scales.qmd @@ -24,6 +24,7 @@ Note that altough it is usually computed as the average of items a 4-point Liker using Downloads, CSV, DataFrames, Random using Turing, Distributions, StatsFuns using GLMakie +using SubjectiveScalesModels Random.seed!(123) # For reproducibility @@ -87,23 +88,27 @@ pred = Array(pred) ```{julia} fig = hist(df.Disinhibition, normalization = :pdf, color=:darkred, bins=40) for i in 1:length(chain_Gaussian) - lines!(Makie.KernelDensity.kde(pred[i, :]), alpha=0.1, color=:black) + density!(pred[i, :], color=(:black, 0.0), strokecolor = (:black, 0.1), strokewidth = 1) end fig ``` -As we can see, the model assumes that the data is normally distributed, in a way that allows for negative values and values above 3, which **are not possible** because our variable is, **by design**, bounded between 0 and 3 (at it is the result of the mean of variables between 0 and 3). +::: {.callout-tip title="Code Tip"} +The plotting functions from the `Makie` package can take a tuple of a color and an alpha value (e.g., `color=(:red, 0.3)`) to set the transparency of the plotted elements. +::: + +As we can see, the model assumes that the data is normally distributed, in a way that allows for negative values and values above 3, which **are not possible** as our variable is - **by design** - bounded between 0 and 3 (at it is the result of the mean of variables between 0 and 3). The linear model might thus not be the best choice for this type of data. ## Rescaling Continuous variables can be trivially rescaled, which is often done to improve the interpretability of the results. -For instance, a *z*-score is a rescaled variable with a mean of 0 and a standard deviation of 1. +For instance, a *z*-score is a rescaled variable with a mean of 0 and a standard deviation of 1 that allows for an interpretation in terms of deviation from the mean. Importantly, rescaling variables does not change the variable's distribution or the absolute relationship between variables. -It does not alter the fundamental conclusions from an analysis, but can help with the interpretation of the results (or computational performance). +In other words, it does not alter the fundamental conclusions from an analysis, but can help with the interpretation of the results (or computational performance). -Two common rescalings are **standardization** (mean=0, SD=1) and **normalization** (range 0-1). -The benefits of standardization are the interpretation in terms of deviation (which can be compared across variables). +Two common rescalings are **standardization** (mean=0, SD=1) and **normalization** (to a 0-1 range). +The benefits of standardization are the interpretation in terms of the magnitude of deviation relative to its own sample (which can be compared across variables). The benefits of normalization are the interpretation in terms of **"proportion"** (percentage): a value of $0.5$ (i.e., $50\%$) means that the value is in the middle of the range. The latter is particularly useful for bounded variables, as it redefines their bounds to 0 and 1 and allows for a more intuitive interpretation (e.g., "Condition B led to an increase of 20% of the rating on that scale"). @@ -131,31 +136,18 @@ fig ## Modified Beta Distribution -One good potential alternative to linear models for bounded variables is to use a **Beta distribution** instead of a Gaussian distribution, as the Beta distribution is bounded between 0 and 1 (**not including them**). -Moreover, Beta distributions are powerful and can model a wide range of shapes, including normal-like distributions, but also uniformly spread data and data clustered at one or both ends. +One good potential alternative to linear models for bounded variables is to use a **Beta distribution** instead of a Gaussian distribution, as the Beta distribution is naturally bounded between 0 and 1 (**not including them**). +Moreover, Beta distributions are powerful and can model a wide variety of shapes, including normal-like distributions, but also uniformly spread data and data clustered at one or both ends. The Beta distribution is typically defined by two parameters, *alpha* $\alpha$ and *beta* $\beta$, which are the shape parameters. Unfortunately, these parameters are not very intuitive, and so we often use a "reparametrization" of the Beta distribution to define it by its mean *mu* $\mu$ and "precision" *phi* $\phi$ (referring to the narrowness of the distribution). This is particularly convenient in the context of regressions, as these parameters are more interpretable and can be directly linked to the predictors. -Here is the code to redefine a Beta distribution based on the mean *mu* $\mu$ and precision *phi* $\phi$, that converts them to the shape parameters *alpha* $\alpha$ and *beta* $\beta$. - -```{julia} -#| code-fold: false -#| output: false - -function BetaMuPhi(μ, ϕ) - return Beta(μ * ϕ, (1 - μ) * ϕ) -end -``` +We will use a reparametrization of the Beta distribution based on the mean *mu* $\mu$ and precision *phi* $\phi$, that converts them to the shape parameters *alpha* $\alpha$ and *beta* $\beta$. +You can find details about this reparametrization in the documentation of the [**BetaPhi2()**](https://dominiquemakowski.github.io/SubjectiveScalesModels.jl/dev/BetaPhi2/) function of the `SubjectiveScalesModels.jl` package. -::: {.callout-caution} -TODO: Replace if it is supported somewhere (e.g., [Distributions.jl](https://github.com/JuliaStats/Distributions.jl/issues/1877)) -::: +![](https://github.com/DominiqueMakowski/SubjectiveScalesModels.jl/blob/main/docs/img/animation_BetaPhi2.gif?raw=true) -Note that for this modified Beta distribution, the mean *mu* $\mu$ and precision *phi* $\phi$ can impact the distribution in suprising ways. - -![](media/scales_BetaMuPhi.gif) ## Beta Models @@ -175,7 +167,7 @@ df.Disinhibition3 = data_rescale(df.Disinhibition; old_range=[0, 3], new_range=[ For the priors, we will use a Beta distribution $Beta(1.25, 1.25)$ for *mu* $\mu$ that is naturally bounded at $]0, 1[$, peaks at 0.5, and assign less plausibility to extreme values. A Gamma distribution $Gamma(1.5, 15)$ for *phi* $\phi$ is a good choice for the precision, as it is naturally bounded at $]0, +\infty[$. -That said, as we demonstrate below, it is often more convenient to express *phi* $\phi$ on the log scale (making it more convenient to express priors). + ```{julia} @@ -183,9 +175,8 @@ fig = Figure() ax1 = Axis(fig[1, 1], xlabel="Value of μ", ylabel="Plausibility", title="Prior for μ ~ Beta(1.25, 1.25)", yticksvisible=false, yticklabelsvisible=false,) band!(ax1, range(0, 1, length=1000), 0, pdf.(Beta(1.25, 1.25), range(0, 1, length=1000)), color=:red) ylims!(0, 1.25) -ax1 = Axis(fig[1, 2], xlabel="Value of ϕ", ylabel="Plausibility", title="Prior for ϕ ~ Gamma(1.5, 15)", yticksvisible=false, yticklabelsvisible=false,) +ax1 = Axis(fig[1, 2], xlabel="Value of ϕ", title="Prior for ϕ ~ Gamma(1.5, 15)", yticksvisible=false, yticklabelsvisible=false,) band!(ax1, range(0, 120, length=1000), 0, pdf.(Gamma(1.5, 15), range(0, 120, length=1000)), color=:blue) -# ylims!(0, 0.06) fig ``` @@ -199,46 +190,53 @@ We can now fit a Beta model to the rescaled variable. ϕ ~ Gamma(1.5, 15) for i in 1:length(x) - x[i] ~ BetaMuPhi(μ, ϕ) + x[i] ~ BetaPhi2(μ, ϕ) end end fit_Beta = model_Beta(df.Disinhibition3) -chain_Beta = sample(fit_Beta, NUTS(), 500) +posteriors_Beta = sample(fit_Beta, NUTS(), 500) ``` ::: {.callout-note} -Note that it is also common to express *mu* $\mu$ on the logit scale. -In other words, the prior on *mu* $\mu$ can be specified using any unbounded distributions (e.g., $Normal(0, 1)$), which is convenient to set effect coefficients. -The resulting value is passed through a *logistic* function that transforms any values to the [0, 1] range (suited for *mu* $\mu$). -We will demonstrate this below. +Note that it is actually convenient to express the parameters with constraints such as a specific range or sign (e.g., positive) on **transformed** scales (e.g., the log scale) rather than the original scale. +We will demonstrate this better way of parametrizing a model below. ::: -Let us see make a posterior predictive check to see how well the model fits the data. +Let us see make a posterior predictive check to see how well the model fits the data. ```{julia} -pred = predict(model_Beta([(missing) for i in 1:nrow(df)]), chain_Beta) +pred = predict(model_Beta([(missing) for i in 1:nrow(df)]), posteriors_Beta) pred = Array(pred) -fig = hist(df.Disinhibition3, normalization = :pdf, color=:darkred, bins=40) -for i in 1:length(chain_Beta) - density!(pred[i, :], color=(:black, 0), strokecolor = (:black, 0.1), strokewidth = 3, boundary=(0, 1)) +bins = range(0, 1, length=40) + +fig = hist(df.Disinhibition3, normalization = :pdf, color=:darkred, bins=bins) +for i in 1:length(posteriors_Beta) + hist!(pred[i, :], normalization = :pdf, bins=bins, color=(:black, 0.01)) end fig ``` +::: {.callout-tip title="Code Tip"} +The distribution of bounded data is typically difficult to visualize. +Density plots will tend to be very distorted at the edges (due to the Gaussian kernel used), and histograms will be dependent on the binning. +One option is to specify the bin edges in a consistent way. +::: -It is... **quite terrible**. Why? +As we can see, the model produced a distribution that appears to be collapsed to the left, not reflecting the actual data. +The model fit appears **quite terrible**. Why? ## Excluding Extreme Observations One of the main issues is that, as you can se from the histogram, there is a high number of observations clumped at zero. -This creates a **bimodal** distribution which makes standard unimodal distributions fail to capture the data (note this issues is not addressed by linear models, which estimates will get biased by this configuration away from the actual "mean" of the variable). +This is a **very common and often overlooked issue** in psychological science, where participants tend to use the extreme values of the scale (0 and 1) more often than the intermediate values. +This creates a **bimodal** distribution which makes standard unimodal distributions fail to capture the data (note this issue is also present with linear models, which estimates will get biased by this configuration away from the actual "mean" of the variable). -One simple, although not ideal, solution is to **exclude extreme values** (zeros or ones). -Beyond the statistical sanitization benefits, one could argue that these "floor" and "ceiling" effects might correspond to a **different cognitive process** (this will be important in the later part of this chapter). +One simple, although not ideal, solution could be to **exclude extreme values** (zeros or ones). +Beyond the statistical sanitization benefits, one could argue that these "floor" and "ceiling" effects might correspond to a **different cognitive process** (this will be important in the latter part of this chapter). ::: {.callout-note} For instance, in the case of a bounded scale type of trials, participants might actually use a dual strategy in order to lower the cognitive load. @@ -258,13 +256,16 @@ var_noextreme = df.Disinhibition2[(df.Disinhibition2 .> 0) .& (df.Disinhibition2 ### Logit Link for *Mu* $\mu$ This time, we will add another trick to make the model more robust (note that this is a general improvement that we are introducing here but that is not related to the current issue at hand of the extreme values). -The current parameter *mu* $\mu$ is defined on the $]0, 1[$ range. Although this is not an issue in our model where we don't have any predictors, these types of bounded parameters can be a bit problematic in the context of regressions, where the effect of predictors can push the parameter outside of its bounds. +The current parameter *mu* $\mu$ is defined on the $]0, 1[$ range. +Although this is not an issue in our model where we don't have any predictors, these types of bounded parameters can be a bit problematic in the context of regressions, where the effect of predictors can push the parameter outside of its bounds. For example, imagine that the algorithm pics a value of $0.45$ for *mu* $\mu$ from the prior, and then picks a value of $+0.30$ for the effect of a potential predictor (e.g., an experimental condition). This would result in a value of $0.75$, which is outside the range of possible, and would make the model fail to converge. -One common solution (at the heard of the so-called **logistic models**) is to express *mu* $\mu$ on the logit scale using the **logistic** function (available in the `StatsFuns` package). -The logistic function is a simple transformation that maps any value (from the unbounded range $]-\infty, +\infty[$)) to the 0, 1 range. -We can now specify the prior for *mu* $\mu$ on the logit scale as a normal distribution (e.g., $Normal(0, 3)$) without worrying about the estimates going out of bounds. +One common solution (at the heard of the so-called **logistic models**) is to express *mu* $\mu$ on the logit scale, which transforms from a bounded [0, 1] range it to an unbounded $]-\infty, +\infty[$ range. +The priors on *mu* $\mu$ can then be specified using any unbounded distributions (e.g., $Normal(0, 3)$), without worrying about the estimates going out of bounds. +The parameter is then transformed back to the $]0, 1[$ range using the **logistic** function (available in the `StatsFuns` package) before being evaluated. + +The logistic function is a simple transformation that maps any value from the unbounded range $]-\infty, +\infty[$) back to the 0, 1 range. ```{julia} xaxis = range(-10, 10, length=1000) @@ -279,32 +280,15 @@ lines!(ax3, logistic.(xaxis), pdf.(Normal(0, 3), xaxis), color=:green, linewidth fig ``` -```{julia} -#| code-fold: false -#| output: false - -@model function model_Beta(x) - μ ~ Normal(0, 3) # On the logit scale - ϕ ~ Gamma(1.5, 15) - - for i in 1:length(x) - μ_norm = logistic(μ) # Normalize (0-1) the μ parameter - x[i] ~ BetaMuPhi(μ_norm, ϕ) - end -end +### Log Link for *Phi* $\phi$ -# Refit -fit_Beta = model_Beta(var_noextreme) -chain_Beta = sample(fit_Beta, NUTS(), 500) -``` +Similarly, because precision *phi* $\phi$ is a positive parameter that can go from 0 to big values, with a particular threshold value at `1` (where the distribution becomes flat), it is often more convenient to **express it on the log scale** to be able to set priors on effects without worrying about potential combinations of the parameters that would result in negative values of *phi* $\phi$, which would make the model fail to converge. -### Log Link for *Phi* $\phi$ +Having the parameter on the log scale simply means that **its value will be exponentiated** before being used in the Beta distribution (the log transformation being the *inverse* transformation of the exponential function). +Expressing *phi* $\phi$ on the log scale is convenient because we can set a $Normal$ prior centered around zero, which will result (after the exponential transformation) in a distribution peaking at 1 (which is a good prior for the precision parameter). -Because precision *phi* $\phi$ is a positive parameter that can go from 0 to big values, with a particular threshold value at `1` (where the distribution becomes flat), it is often more convenient to **express it on the log scale**. -This means that **the value will be exponentiated** before being used in the Beta distribution. -Similarly to above, **changing the link function** does not change the model *per se*, but it makes it more convenient to set priors and often makes the model more efficient. +Importantly, **changing the link function** of parameters does not change the model *per se*, but it makes it more convenient to set priors and often makes the model more efficient. -Expressing *phi* $\phi$ on the log scale is convenient because we can set a $Normal$ prior centered around zero, which will result (after the exponential transformation) in a distribution peaking at 1. ```{julia} xaxis = range(-10, 10, length=1000) @@ -321,7 +305,7 @@ xlims!(-1, 20) fig ``` -The final model is then: +Let us now refit the Beta model using these link functions. ```{julia} #| code-fold: false @@ -332,31 +316,43 @@ The final model is then: ϕ ~ Normal(0, 2) # On the log scale for i in 1:length(x) - x[i] ~ BetaMuPhi(logistic(μ), exp(ϕ)) + x[i] ~ BetaPhi2(logistic(μ), exp(ϕ)) end end # Refit fit_Beta = model_Beta(var_noextreme) -chain_Beta = sample(fit_Beta, NUTS(), 500) +posteriors_Beta = sample(fit_Beta, NUTS(), 500) ``` + +The only caveat is that we need to **transform the parameters back** to the original scale when interpreting the results. + +```{julia} +params = DataFrame(mean(posteriors_Beta)) +params.values_raw = [logistic(params.mean[1]), exp(params.mean[2])] +params +``` + + ### Conclusion Let us now make a posterior predictive check to see how well the model fits the data. ```{julia} -pred = predict(model_Beta([(missing) for i in 1:length(var_noextreme)]), chain_Beta) +pred = predict(model_Beta([(missing) for i in 1:length(var_noextreme)]), posteriors_Beta) pred = Array(pred) -fig = hist(var_noextreme, normalization = :pdf, color=:darkred, bins=40) -for i in 1:length(chain_Beta) - density!(pred[i, :], color=(:black, 0), strokecolor = (:black, 0.1), strokewidth = 3, boundary=(0, 1)) +bins = range(0, 1, length=40) + +fig = hist(var_noextreme, normalization = :pdf, color=:darkred, bins=bins) +for i in 1:length(posteriors_Beta) + hist!(pred[i, :], normalization = :pdf, bins=bins, color=(:black, 0.01)) end fig ``` -Removing the extreme values improved the fit. However, it is not a perfect solution. +Although removing the extreme values did improve the fit, it is not a perfect solution, as it neglects the importance of these values and the potential cognitive processes behind them. ## Ordered Beta Models diff --git a/content/3b_choices.qmd b/content/3b_choices.qmd index d8e8d29..be82905 100644 --- a/content/3b_choices.qmd +++ b/content/3b_choices.qmd @@ -1,4 +1,4 @@ -# Binary Data +# Binary Data and Choices ![](https://img.shields.io/badge/status-good_for_contributing-blue) @@ -68,4 +68,135 @@ This way, the effect of `Accuracy` will be expressed as a **log-odds** (i.e., th We will then convert this log-odds back to a probability using the **logistic function** which maps any value to the [0, 1] range. - \ No newline at end of file + + + + + + + + + + + + + + + + + + diff --git a/content/_freeze/2_predictors/execute-results/html.json b/content/_freeze/2_predictors/execute-results/html.json index 903d0ad..2a6c189 100644 --- a/content/_freeze/2_predictors/execute-results/html.json +++ b/content/_freeze/2_predictors/execute-results/html.json @@ -1,10 +1,10 @@ { - "hash": "7a915e1c476d6bb579bc3dd266a9223d", + "hash": "72395e8b9b408eb4eb682f66de1600e5", "result": { "engine": "jupyter", - "markdown": "# Predictors\n\n![](https://img.shields.io/badge/status-not_started-red)\n\n## Categorical predictors (Condition, Group, ...)\n\n![](https://img.shields.io/badge/status-good_for_contributing-blue)\n\nIn the previous chapter, we have mainly focused on the relationship between a response variable and a single **continuous** predictor.\n\n- Contrasts, ...\n\n## Interactions\n\n![](https://img.shields.io/badge/status-good_for_contributing-blue)\n\nTodo. \n\n- Nested interactions (difference between R's formula `fac1 * fac2` and `fac1 / fac2` and how to specify that in Julia/Turing)\n- Use of the `@formula` macro to create the design matrix.\n\n## Ordered predictors (Likert Scales)\n\nLikert scales, i.e., ordered multiple *discrete* choices are often used in surveys and questionnaires. While such data is often treated as a *continuous* variable, such assumption is not necessarily valid. Indeed, distance between the choices is not necessarily equal. For example, the difference between \"strongly agree\" and \"agree\" might not be the same as between \"agree\" and \"neutral\". Even when using integers like 1, 2, 3, 4; people might implicitly process \"4\" as more extreme relative to \"3\" as \"3\" to \"2\".\n\n![](media/probability_perception.png)\n\n> The probabilities assigned to discrete probability descriptors are not necessarily equidistant (https://github.com/zonination/perceptions)\n\nWhat can we do to better reflect the cognitive process underlying a Likert scale responses? [Monotonic effects](https://cran.r-project.org/web/packages/brms/vignettes/brms_monotonic.html).\n\n- How to do Monotonic effects in Turing?\n\n## Non-linear Relationships\n\n![](https://img.shields.io/badge/status-good_for_contributing-blue)\n\n::: {#052f952e .cell execution_count=1}\n``` {.julia .cell-code code-fold=\"false\"}\nusing Downloads, CSV, DataFrames, Random\nusing Turing, Distributions\nusing GLMakie\n\nRandom.seed!(123) # For reproducibility\n\ndf = CSV.read(Downloads.download(\"https://raw.githubusercontent.com/DominiqueMakowski/CognitiveModels/main/data/nonlinear.csv\"), DataFrame)\n\n# Show 10 first rows\nscatter(df.Age, df.SexualDrive, color=:black)\n```\n\n::: {.cell-output .cell-output-stderr}\n```\n┌ Warning: Found `resolution` in the theme when creating a `Scene`. The `resolution` keyword for `Scene`s and `Figure`s has been deprecated. Use `Figure(; size = ...` or `Scene(; size = ...)` instead, which better reflects that this is a unitless size and not a pixel resolution. The key could also come from `set_theme!` calls or related theming functions.\n└ @ Makie C:\\Users\\domma\\.julia\\packages\\Makie\\VRavR\\src\\scenes.jl:220\n```\n:::\n\n::: {.cell-output .cell-output-display execution_count=2}\n```{=html}\n\n```\n:::\n:::\n\n\n### Polynomials \n\nRaw vs. orthogonal polynomials.\n\n### Generalized Additive Models (GAMs)\n\nTodo. \n\n", + "markdown": "# Predictors\n\n![](https://img.shields.io/badge/status-not_started-red)\n\n## Categorical predictors (Condition, Group, ...)\n\n![](https://img.shields.io/badge/status-good_for_contributing-blue)\n\nIn the previous chapter, we have mainly focused on the relationship between a response variable and a single **continuous** predictor.\n\n- Contrasts, ...\n\n## Interactions\n\n![](https://img.shields.io/badge/status-good_for_contributing-blue)\n\nTodo. \n\n- Nested interactions (difference between R's formula `fac1 * fac2` and `fac1 / fac2` and how to specify that in Julia/Turing)\n- Use of the `@formula` macro to create the design matrix.\n\n## Ordered predictors (Likert Scales)\n\nLikert scales, i.e., ordered multiple *discrete* choices are often used in surveys and questionnaires. While such data is often treated as a *continuous* variable, such assumption is not necessarily valid. Indeed, distance between the choices is not necessarily equal. For example, the difference between \"strongly agree\" and \"agree\" might not be the same as between \"agree\" and \"neutral\". Even when using integers like 1, 2, 3, 4; people might implicitly process \"4\" as more extreme relative to \"3\" as \"3\" to \"2\".\n\n![](media/probability_perception.png)\n\n> The probabilities assigned to discrete probability descriptors are not necessarily equidistant (https://github.com/zonination/perceptions)\n\n### Monotonic Effects\n\nWhat can we do to better reflect the cognitive process underlying a Likert scale responses? [Monotonic effects](https://cran.r-project.org/web/packages/brms/vignettes/brms_monotonic.html).\n\n- How to do Monotonic effects in Turing?\n\n```\nlibrary(brms)\n\nm <- brm(mpg ~ mo(gear), data = mtcars, refresh=0)\n\n# stancode(m)\nm\n```\n```\n Family: gaussian \n Links: mu = identity; sigma = identity \nFormula: mpg ~ mo(gear) \n Data: mtcars (Number of observations: 32) \n Draws: 4 chains, each with iter = 2000; warmup = 1000; thin = 1;\n total post-warmup draws = 4000\n\nRegression Coefficients:\n Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS\nIntercept 16.51 1.31 14.01 19.19 1.00 2106 2213\nmogear 3.88 1.02 1.81 5.86 1.00 2160 2315\n\nMonotonic Simplex Parameters:\n Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS\nmogear1[1] 0.84 0.13 0.52 0.99 1.00 2698 1862\nmogear1[2] 0.16 0.13 0.01 0.48 1.00 2698 1862\n\nFurther Distributional Parameters:\n Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS\nsigma 5.02 0.68 3.90 6.58 1.00 2850 2485\n\nDraws were sampled using sampling(NUTS). For each parameter, Bulk_ESS\nand Tail_ESS are effective sample size measures, and Rhat is the potential\nscale reduction factor on split chains (at convergence, Rhat = 1).\n```\n\n::: {#8db4fa3d .cell execution_count=1}\n``` {.julia .cell-code code-fold=\"false\"}\n# using Downloads, CSV, DataFrames, Random\n# using Turing, Distributions\n# using GLMakie\n# using LinearAlgebra\n\n# # Define the monotonic function\n# function monotonic(scale::Vector{Float64}, i::Int)\n# if i == 0\n# return 0.0\n# else\n# return length(scale) * sum(scale[1:i])\n# end\n# end\n\n# # Test\n# using RDatasets\n# data = dataset(\"datasets\", \"mtcars\")\n\n# # Response variable\n# y = data[!, :MPG]\n# x = data[!, :Gear]\n\n# # Number of observations\n# N = length(y)\n\n# # Length of simplex\n# Jmo = maximum(x)\n\n# # Prior concentration for the simplex (using a uniform prior for simplicity)\n# con_simo_1 = ones(Jmo)\n\n# # Turing Model Specification\n# @model function monotonic_model(y, x, N, Jmo, con_simo_1)\n# # Parameters\n# Intercept ~ Normal(19.2, 5.4)\n# simo_1 ~ Dirichlet(con_simo_1)\n# sigma ~ truncated(Normal(0, 5.4), 0, Inf)\n# bsp ~ Normal(0, 1)\n \n# # Linear predictor\n# mu = Vector{Float64}(undef, N)\n# for n in 1:N\n# mu[n] = Intercept + bsp * monotonic(simo_1, x[n])\n# end\n \n# # Likelihood\n# y ~ MvNormal(mu, sigma)\n# end\n\n# # Run the model\n# model = monotonic_model(y, x, N, Jmo, con_simo_1)\n# chain = sample(model, NUTS(), 1000)\n\n# # Display the results\n# display(chain)\n```\n:::\n\n\n## Non-linear Relationships\n\n![](https://img.shields.io/badge/status-good_for_contributing-blue)\n\n::: {#8f315cea .cell execution_count=2}\n``` {.julia .cell-code code-fold=\"false\"}\nusing Downloads, CSV, DataFrames, Random\nusing Turing, Distributions\nusing GLMakie\n\nRandom.seed!(123) # For reproducibility\n\ndf = CSV.read(Downloads.download(\"https://raw.githubusercontent.com/DominiqueMakowski/CognitiveModels/main/data/nonlinear.csv\"), DataFrame)\n\n# Show 10 first rows\nscatter(df.Age, df.SexualDrive, color=:black)\n```\n\n::: {.cell-output .cell-output-display execution_count=3}\n```{=html}\n\n```\n:::\n:::\n\n\n### Polynomials \n\nRaw vs. orthogonal polynomials.\n\n### Generalized Additive Models (GAMs)\n\nTodo. \n\n", "supporting": [ - "2_predictors_files" + "2_predictors_files\\figure-html" ], "filters": [], "includes": { diff --git a/content/_freeze/3a_scales/execute-results/html.json b/content/_freeze/3a_scales/execute-results/html.json index f161f7a..782cc3c 100644 --- a/content/_freeze/3a_scales/execute-results/html.json +++ b/content/_freeze/3a_scales/execute-results/html.json @@ -1,8 +1,8 @@ { - "hash": "bb2c761aecc87d35e509c9c16375aa9b", + "hash": "7d8d40ec272d9bd3ef3aae3c12879591", "result": { "engine": "jupyter", - "markdown": "# Bounded Variables\n\n![](https://img.shields.io/badge/status-WIP-orange)\n\n\nWhile might be tempted to believe that most of the data that we collect in psychological science are true **continuous** variables, this is often not the case. \nIn fact, many variables are **bounded**: there values are delimited by hard bounds. \nThis is typically the case for slider (aka \"analog\" scakes), dimensions scores (average or sum) from multiple Likert scales, percentages, proportions, etc.\n\nMost psychometric indices are bounded. \nFor instance, the minimum and maximum values for the IQ test (WAIS-IV) are 45-155. It is 0 and 63 for the depression scale BDI-II, 20 and 80 for the STAI.\n\nDespite this fact, we still most often use **linear models** to analyze these data, which is not ideal as it assumes that the dependent variable is continuous and normally distributed.\n\n## The Problem with Linear Models\n\nLet's take the data from @makowski2023novel that contains data from participants that underwent the Mini-IPIP6 personality test and the PID-5 BF questionnaire for \"maladaptive\" personality.\nWe will focus on the **\"Disinhibition\"** trait from the PID-5 BF questionnaire. \nNote that altough it is usually computed as the average of items a 4-point Likert scales **[0-3]**, this study used analog slides to obtain more finer-grained scores.\n\n::: {#ea8a89be .cell execution_count=1}\n``` {.julia .cell-code code-fold=\"false\"}\nusing Downloads, CSV, DataFrames, Random\nusing Turing, Distributions, StatsFuns\nusing GLMakie\n\nRandom.seed!(123) # For reproducibility\n\ndf = CSV.read(Downloads.download(\"https://raw.githubusercontent.com/DominiqueMakowski/CognitiveModels/main/data/makowski2023.csv\"), DataFrame)\n\n# Show 10 first rows\nfirst(df, 10)\n\n# Plot the distribution of \"Disinhibition\"\nhist(df.Disinhibition, normalization = :pdf, color=:darkred, bins=40)\n```\n\n::: {.cell-output .cell-output-stderr}\n```\n┌ Warning: Found `resolution` in the theme when creating a `Scene`. The `resolution` keyword for `Scene`s and `Figure`s has been deprecated. Use `Figure(; size = ...` or `Scene(; size = ...)` instead, which better reflects that this is a unitless size and not a pixel resolution. The key could also come from `set_theme!` calls or related theming functions.\n└ @ Makie C:\\Users\\domma\\.julia\\packages\\Makie\\VRavR\\src\\scenes.jl:220\n```\n:::\n\n::: {.cell-output .cell-output-display execution_count=2}\n```{=html}\n\n```\n:::\n:::\n\n\nWe will then fit a simple Gaussian model (an \"intercept-only\" linear model) that estimates the mean and the standard deviation of our variable of interest.\n\n::: {#81854fdd .cell execution_count=2}\n``` {.julia .cell-code code-fold=\"false\"}\n@model function model_Gaussian(x)\n\n # Priors\n σ ~ truncated(Normal(0, 1); lower=0) # Strictly positive half normal distribution\n μ ~ Normal(0, 3)\n\n # Iterate through every observation\n for i in 1:length(x)\n # Likelihood family\n x[i] ~ Normal(μ, σ)\n end\nend\n\n# Fit the model with the data\nfit_Gaussian = model_Gaussian(df.Disinhibition)\n# Sample results using MCMC\nchain_Gaussian = sample(fit_Gaussian, NUTS(), 400)\n```\n:::\n\n\nLet see if the model managed to recover the mean and standard deviation of the data:\n\n::: {#7646a853 .cell execution_count=3}\n``` {.julia .cell-code}\nprintln(\"Mean of the data: $(round(mean(df.Disinhibition); digits=3)) vs. mean from the model: $(round(mean(chain_Gaussian[:μ]); digits=3))\")\nprintln(\"SD of the data: $(round(std(df.Disinhibition); digits=3)) vs. SD from the model: $(round(mean(chain_Gaussian[:σ]); digits=3))\")\n```\n\n::: {.cell-output .cell-output-stdout}\n```\nMean of the data: 1.064 vs. mean from the model: 1.066\nSD of the data: 0.616 vs. SD from the model: 0.618\n```\n:::\n:::\n\n\nImpressive! The model managed to almost perfectly recover the mean and standard deviation of the data.\n**That means we must have a good model, right?** Not so fast!\n\nLinear models are *by definition* designed at recovering the mean of the outcome variables (and its SD, assuming it is inavriant across groups). That does not mean that they can **capture the full complexity of the data**.\n\nLet us then jump straight into generating **predictions** from the model and plotting the results against the actual data to see how well the model fits the data (a procedure called the **posterior predictive check**).\n\n::: {#db87695b .cell execution_count=4}\n``` {.julia .cell-code}\npred = predict(model_Gaussian([(missing) for i in 1:length(df.Disinhibition)]), chain_Gaussian)\npred = Array(pred)\n```\n:::\n\n\n::: {#668f2b14 .cell execution_count=5}\n``` {.julia .cell-code}\nfig = hist(df.Disinhibition, normalization = :pdf, color=:darkred, bins=40)\nfor i in 1:length(chain_Gaussian)\n lines!(Makie.KernelDensity.kde(pred[i, :]), alpha=0.1, color=:black)\nend\nfig\n```\n\n::: {.cell-output .cell-output-stderr}\n```\n┌ Warning: Found `resolution` in the theme when creating a `Scene`. The `resolution` keyword for `Scene`s and `Figure`s has been deprecated. Use `Figure(; size = ...` or `Scene(; size = ...)` instead, which better reflects that this is a unitless size and not a pixel resolution. The key could also come from `set_theme!` calls or related theming functions.\n└ @ Makie C:\\Users\\domma\\.julia\\packages\\Makie\\VRavR\\src\\scenes.jl:220\n```\n:::\n\n::: {.cell-output .cell-output-display execution_count=6}\n```{=html}\n\n```\n:::\n:::\n\n\nAs we can see, the model assumes that the data is normally distributed, in a way that allows for negative values and values above 3, which **are not possible** because our variable is, **by design**, bounded between 0 and 3 (at it is the result of the mean of variables between 0 and 3).\nThe linear model might thus not be the best choice for this type of data.\n\n## Rescaling\n\nContinuous variables can be trivially rescaled, which is often done to improve the interpretability of the results. \nFor instance, a *z*-score is a rescaled variable with a mean of 0 and a standard deviation of 1.\nImportantly, rescaling variables does not change the variable's distribution or the absolute relationship between variables. \nIt does not alter the fundamental conclusions from an analysis, but can help with the interpretation of the results (or computational performance).\n\nTwo common rescalings are **standardization** (mean=0, SD=1) and **normalization** (range 0-1).\nThe benefits of standardization are the interpretation in terms of deviation (which can be compared across variables).\nThe benefits of normalization are the interpretation in terms of **\"proportion\"** (percentage): a value of $0.5$ (i.e., $50\\%$) means that the value is in the middle of the range.\nThe latter is particularly useful for bounded variables, as it redefines their bounds to 0 and 1 and allows for a more intuitive interpretation (e.g., \"Condition B led to an increase of 20% of the rating on that scale\").\n\nLet's rescale the \"Disinhibition\" variable to a 0-1 range:\n\n::: {#187e7571 .cell execution_count=6}\n``` {.julia .cell-code code-fold=\"false\"}\nfunction data_rescale(x; old_range=[minimum(x), maximum(x)], new_range=[0, 1])\n return (x .- old_range[1]) ./ (old_range[2] - old_range[1]) .* (new_range[2] - new_range[1]) .+ new_range[1]\nend\n\n# Rescale the variable\ndf.Disinhibition2 = data_rescale(df.Disinhibition; old_range=[0, 3], new_range=[0, 1])\n```\n:::\n\n\n::: {#1bad4216 .cell execution_count=7}\n``` {.julia .cell-code}\n# Visualize\nfig = hist(df.Disinhibition2, normalization = :pdf, color=:darkred, bins=40)\nxlims!(-0.1, 1.1)\nfig\n```\n\n::: {.cell-output .cell-output-stderr}\n```\n┌ Warning: Found `resolution` in the theme when creating a `Scene`. The `resolution` keyword for `Scene`s and `Figure`s has been deprecated. Use `Figure(; size = ...` or `Scene(; size = ...)` instead, which better reflects that this is a unitless size and not a pixel resolution. The key could also come from `set_theme!` calls or related theming functions.\n└ @ Makie C:\\Users\\domma\\.julia\\packages\\Makie\\VRavR\\src\\scenes.jl:220\n```\n:::\n\n::: {.cell-output .cell-output-display execution_count=8}\n```{=html}\n\n```\n:::\n:::\n\n\n## Modified Beta Distribution \n\nOne good potential alternative to linear models for bounded variables is to use a **Beta distribution** instead of a Gaussian distribution, as the Beta distribution is bounded between 0 and 1 (**not including them**).\nMoreover, Beta distributions are powerful and can model a wide range of shapes, including normal-like distributions, but also uniformly spread data and data clustered at one or both ends.\n\nThe Beta distribution is typically defined by two parameters, *alpha* $\\alpha$ and *beta* $\\beta$, which are the shape parameters. \nUnfortunately, these parameters are not very intuitive, and so we often use a \"reparametrization\" of the Beta distribution to define it by its mean *mu* $\\mu$ and \"precision\" *phi* $\\phi$ (referring to the narrowness of the distribution).\nThis is particularly convenient in the context of regressions, as these parameters are more interpretable and can be directly linked to the predictors.\n\nHere is the code to redefine a Beta distribution based on the mean *mu* $\\mu$ and precision *phi* $\\phi$, that converts them to the shape parameters *alpha* $\\alpha$ and *beta* $\\beta$.\n\n::: {#40355277 .cell execution_count=8}\n``` {.julia .cell-code code-fold=\"false\"}\nfunction BetaMuPhi(μ, ϕ)\n return Beta(μ * ϕ, (1 - μ) * ϕ)\nend\n```\n:::\n\n\n::: {.callout-caution}\nTODO: Replace if it is supported somewhere (e.g., [Distributions.jl](https://github.com/JuliaStats/Distributions.jl/issues/1877))\n:::\n\nNote that for this modified Beta distribution, the mean *mu* $\\mu$ and precision *phi* $\\phi$ can impact the distribution in suprising ways. \n\n![](media/scales_BetaMuPhi.gif)\n\n## Beta Models\n\nNote that we have a suited distribution for our bounded variable, we can now fit a Beta model to the rescaled variable.\nHowever, there is one important issue to address: the Beta distribution is not defined at exactly 0 and 1, and we currently rescaled our variable to be between 0 and 1, possibly including them.\n\nOne common trick is to actually rescale our variable to be within $[0, 1]$ by **nudging** the zeros and ones to be just above and below, respectively. \nFor this, one can use the function `eps()`, which returns the smallest possible number.\nFor instance, one can rescale the variable to be in the range `[eps(), 1 - eps()]`, equivalent to $[0.000...1, 0.999...]$.\n\n::: {#46cb461d .cell execution_count=9}\n``` {.julia .cell-code code-fold=\"false\"}\ndf.Disinhibition3 = data_rescale(df.Disinhibition; old_range=[0, 3], new_range=[eps(), 1 - eps()])\n```\n:::\n\n\nFor the priors, we will use a Beta distribution $Beta(1.25, 1.25)$ for *mu* $\\mu$ that is naturally bounded at $]0, 1[$, peaks at 0.5, and assign less plausibility to extreme values.\nA Gamma distribution $Gamma(1.5, 15)$ for *phi* $\\phi$ is a good choice for the precision, as it is naturally bounded at $]0, +\\infty[$.\nThat said, as we demonstrate below, it is often more convenient to express *phi* $\\phi$ on the log scale (making it more convenient to express priors).\n\n::: {#2ca8e325 .cell execution_count=10}\n``` {.julia .cell-code}\nfig = Figure()\nax1 = Axis(fig[1, 1], xlabel=\"Value of μ\", ylabel=\"Plausibility\", title=\"Prior for μ ~ Beta(1.25, 1.25)\", yticksvisible=false, yticklabelsvisible=false,)\nband!(ax1, range(0, 1, length=1000), 0, pdf.(Beta(1.25, 1.25), range(0, 1, length=1000)), color=:red)\nylims!(0, 1.25)\nax1 = Axis(fig[1, 2], xlabel=\"Value of ϕ\", ylabel=\"Plausibility\", title=\"Prior for ϕ ~ Gamma(1.5, 15)\", yticksvisible=false, yticklabelsvisible=false,)\nband!(ax1, range(0, 120, length=1000), 0, pdf.(Gamma(1.5, 15), range(0, 120, length=1000)), color=:blue)\n# ylims!(0, 0.06)\nfig\n```\n\n::: {.cell-output .cell-output-stderr}\n```\n┌ Warning: Found `resolution` in the theme when creating a `Scene`. The `resolution` keyword for `Scene`s and `Figure`s has been deprecated. Use `Figure(; size = ...` or `Scene(; size = ...)` instead, which better reflects that this is a unitless size and not a pixel resolution. The key could also come from `set_theme!` calls or related theming functions.\n└ @ Makie C:\\Users\\domma\\.julia\\packages\\Makie\\VRavR\\src\\scenes.jl:220\n```\n:::\n\n::: {.cell-output .cell-output-display execution_count=11}\n```{=html}\n\n```\n:::\n:::\n\n\nWe can now fit a Beta model to the rescaled variable. \n\n::: {#16e8bf3f .cell execution_count=11}\n``` {.julia .cell-code code-fold=\"false\"}\n@model function model_Beta(x)\n μ ~ Beta(1.25, 1.25)\n ϕ ~ Gamma(1.5, 15)\n \n for i in 1:length(x)\n x[i] ~ BetaMuPhi(μ, ϕ)\n end\nend\n\nfit_Beta = model_Beta(df.Disinhibition3)\nchain_Beta = sample(fit_Beta, NUTS(), 500)\n```\n:::\n\n\n::: {.callout-note}\nNote that it is also common to express *mu* $\\mu$ on the logit scale. \nIn other words, the prior on *mu* $\\mu$ can be specified using any unbounded distributions (e.g., $Normal(0, 1)$), which is convenient to set effect coefficients. \nThe resulting value is passed through a *logistic* function that transforms any values to the [0, 1] range (suited for *mu* $\\mu$).\nWe will demonstrate this below.\n:::\n\n\nLet us see make a posterior predictive check to see how well the model fits the data. \n\n::: {#2c1a61e2 .cell execution_count=12}\n``` {.julia .cell-code}\npred = predict(model_Beta([(missing) for i in 1:nrow(df)]), chain_Beta)\npred = Array(pred)\n\nfig = hist(df.Disinhibition3, normalization = :pdf, color=:darkred, bins=40)\nfor i in 1:length(chain_Beta)\n density!(pred[i, :], color=(:black, 0), strokecolor = (:black, 0.1), strokewidth = 3, boundary=(0, 1))\nend\nfig\n```\n\n::: {.cell-output .cell-output-stderr}\n```\n┌ Warning: Found `resolution` in the theme when creating a `Scene`. The `resolution` keyword for `Scene`s and `Figure`s has been deprecated. Use `Figure(; size = ...` or `Scene(; size = ...)` instead, which better reflects that this is a unitless size and not a pixel resolution. The key could also come from `set_theme!` calls or related theming functions.\n└ @ Makie C:\\Users\\domma\\.julia\\packages\\Makie\\VRavR\\src\\scenes.jl:220\n```\n:::\n\n::: {.cell-output .cell-output-display execution_count=13}\n```{=html}\n\n```\n:::\n:::\n\n\nIt is... **quite terrible**. Why? \n\n\n## Excluding Extreme Observations\n\nOne of the main issues is that, as you can se from the histogram, there is a high number of observations clumped at zero. \nThis creates a **bimodal** distribution which makes standard unimodal distributions fail to capture the data (note this issues is not addressed by linear models, which estimates will get biased by this configuration away from the actual \"mean\" of the variable).\n\nOne simple, although not ideal, solution is to **exclude extreme values** (zeros or ones). \nBeyond the statistical sanitization benefits, one could argue that these \"floor\" and \"ceiling\" effects might correspond to a **different cognitive process** (this will be important in the later part of this chapter).\n\n::: {.callout-note}\nFor instance, in the case of a bounded scale type of trials, participants might actually use a dual strategy in order to lower the cognitive load.\nFor each item, they would judge 1) whether their answer is \"completely\" yes or no (i.e., 0 or 1) and 2) if not, they would then engage in a more nuanced and costly evaluation of the degree (i.e., use continuous values in between).\n:::\n\nLet's create a new variable without the extreme values.\n\n::: {#d402709b .cell execution_count=13}\n``` {.julia .cell-code code-fold=\"false\"}\n# Filter out extreme values\nvar_noextreme = df.Disinhibition2[(df.Disinhibition2 .> 0) .& (df.Disinhibition2 .< 1)]\n```\n:::\n\n\n### Logit Link for *Mu* $\\mu$\n\nThis time, we will add another trick to make the model more robust (note that this is a general improvement that we are introducing here but that is not related to the current issue at hand of the extreme values). \nThe current parameter *mu* $\\mu$ is defined on the $]0, 1[$ range. Although this is not an issue in our model where we don't have any predictors, these types of bounded parameters can be a bit problematic in the context of regressions, where the effect of predictors can push the parameter outside of its bounds.\nFor example, imagine that the algorithm pics a value of $0.45$ for *mu* $\\mu$ from the prior, and then picks a value of $+0.30$ for the effect of a potential predictor (e.g., an experimental condition). \nThis would result in a value of $0.75$, which is outside the range of possible, and would make the model fail to converge.\n\nOne common solution (at the heard of the so-called **logistic models**) is to express *mu* $\\mu$ on the logit scale using the **logistic** function (available in the `StatsFuns` package).\nThe logistic function is a simple transformation that maps any value (from the unbounded range $]-\\infty, +\\infty[$)) to the 0, 1 range. \nWe can now specify the prior for *mu* $\\mu$ on the logit scale as a normal distribution (e.g., $Normal(0, 3)$) without worrying about the estimates going out of bounds.\n\n::: {#b39dfcbf .cell execution_count=14}\n``` {.julia .cell-code}\nxaxis = range(-10, 10, length=1000)\n\nfig = Figure()\nax1 = Axis(fig[1:2, 1], xlabel=\"Value of μ on the logit scale\", ylabel=\"Actual value of μ\", title=\"Logistic function\")\nlines!(ax1, xaxis, logistic.(xaxis), color=:red, linewidth=2)\nax2 = Axis(fig[1, 2], xlabel=\"Value of μ on the logit scale\", ylabel=\"Plausibility\", title=\"Prior for μ ~ Normal(0, 3)\", yticksvisible=false, yticklabelsvisible=false,)\nlines!(ax2, xaxis, pdf.(Normal(0, 3), xaxis), color=:blue, linewidth=2)\nax3 = Axis(fig[2, 2], xlabel=\"Value of μ after logistic transformation\", ylabel=\"Plausibility\", yticksvisible=false, yticklabelsvisible=false,)\nlines!(ax3, logistic.(xaxis), pdf.(Normal(0, 3), xaxis), color=:green, linewidth=2)\nfig\n```\n\n::: {.cell-output .cell-output-stderr}\n```\n┌ Warning: Found `resolution` in the theme when creating a `Scene`. The `resolution` keyword for `Scene`s and `Figure`s has been deprecated. Use `Figure(; size = ...` or `Scene(; size = ...)` instead, which better reflects that this is a unitless size and not a pixel resolution. The key could also come from `set_theme!` calls or related theming functions.\n└ @ Makie C:\\Users\\domma\\.julia\\packages\\Makie\\VRavR\\src\\scenes.jl:220\n```\n:::\n\n::: {.cell-output .cell-output-display execution_count=15}\n```{=html}\n\n```\n:::\n:::\n\n\n::: {#88c273da .cell execution_count=15}\n``` {.julia .cell-code code-fold=\"false\"}\n@model function model_Beta(x)\n μ ~ Normal(0, 3) # On the logit scale\n ϕ ~ Gamma(1.5, 15)\n \n for i in 1:length(x)\n μ_norm = logistic(μ) # Normalize (0-1) the μ parameter\n x[i] ~ BetaMuPhi(μ_norm, ϕ)\n end\nend\n\n# Refit\nfit_Beta = model_Beta(var_noextreme)\nchain_Beta = sample(fit_Beta, NUTS(), 500)\n```\n:::\n\n\n### Log Link for *Phi* $\\phi$\n\nBecause precision *phi* $\\phi$ is a positive parameter that can go from 0 to big values, with a particular threshold value at `1` (where the distribution becomes flat), it is often more convenient to **express it on the log scale**. \nThis means that **the value will be exponentiated** before being used in the Beta distribution.\nSimilarly to above, **changing the link function** does not change the model *per se*, but it makes it more convenient to set priors and often makes the model more efficient.\n\nExpressing *phi* $\\phi$ on the log scale is convenient because we can set a $Normal$ prior centered around zero, which will result (after the exponential transformation) in a distribution peaking at 1.\n\n::: {#511e6700 .cell execution_count=16}\n``` {.julia .cell-code}\nxaxis = range(-10, 10, length=1000)\n\nfig = Figure()\nax1 = Axis(fig[1:2, 1], xlabel=\"Value of ϕ on the log scale\", ylabel=\"Actual value of ϕ\", title=\"Exponential function\")\nlines!(ax1, xaxis, exp.(xaxis), color=:red, linewidth=2)\nxlims!(-10, 10)\nax2 = Axis(fig[1, 2], xlabel=\"Value of ϕ on the log scale\", ylabel=\"Plausibility\", title=\"Prior for ϕ ~ Normal(0, 2)\", yticksvisible=false, yticklabelsvisible=false,)\nlines!(ax2, xaxis, pdf.(Normal(0, 2), xaxis), color=:blue, linewidth=2)\nax3 = Axis(fig[2, 2], xlabel=\"Value of ϕ after exponential transformation\", ylabel=\"Plausibility\", yticksvisible=false, yticklabelsvisible=false,)\nlines!(ax3, exp.(xaxis), pdf.(Normal(0, 2), xaxis), color=:green, linewidth=2)\nxlims!(-1, 20)\nfig\n```\n\n::: {.cell-output .cell-output-stderr}\n```\n┌ Warning: Found `resolution` in the theme when creating a `Scene`. The `resolution` keyword for `Scene`s and `Figure`s has been deprecated. Use `Figure(; size = ...` or `Scene(; size = ...)` instead, which better reflects that this is a unitless size and not a pixel resolution. The key could also come from `set_theme!` calls or related theming functions.\n└ @ Makie C:\\Users\\domma\\.julia\\packages\\Makie\\VRavR\\src\\scenes.jl:220\n```\n:::\n\n::: {.cell-output .cell-output-display execution_count=17}\n```{=html}\n\n```\n:::\n:::\n\n\nThe final model is then:\n\n::: {#ff0eea84 .cell execution_count=17}\n``` {.julia .cell-code code-fold=\"false\"}\n@model function model_Beta(x)\n μ ~ Normal(0, 3) # On the logit scale\n ϕ ~ Normal(0, 2) # On the log scale\n \n for i in 1:length(x)\n x[i] ~ BetaMuPhi(logistic(μ), exp(ϕ))\n end\nend\n\n# Refit\nfit_Beta = model_Beta(var_noextreme)\nchain_Beta = sample(fit_Beta, NUTS(), 500)\n```\n:::\n\n\n### Conclusion\n\nLet us now make a posterior predictive check to see how well the model fits the data.\n\n::: {#58b96096 .cell execution_count=18}\n``` {.julia .cell-code}\npred = predict(model_Beta([(missing) for i in 1:length(var_noextreme)]), chain_Beta)\npred = Array(pred)\n\nfig = hist(var_noextreme, normalization = :pdf, color=:darkred, bins=40)\nfor i in 1:length(chain_Beta)\n density!(pred[i, :], color=(:black, 0), strokecolor = (:black, 0.1), strokewidth = 3, boundary=(0, 1))\nend\nfig\n```\n\n::: {.cell-output .cell-output-stderr}\n```\n┌ Warning: Found `resolution` in the theme when creating a `Scene`. The `resolution` keyword for `Scene`s and `Figure`s has been deprecated. Use `Figure(; size = ...` or `Scene(; size = ...)` instead, which better reflects that this is a unitless size and not a pixel resolution. The key could also come from `set_theme!` calls or related theming functions.\n└ @ Makie C:\\Users\\domma\\.julia\\packages\\Makie\\VRavR\\src\\scenes.jl:220\n```\n:::\n\n::: {.cell-output .cell-output-display execution_count=19}\n```{=html}\n\n```\n:::\n:::\n\n\nRemoving the extreme values improved the fit. However, it is not a perfect solution.\n\n## Ordered Beta Models\n\nNeed **help** to implement this in Turing!\n\n- https://cran.r-project.org/web/packages/ordbetareg/vignettes/package_introduction.html\n- https://stats.andrewheiss.com/compassionate-clam/notebook/ordbeta.html#ordered-beta-regression\n- https://www.robertkubinec.com/post/limited_dvs/\n- [Kubinec (2022)](https://www.cambridge.org/core/journals/political-analysis/article/ordered-beta-regression-a-parsimonious-wellfitting-model-for-continuous-data-with-lower-and-upper-bounds/89F4141DA16D4FC217809B5EB45EEE83)\n\n## Mixed Ordered Beta Models\n\nComplex example walkthrough.\nDemonstrate how to add random effects to the model.\n\n", + "markdown": "# Bounded Variables\n\n![](https://img.shields.io/badge/status-WIP-orange)\n\n\nWhile might be tempted to believe that most of the data that we collect in psychological science are true **continuous** variables, this is often not the case. \nIn fact, many variables are **bounded**: there values are delimited by hard bounds. \nThis is typically the case for slider (aka \"analog\" scakes), dimensions scores (average or sum) from multiple Likert scales, percentages, proportions, etc.\n\nMost psychometric indices are bounded. \nFor instance, the minimum and maximum values for the IQ test (WAIS-IV) are 45-155. It is 0 and 63 for the depression scale BDI-II, 20 and 80 for the STAI.\n\nDespite this fact, we still most often use **linear models** to analyze these data, which is not ideal as it assumes that the dependent variable is continuous and normally distributed.\n\n## The Problem with Linear Models\n\nLet's take the data from @makowski2023novel that contains data from participants that underwent the Mini-IPIP6 personality test and the PID-5 BF questionnaire for \"maladaptive\" personality.\nWe will focus on the **\"Disinhibition\"** trait from the PID-5 BF questionnaire. \nNote that altough it is usually computed as the average of items a 4-point Likert scales **[0-3]**, this study used analog slides to obtain more finer-grained scores.\n\n::: {#1b3464b7 .cell execution_count=1}\n``` {.julia .cell-code code-fold=\"false\"}\nusing Downloads, CSV, DataFrames, Random\nusing Turing, Distributions, StatsFuns\nusing GLMakie\nusing SubjectiveScalesModels\n\nRandom.seed!(123) # For reproducibility\n\ndf = CSV.read(Downloads.download(\"https://raw.githubusercontent.com/DominiqueMakowski/CognitiveModels/main/data/makowski2023.csv\"), DataFrame)\n\n# Show 10 first rows\nfirst(df, 10)\n\n# Plot the distribution of \"Disinhibition\"\nhist(df.Disinhibition, normalization = :pdf, color=:darkred, bins=40)\n```\n\n::: {.cell-output .cell-output-display execution_count=2}\n```{=html}\n\n```\n:::\n:::\n\n\nWe will then fit a simple Gaussian model (an \"intercept-only\" linear model) that estimates the mean and the standard deviation of our variable of interest.\n\n::: {#871050d2 .cell execution_count=2}\n``` {.julia .cell-code code-fold=\"false\"}\n@model function model_Gaussian(x)\n\n # Priors\n σ ~ truncated(Normal(0, 1); lower=0) # Strictly positive half normal distribution\n μ ~ Normal(0, 3)\n\n # Iterate through every observation\n for i in 1:length(x)\n # Likelihood family\n x[i] ~ Normal(μ, σ)\n end\nend\n\n# Fit the model with the data\nfit_Gaussian = model_Gaussian(df.Disinhibition)\n# Sample results using MCMC\nchain_Gaussian = sample(fit_Gaussian, NUTS(), 400)\n```\n:::\n\n\nLet see if the model managed to recover the mean and standard deviation of the data:\n\n::: {#00659d1c .cell execution_count=3}\n``` {.julia .cell-code}\nprintln(\"Mean of the data: $(round(mean(df.Disinhibition); digits=3)) vs. mean from the model: $(round(mean(chain_Gaussian[:μ]); digits=3))\")\nprintln(\"SD of the data: $(round(std(df.Disinhibition); digits=3)) vs. SD from the model: $(round(mean(chain_Gaussian[:σ]); digits=3))\")\n```\n\n::: {.cell-output .cell-output-stdout}\n```\nMean of the data: 1.064 vs. mean from the model: 1.063\nSD of the data: 0.616 vs. SD from the model: 0.619\n```\n:::\n:::\n\n\nImpressive! The model managed to almost perfectly recover the mean and standard deviation of the data.\n**That means we must have a good model, right?** Not so fast!\n\nLinear models are *by definition* designed at recovering the mean of the outcome variables (and its SD, assuming it is inavriant across groups). That does not mean that they can **capture the full complexity of the data**.\n\nLet us then jump straight into generating **predictions** from the model and plotting the results against the actual data to see how well the model fits the data (a procedure called the **posterior predictive check**).\n\n::: {#b8c66cf4 .cell execution_count=4}\n``` {.julia .cell-code}\npred = predict(model_Gaussian([(missing) for i in 1:length(df.Disinhibition)]), chain_Gaussian)\npred = Array(pred)\n```\n:::\n\n\n::: {#6f30fe52 .cell execution_count=5}\n``` {.julia .cell-code}\nfig = hist(df.Disinhibition, normalization = :pdf, color=:darkred, bins=40)\nfor i in 1:length(chain_Gaussian)\n density!(pred[i, :], color=(:black, 0.0), strokecolor = (:black, 0.1), strokewidth = 1)\nend\nfig\n```\n\n::: {.cell-output .cell-output-display execution_count=6}\n```{=html}\n\n```\n:::\n:::\n\n\n::: {.callout-tip title=\"Code Tip\"}\nThe plotting functions from the `Makie` package can take a tuple of a color and an alpha value (e.g., `color=(:red, 0.3)`) to set the transparency of the plotted elements.\n:::\n\nAs we can see, the model assumes that the data is normally distributed, in a way that allows for negative values and values above 3, which **are not possible** as our variable is - **by design** - bounded between 0 and 3 (at it is the result of the mean of variables between 0 and 3).\nThe linear model might thus not be the best choice for this type of data.\n\n## Rescaling\n\nContinuous variables can be trivially rescaled, which is often done to improve the interpretability of the results. \nFor instance, a *z*-score is a rescaled variable with a mean of 0 and a standard deviation of 1 that allows for an interpretation in terms of deviation from the mean.\nImportantly, rescaling variables does not change the variable's distribution or the absolute relationship between variables. \nIn other words, it does not alter the fundamental conclusions from an analysis, but can help with the interpretation of the results (or computational performance).\n\nTwo common rescalings are **standardization** (mean=0, SD=1) and **normalization** (to a 0-1 range).\nThe benefits of standardization are the interpretation in terms of the magnitude of deviation relative to its own sample (which can be compared across variables).\nThe benefits of normalization are the interpretation in terms of **\"proportion\"** (percentage): a value of $0.5$ (i.e., $50\\%$) means that the value is in the middle of the range.\nThe latter is particularly useful for bounded variables, as it redefines their bounds to 0 and 1 and allows for a more intuitive interpretation (e.g., \"Condition B led to an increase of 20% of the rating on that scale\").\n\nLet's rescale the \"Disinhibition\" variable to a 0-1 range:\n\n::: {#511d5da6 .cell execution_count=6}\n``` {.julia .cell-code code-fold=\"false\"}\nfunction data_rescale(x; old_range=[minimum(x), maximum(x)], new_range=[0, 1])\n return (x .- old_range[1]) ./ (old_range[2] - old_range[1]) .* (new_range[2] - new_range[1]) .+ new_range[1]\nend\n\n# Rescale the variable\ndf.Disinhibition2 = data_rescale(df.Disinhibition; old_range=[0, 3], new_range=[0, 1])\n```\n:::\n\n\n::: {#70ca0547 .cell execution_count=7}\n``` {.julia .cell-code}\n# Visualize\nfig = hist(df.Disinhibition2, normalization = :pdf, color=:darkred, bins=40)\nxlims!(-0.1, 1.1)\nfig\n```\n\n::: {.cell-output .cell-output-display execution_count=8}\n```{=html}\n\n```\n:::\n:::\n\n\n## Modified Beta Distribution \n\nOne good potential alternative to linear models for bounded variables is to use a **Beta distribution** instead of a Gaussian distribution, as the Beta distribution is naturally bounded between 0 and 1 (**not including them**).\nMoreover, Beta distributions are powerful and can model a wide variety of shapes, including normal-like distributions, but also uniformly spread data and data clustered at one or both ends.\n\nThe Beta distribution is typically defined by two parameters, *alpha* $\\alpha$ and *beta* $\\beta$, which are the shape parameters. \nUnfortunately, these parameters are not very intuitive, and so we often use a \"reparametrization\" of the Beta distribution to define it by its mean *mu* $\\mu$ and \"precision\" *phi* $\\phi$ (referring to the narrowness of the distribution).\nThis is particularly convenient in the context of regressions, as these parameters are more interpretable and can be directly linked to the predictors.\n\nWe will use a reparametrization of the Beta distribution based on the mean *mu* $\\mu$ and precision *phi* $\\phi$, that converts them to the shape parameters *alpha* $\\alpha$ and *beta* $\\beta$.\nYou can find details about this reparametrization in the documentation of the [**BetaPhi2()**](https://dominiquemakowski.github.io/SubjectiveScalesModels.jl/dev/BetaPhi2/) function of the `SubjectiveScalesModels.jl` package.\n\n![](https://github.com/DominiqueMakowski/SubjectiveScalesModels.jl/blob/main/docs/img/animation_BetaPhi2.gif?raw=true)\n\n\n## Beta Models\n\nNote that we have a suited distribution for our bounded variable, we can now fit a Beta model to the rescaled variable.\nHowever, there is one important issue to address: the Beta distribution is not defined at exactly 0 and 1, and we currently rescaled our variable to be between 0 and 1, possibly including them.\n\nOne common trick is to actually rescale our variable to be within $[0, 1]$ by **nudging** the zeros and ones to be just above and below, respectively. \nFor this, one can use the function `eps()`, which returns the smallest possible number.\nFor instance, one can rescale the variable to be in the range `[eps(), 1 - eps()]`, equivalent to $[0.000...1, 0.999...]$.\n\n::: {#c44d2d02 .cell execution_count=8}\n``` {.julia .cell-code code-fold=\"false\"}\ndf.Disinhibition3 = data_rescale(df.Disinhibition; old_range=[0, 3], new_range=[eps(), 1 - eps()])\n```\n:::\n\n\nFor the priors, we will use a Beta distribution $Beta(1.25, 1.25)$ for *mu* $\\mu$ that is naturally bounded at $]0, 1[$, peaks at 0.5, and assign less plausibility to extreme values.\nA Gamma distribution $Gamma(1.5, 15)$ for *phi* $\\phi$ is a good choice for the precision, as it is naturally bounded at $]0, +\\infty[$.\n\n::: {#1380a4ed .cell execution_count=9}\n``` {.julia .cell-code}\nfig = Figure()\nax1 = Axis(fig[1, 1], xlabel=\"Value of μ\", ylabel=\"Plausibility\", title=\"Prior for μ ~ Beta(1.25, 1.25)\", yticksvisible=false, yticklabelsvisible=false,)\nband!(ax1, range(0, 1, length=1000), 0, pdf.(Beta(1.25, 1.25), range(0, 1, length=1000)), color=:red)\nylims!(0, 1.25)\nax1 = Axis(fig[1, 2], xlabel=\"Value of ϕ\", title=\"Prior for ϕ ~ Gamma(1.5, 15)\", yticksvisible=false, yticklabelsvisible=false,)\nband!(ax1, range(0, 120, length=1000), 0, pdf.(Gamma(1.5, 15), range(0, 120, length=1000)), color=:blue)\nfig\n```\n\n::: {.cell-output .cell-output-display execution_count=10}\n```{=html}\n\n```\n:::\n:::\n\n\nWe can now fit a Beta model to the rescaled variable. \n\n::: {#23132845 .cell execution_count=10}\n``` {.julia .cell-code code-fold=\"false\"}\n@model function model_Beta(x)\n μ ~ Beta(1.25, 1.25)\n ϕ ~ Gamma(1.5, 15)\n \n for i in 1:length(x)\n x[i] ~ BetaPhi2(μ, ϕ)\n end\nend\n\nfit_Beta = model_Beta(df.Disinhibition3)\nposteriors_Beta = sample(fit_Beta, NUTS(), 500)\n```\n:::\n\n\n::: {.callout-note}\nNote that it is actually convenient to express the parameters with constraints such as a specific range or sign (e.g., positive) on **transformed** scales (e.g., the log scale) rather than the original scale.\nWe will demonstrate this better way of parametrizing a model below.\n:::\n\n\nLet us see make a posterior predictive check to see how well the model fits the data.\n\n::: {#4368473a .cell execution_count=11}\n``` {.julia .cell-code}\npred = predict(model_Beta([(missing) for i in 1:nrow(df)]), posteriors_Beta)\npred = Array(pred)\n\nbins = range(0, 1, length=40)\n\nfig = hist(df.Disinhibition3, normalization = :pdf, color=:darkred, bins=bins)\nfor i in 1:length(posteriors_Beta)\n hist!(pred[i, :], normalization = :pdf, bins=bins, color=(:black, 0.01))\nend\nfig\n```\n\n::: {.cell-output .cell-output-display execution_count=12}\n```{=html}\n\n```\n:::\n:::\n\n\n::: {.callout-tip title=\"Code Tip\"}\nThe distribution of bounded data is typically difficult to visualize.\nDensity plots will tend to be very distorted at the edges (due to the Gaussian kernel used), and histograms will be dependent on the binning. \nOne option is to specify the bin edges in a consistent way.\n:::\n\nAs we can see, the model produced a distribution that appears to be collapsed to the left, not reflecting the actual data. \nThe model fit appears **quite terrible**. Why? \n\n\n## Excluding Extreme Observations\n\nOne of the main issues is that, as you can se from the histogram, there is a high number of observations clumped at zero. \nThis is a **very common and often overlooked issue** in psychological science, where participants tend to use the extreme values of the scale (0 and 1) more often than the intermediate values.\nThis creates a **bimodal** distribution which makes standard unimodal distributions fail to capture the data (note this issue is also present with linear models, which estimates will get biased by this configuration away from the actual \"mean\" of the variable).\n\nOne simple, although not ideal, solution could be to **exclude extreme values** (zeros or ones). \nBeyond the statistical sanitization benefits, one could argue that these \"floor\" and \"ceiling\" effects might correspond to a **different cognitive process** (this will be important in the latter part of this chapter).\n\n::: {.callout-note}\nFor instance, in the case of a bounded scale type of trials, participants might actually use a dual strategy in order to lower the cognitive load.\nFor each item, they would judge 1) whether their answer is \"completely\" yes or no (i.e., 0 or 1) and 2) if not, they would then engage in a more nuanced and costly evaluation of the degree (i.e., use continuous values in between).\n:::\n\nLet's create a new variable without the extreme values.\n\n::: {#733684f0 .cell execution_count=12}\n``` {.julia .cell-code code-fold=\"false\"}\n# Filter out extreme values\nvar_noextreme = df.Disinhibition2[(df.Disinhibition2 .> 0) .& (df.Disinhibition2 .< 1)]\n```\n:::\n\n\n### Logit Link for *Mu* $\\mu$\n\nThis time, we will add another trick to make the model more robust (note that this is a general improvement that we are introducing here but that is not related to the current issue at hand of the extreme values). \nThe current parameter *mu* $\\mu$ is defined on the $]0, 1[$ range. \nAlthough this is not an issue in our model where we don't have any predictors, these types of bounded parameters can be a bit problematic in the context of regressions, where the effect of predictors can push the parameter outside of its bounds.\nFor example, imagine that the algorithm pics a value of $0.45$ for *mu* $\\mu$ from the prior, and then picks a value of $+0.30$ for the effect of a potential predictor (e.g., an experimental condition). \nThis would result in a value of $0.75$, which is outside the range of possible, and would make the model fail to converge.\n\nOne common solution (at the heard of the so-called **logistic models**) is to express *mu* $\\mu$ on the logit scale, which transforms from a bounded [0, 1] range it to an unbounded $]-\\infty, +\\infty[$ range.\nThe priors on *mu* $\\mu$ can then be specified using any unbounded distributions (e.g., $Normal(0, 3)$), without worrying about the estimates going out of bounds.\nThe parameter is then transformed back to the $]0, 1[$ range using the **logistic** function (available in the `StatsFuns` package) before being evaluated.\n\nThe logistic function is a simple transformation that maps any value from the unbounded range $]-\\infty, +\\infty[$) back to the 0, 1 range. \n\n::: {#59725db7 .cell execution_count=13}\n``` {.julia .cell-code}\nxaxis = range(-10, 10, length=1000)\n\nfig = Figure()\nax1 = Axis(fig[1:2, 1], xlabel=\"Value of μ on the logit scale\", ylabel=\"Actual value of μ\", title=\"Logistic function\")\nlines!(ax1, xaxis, logistic.(xaxis), color=:red, linewidth=2)\nax2 = Axis(fig[1, 2], xlabel=\"Value of μ on the logit scale\", ylabel=\"Plausibility\", title=\"Prior for μ ~ Normal(0, 3)\", yticksvisible=false, yticklabelsvisible=false,)\nlines!(ax2, xaxis, pdf.(Normal(0, 3), xaxis), color=:blue, linewidth=2)\nax3 = Axis(fig[2, 2], xlabel=\"Value of μ after logistic transformation\", ylabel=\"Plausibility\", yticksvisible=false, yticklabelsvisible=false,)\nlines!(ax3, logistic.(xaxis), pdf.(Normal(0, 3), xaxis), color=:green, linewidth=2)\nfig\n```\n\n::: {.cell-output .cell-output-display execution_count=14}\n```{=html}\n\n```\n:::\n:::\n\n\n### Log Link for *Phi* $\\phi$\n\nSimilarly, because precision *phi* $\\phi$ is a positive parameter that can go from 0 to big values, with a particular threshold value at `1` (where the distribution becomes flat), it is often more convenient to **express it on the log scale** to be able to set priors on effects without worrying about potential combinations of the parameters that would result in negative values of *phi* $\\phi$, which would make the model fail to converge.\n\nHaving the parameter on the log scale simply means that **its value will be exponentiated** before being used in the Beta distribution (the log transformation being the *inverse* transformation of the exponential function).\nExpressing *phi* $\\phi$ on the log scale is convenient because we can set a $Normal$ prior centered around zero, which will result (after the exponential transformation) in a distribution peaking at 1 (which is a good prior for the precision parameter).\n\nImportantly, **changing the link function** of parameters does not change the model *per se*, but it makes it more convenient to set priors and often makes the model more efficient.\n\n::: {#cb60f303 .cell execution_count=14}\n``` {.julia .cell-code}\nxaxis = range(-10, 10, length=1000)\n\nfig = Figure()\nax1 = Axis(fig[1:2, 1], xlabel=\"Value of ϕ on the log scale\", ylabel=\"Actual value of ϕ\", title=\"Exponential function\")\nlines!(ax1, xaxis, exp.(xaxis), color=:red, linewidth=2)\nxlims!(-10, 10)\nax2 = Axis(fig[1, 2], xlabel=\"Value of ϕ on the log scale\", ylabel=\"Plausibility\", title=\"Prior for ϕ ~ Normal(0, 2)\", yticksvisible=false, yticklabelsvisible=false,)\nlines!(ax2, xaxis, pdf.(Normal(0, 2), xaxis), color=:blue, linewidth=2)\nax3 = Axis(fig[2, 2], xlabel=\"Value of ϕ after exponential transformation\", ylabel=\"Plausibility\", yticksvisible=false, yticklabelsvisible=false,)\nlines!(ax3, exp.(xaxis), pdf.(Normal(0, 2), xaxis), color=:green, linewidth=2)\nxlims!(-1, 20)\nfig\n```\n\n::: {.cell-output .cell-output-display execution_count=15}\n```{=html}\n\n```\n:::\n:::\n\n\nLet us now refit the Beta model using these link functions.\n\n::: {#603f8ac4 .cell execution_count=15}\n``` {.julia .cell-code code-fold=\"false\"}\n@model function model_Beta(x)\n μ ~ Normal(0, 3) # On the logit scale\n ϕ ~ Normal(0, 2) # On the log scale\n \n for i in 1:length(x)\n x[i] ~ BetaPhi2(logistic(μ), exp(ϕ))\n end\nend\n\n# Refit\nfit_Beta = model_Beta(var_noextreme)\nposteriors_Beta = sample(fit_Beta, NUTS(), 500)\n```\n:::\n\n\nThe only caveat is that we need to **transform the parameters back** to the original scale when interpreting the results.\n\n::: {#1da1f160 .cell execution_count=16}\n``` {.julia .cell-code}\nparams = DataFrame(mean(posteriors_Beta))\nparams.values_raw = [logistic(params.mean[1]), exp(params.mean[2])]\nparams\n```\n\n::: {.cell-output .cell-output-display execution_count=17}\n```{=html}\n
2×3 DataFrame
Rowparametersmeanvalues_raw
SymbolFloat64Float64
1μ-0.5528150.365211
2ϕ0.8528532.34633
\n```\n:::\n:::\n\n\n### Conclusion\n\nLet us now make a posterior predictive check to see how well the model fits the data.\n\n::: {#9822664e .cell execution_count=17}\n``` {.julia .cell-code}\npred = predict(model_Beta([(missing) for i in 1:length(var_noextreme)]), posteriors_Beta)\npred = Array(pred)\n\nbins = range(0, 1, length=40)\n\nfig = hist(var_noextreme, normalization = :pdf, color=:darkred, bins=bins)\nfor i in 1:length(posteriors_Beta)\n hist!(pred[i, :], normalization = :pdf, bins=bins, color=(:black, 0.01))\nend\nfig\n```\n\n::: {.cell-output .cell-output-display execution_count=18}\n```{=html}\n\n```\n:::\n:::\n\n\nAlthough removing the extreme values did improve the fit, it is not a perfect solution, as it neglects the importance of these values and the potential cognitive processes behind them.\n\n## Ordered Beta Models\n\nNeed **help** to implement this in Turing!\n\n- https://cran.r-project.org/web/packages/ordbetareg/vignettes/package_introduction.html\n- https://stats.andrewheiss.com/compassionate-clam/notebook/ordbeta.html#ordered-beta-regression\n- https://www.robertkubinec.com/post/limited_dvs/\n- [Kubinec (2022)](https://www.cambridge.org/core/journals/political-analysis/article/ordered-beta-regression-a-parsimonious-wellfitting-model-for-continuous-data-with-lower-and-upper-bounds/89F4141DA16D4FC217809B5EB45EEE83)\n\n## Mixed Ordered Beta Models\n\nComplex example walkthrough.\nDemonstrate how to add random effects to the model.\n\n", "supporting": [ "3a_scales_files\\figure-html" ], diff --git a/content/_freeze/3b_choices/execute-results/html.json b/content/_freeze/3b_choices/execute-results/html.json index 3637997..2a87f5a 100644 --- a/content/_freeze/3b_choices/execute-results/html.json +++ b/content/_freeze/3b_choices/execute-results/html.json @@ -1,10 +1,10 @@ { - "hash": "1050c8f223f2cb61212b9d3c339c036c", + "hash": "4c17b18a2d50c5b7c7845f668fc269d1", "result": { "engine": "jupyter", - "markdown": "# Binary Data\n\n![](https://img.shields.io/badge/status-good_for_contributing-blue)\n\n## The Data\n\nFor this chapter, we will be using the data from @wagenmakers2008diffusion - Experiment 1 [also reanalyzed by @heathcote2012linear], that contains responses and response times for several participants in two conditions (where instructions emphasized either **speed** or **accuracy**).\nUsing the same procedure as the authors, we excluded all trials with uninterpretable response time, i.e., responses that are too fast (<180 ms) or too slow [>2 sec instead of >3 sec, see @theriault2024check for a discussion on outlier removal].\n\nIn this chapter, we will focus on the \"amount\" of **errors** between the two conditions (response times will be the focus of the next chapter).\n\n::: {#5ef964bc .cell execution_count=1}\n``` {.julia .cell-code code-fold=\"false\"}\nusing Downloads, CSV, DataFrames, Random\nusing Turing, Distributions, StatsFuns, SequentialSamplingModels\nusing GLMakie\n\nRandom.seed!(123) # For reproducibility\n\ndf = CSV.read(Downloads.download(\"https://raw.githubusercontent.com/DominiqueMakowski/CognitiveModels/main/data/wagenmakers2008.csv\"), DataFrame)\n\n# Show 10 first rows\nfirst(df, 10)\n```\n\n::: {.cell-output .cell-output-display execution_count=2}\n```{=html}\n
10×5 DataFrame
RowParticipantConditionRTErrorFrequency
Int64String15Float64BoolString15
11Speed0.7falseLow
21Speed0.392trueVery Low
31Speed0.46falseVery Low
41Speed0.455falseVery Low
51Speed0.505trueLow
61Speed0.773falseHigh
71Speed0.39falseHigh
81Speed0.587trueLow
91Speed0.603falseLow
101Speed0.435falseHigh
\n```\n:::\n:::\n\n\nLet us first compute the average number of errors for each condition.\n\n::: {#ebcd34a7 .cell execution_count=2}\n``` {.julia .cell-code code-fold=\"false\"}\ncombine(groupby(df, :Condition), :Error => mean)\n```\n\n::: {.cell-output .cell-output-display execution_count=3}\n```{=html}\n
2×2 DataFrame
RowConditionError_mean
String15Float64
1Speed0.110407
2Accuracy0.0451463
\n```\n:::\n:::\n\n\n::: {#5cb9dee8 .cell execution_count=3}\n``` {.julia .cell-code}\ndat = combine(groupby(df, :Condition), :Error => mean)\n\nfig = Figure()\nax = Axis(fig[1, 1], ylabel=\"Average error rate\", xticks =([0, 1], [\"Speed\", \"Accuracy\"]))\nbarplot!(ax, [0], [dat.Error_mean[1]], label=\"Speed\", color=:red)\nbarplot!(ax, [1], [dat.Error_mean[2]], label=\"Accuracy\", color=:green)\naxislegend()\nfig\n```\n\n::: {.cell-output .cell-output-stderr}\n```\n┌ Warning: Found `resolution` in the theme when creating a `Scene`. The `resolution` keyword for `Scene`s and `Figure`s has been deprecated. Use `Figure(; size = ...` or `Scene(; size = ...)` instead, which better reflects that this is a unitless size and not a pixel resolution. The key could also come from `set_theme!` calls or related theming functions.\n└ @ Makie C:\\Users\\domma\\.julia\\packages\\Makie\\VRavR\\src\\scenes.jl:220\n```\n:::\n\n::: {.cell-output .cell-output-display execution_count=4}\n```{=html}\n\n```\n:::\n:::\n\n\n## Logistic models for Binary Data\n\nThe statistical models that we use aim at uncovering the **parameters of the distribution** that best predicts the data.\nIn a standard linear regression, this means estimating the mean *mu* $\\mu$ (which often is expressed as a function of another variable, such as the `Condition`) and the standard deviation *sigma* $\\sigma$ of the normal distribution that best fits the data.\n\nHowever, when the dependent variable is binary (e.g., 0 or 1), we cannot use a normal distribution, as it would predict values outside the [0, 1] range.\nWe saw in the previous chapter how to model probabilities using $Beta$ distributions, but in this part we will use another distribution: the **Bernoulli** distribution.\nThe Bernoulli distribution is a distribution that generates zeros and ones (or True and False) with a single parameter: the probability of success *p*.\n\nIn the data above, we saw that the error rate (the proportion - or the \"probability\" - of errors) in the `Speed` condition was `0.11` (11%).\nThis would potentially translate into a distribution $Bernoulli(0.11)$.\nIn our model, we will estimate this probability at this reference condition (*aka* the **intercept**), as well as the effect of the `Accuracy` condition (which, in this case, we expect to be **negative**, as that condition seems to **lower** the error rate).\nWe will set **priors** for these two parameters (intercept and the effect of accuracy) that will get explored by the sampling algorithm.\n\nBut here is the **catch**.\nImagine the sampling algorithm picks a value of $0.11$ for the intercept (close to the true value) and then decides to explore a value of $-0.20$.\nThis would lead to a tentative value of $0.11 - 0.20 = -0.09$... but this parameter is **impossible** (the *p* parameter of the $Bernouilli$ distribution must be betwen 0 and 1).\n\nSimilarly to the previous chapter, we will avoid these issues by expressing our probability *p* on the **log scale**. \nThis way, the effect of `Accuracy` will be expressed as a **log-odds** (i.e., the log of the odds ratio), which can take any value between $-\\infty$ and $+\\infty$.\nWe will then convert this log-odds back to a probability using the **logistic function** which maps any value to the [0, 1] range.\n\n\n\n\n", + "markdown": "# Binary Data\n\n![](https://img.shields.io/badge/status-good_for_contributing-blue)\n\n## The Data\n\nFor this chapter, we will be using the data from @wagenmakers2008diffusion - Experiment 1 [also reanalyzed by @heathcote2012linear], that contains responses and response times for several participants in two conditions (where instructions emphasized either **speed** or **accuracy**).\nUsing the same procedure as the authors, we excluded all trials with uninterpretable response time, i.e., responses that are too fast (<180 ms) or too slow [>2 sec instead of >3 sec, see @theriault2024check for a discussion on outlier removal].\n\nIn this chapter, we will focus on the \"amount\" of **errors** between the two conditions (response times will be the focus of the next chapter).\n\n::: {#5ef964bc .cell execution_count=2}\n``` {.julia .cell-code code-fold=\"false\"}\nusing Downloads, CSV, DataFrames, Random\nusing Turing, Distributions, StatsFuns, SequentialSamplingModels\nusing GLMakie\n\nRandom.seed!(123) # For reproducibility\n\ndf = CSV.read(Downloads.download(\"https://raw.githubusercontent.com/DominiqueMakowski/CognitiveModels/main/data/wagenmakers2008.csv\"), DataFrame)\n\n# Show 10 first rows\nfirst(df, 10)\n```\n\n::: {.cell-output .cell-output-display execution_count=2}\n```{=html}\n
10×5 DataFrame
RowParticipantConditionRTErrorFrequency
Int64String15Float64BoolString15
11Speed0.7falseLow
21Speed0.392trueVery Low
31Speed0.46falseVery Low
41Speed0.455falseVery Low
51Speed0.505trueLow
61Speed0.773falseHigh
71Speed0.39falseHigh
81Speed0.587trueLow
91Speed0.603falseLow
101Speed0.435falseHigh
\n```\n:::\n:::\n\n\nLet us first compute the average number of errors for each condition.\n\n::: {#ebcd34a7 .cell execution_count=3}\n``` {.julia .cell-code code-fold=\"false\"}\ncombine(groupby(df, :Condition), :Error => mean)\n```\n\n::: {.cell-output .cell-output-display execution_count=3}\n```{=html}\n
2×2 DataFrame
RowConditionError_mean
String15Float64
1Speed0.110407
2Accuracy0.0451463
\n```\n:::\n:::\n\n\n::: {#5cb9dee8 .cell execution_count=4}\n``` {.julia .cell-code}\ndat = combine(groupby(df, :Condition), :Error => mean)\n\nfig = Figure()\nax = Axis(fig[1, 1], ylabel=\"Average error rate\", xticks =([0, 1], [\"Speed\", \"Accuracy\"]))\nbarplot!(ax, [0], [dat.Error_mean[1]], label=\"Speed\", color=:red)\nbarplot!(ax, [1], [dat.Error_mean[2]], label=\"Accuracy\", color=:green)\naxislegend()\nfig\n```\n\n::: {.cell-output .cell-output-stderr}\n```\n┌ Warning: Found `resolution` in the theme when creating a `Scene`. The `resolution` keyword for `Scene`s and `Figure`s has been deprecated. Use `Figure(; size = ...` or `Scene(; size = ...)` instead, which better reflects that this is a unitless size and not a pixel resolution. The key could also come from `set_theme!` calls or related theming functions.\n└ @ Makie C:\\Users\\domma\\.julia\\packages\\Makie\\VRavR\\src\\scenes.jl:220\n```\n:::\n\n::: {.cell-output .cell-output-display execution_count=4}\n```{=html}\n\n```\n:::\n:::\n\n\n## Logistic models for Binary Data\n\nThe statistical models that we use aim at uncovering the **parameters of the distribution** that best predicts the data.\nIn a standard linear regression, this means estimating the mean *mu* $\\mu$ (which often is expressed as a function of another variable, such as the `Condition`) and the standard deviation *sigma* $\\sigma$ of the normal distribution that best fits the data.\n\nHowever, when the dependent variable is binary (e.g., 0 or 1), we cannot use a normal distribution, as it would predict values outside the [0, 1] range.\nWe saw in the previous chapter how to model probabilities using $Beta$ distributions, but in this part we will use another distribution: the **Bernoulli** distribution.\nThe Bernoulli distribution is a distribution that generates zeros and ones (or True and False) with a single parameter: the probability of success *p*.\n\nIn the data above, we saw that the error rate (the proportion - or the \"probability\" - of errors) in the `Speed` condition was `0.11` (11%).\nThis would potentially translate into a distribution $Bernoulli(0.11)$.\nIn our model, we will estimate this probability at this reference condition (*aka* the **intercept**), as well as the effect of the `Accuracy` condition (which, in this case, we expect to be **negative**, as that condition seems to **lower** the error rate).\nWe will set **priors** for these two parameters (intercept and the effect of accuracy) that will get explored by the sampling algorithm.\n\nBut here is the **catch**.\nImagine the sampling algorithm picks a value of $0.11$ for the intercept (close to the true value) and then decides to explore a value of $-0.20$.\nThis would lead to a tentative value of $0.11 - 0.20 = -0.09$... but this parameter is **impossible** (the *p* parameter of the $Bernouilli$ distribution must be betwen 0 and 1).\n\nSimilarly to the previous chapter, we will avoid these issues by expressing our probability *p* on the **log scale**. \nThis way, the effect of `Accuracy` will be expressed as a **log-odds** (i.e., the log of the odds ratio), which can take any value between $-\\infty$ and $+\\infty$.\nWe will then convert this log-odds back to a probability using the **logistic function** which maps any value to the [0, 1] range.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", "supporting": [ - "3b_choices_files" + "3b_choices_files\\figure-html" ], "filters": [], "includes": { diff --git a/content/media/animations_scales2.jl b/content/media/animations_scales2.jl index c5e6217..a01293a 100644 --- a/content/media/animations_scales2.jl +++ b/content/media/animations_scales2.jl @@ -32,51 +32,51 @@ import SpecialFunctions: logbeta import Random logit(0.5) - +logistic(0.0) """ - OrderedBeta(μ, ϕ, k1, k2) + OrderedBeta(μ, ϕ, cut0, cut1) Ordered Beta distribution with parameters: -- `μ`: location parameter [0, 1] +- `μ`: location parameter ]0, 1[ - `ϕ`: precision parameter (must be positive) -- `k1`: first cutpoint -- `k2`: log of the difference between the second and first cutpoints +- `cut0`: first cutpoint +- `cut1`: log of the difference between the second and first cutpoints The distribution is defined on the interval [0, 1] with additional point masses at 0 and 1. """ struct OrderedBeta{T<:Real} <: ContinuousUnivariateDistribution μ::T ϕ::T - k1::T - k2::T + cut0::T + cut1::T beta_dist::Beta{T} - function OrderedBeta{T}(μ::T, ϕ::T, k1::T, k2::T) where {T<:Real} + function OrderedBeta{T}(μ::T, ϕ::T, cut0::T, cut1::T) where {T<:Real} @assert ϕ > 0 "ϕ must be positive" - @assert k1 < k2 "k1 must be less than k2" - new{T}(μ, ϕ, k1, k2, Beta(μ * ϕ, (1 - μ) * ϕ)) + @assert cut0 < cut1 "cut0 must be less than cut1" + new{T}(μ, ϕ, cut0, cut1, Beta(μ * ϕ, (1 - μ) * ϕ)) end end -OrderedBeta(μ::T, ϕ::T, k1::T, k2::T) where {T<:Real} = OrderedBeta{T}(μ, ϕ, k1, k2) +OrderedBeta(μ::T, ϕ::T, cut0::T, cut1::T) where {T<:Real} = OrderedBeta{T}(μ, ϕ, cut0, cut1) -function OrderedBeta(μ::Real, ϕ::Real, k1::Real, k2::Real) - T = promote_type(typeof(μ), typeof(ϕ), typeof(k1), typeof(k2)) - OrderedBeta(T(μ), T(ϕ), T(k1), T(k2)) +function OrderedBeta(μ::Real, ϕ::Real, cut0::Real, cut1::Real) + T = promote_type(typeof(μ), typeof(ϕ), typeof(cut0), typeof(cut1)) + OrderedBeta(T(μ), T(ϕ), T(cut0), T(cut1)) end # Methods ------------------------------------------------------------------------------------------ -params(d::OrderedBeta) = (d.μ, d.ϕ, d.k1, d.k2) +params(d::OrderedBeta) = (d.μ, d.ϕ, d.cut0, d.cut1) minimum(::OrderedBeta) = 0 maximum(::OrderedBeta) = 1 insupport(::OrderedBeta, x::Real) = 0 ≤ x ≤ 1 function logpdf(d::OrderedBeta, x::Real) - μ, ϕ, k1, k2 = params(d) + μ, ϕ, cut0, cut1 = params(d) μ_logit = logit(μ) - thresh = [k1, k1 + exp(k2)] + thresh = [cut0, cut0 + exp(cut1)] if x == 0 # Stan: log1m_inv_logit(mu_logit - thresh[1]) @@ -98,8 +98,8 @@ pdf(d::OrderedBeta, x::Real) = exp(logpdf(d, x)) loglikelihood(d::OrderedBeta, x::Real) = logpdf(d, x) # function Random.rand(rng::Random.AbstractRNG, d::OrderedBeta) -# μ, ϕ, k1, k2 = params(d) -# thresh = [k1, k1 + exp(k2)] +# μ, ϕ, cut0, cut1 = params(d) +# thresh = [cut0, cut0 + exp(cut1)] # u = Random.rand(rng) # if u <= 1 - logistic(μ - thresh[1]) @@ -118,8 +118,8 @@ loglikelihood(d::OrderedBeta, x::Real) = logpdf(d, x) # sampler(d::OrderedBeta) = d # function cdf(d::OrderedBeta, x::Real) -# μ, ϕ, k1, k2 = params(d) -# thresh = [k1, k1 + exp(k2)] +# μ, ϕ, cut0, cut1 = params(d) +# thresh = [cut0, cut0 + exp(cut1)] # if x <= 0 # return zero(μ) @@ -134,8 +134,8 @@ loglikelihood(d::OrderedBeta, x::Real) = logpdf(d, x) # function quantile(d::OrderedBeta, q::Real) # 0 <= q <= 1 || throw(DomainError(q, "quantile must be in [0, 1]")) -# μ, ϕ, k1, k2 = params(d) -# thresh = [k1, k1 + exp(k2)] +# μ, ϕ, cut0, cut1 = params(d) +# thresh = [cut0, cut0 + exp(cut1)] # p_0 = 1 - logistic(μ - thresh[1]) # p_1 = logistic(μ - thresh[2]) @@ -151,15 +151,14 @@ loglikelihood(d::OrderedBeta, x::Real) = logpdf(d, x) # end # end -# mean(d::OrderedBeta) = logistic(d.μ) -# var(d::OrderedBeta) = logistic(d.μ) * (1 - logistic(d.μ)) / (1 + d.ϕ) + # Simulation ======================================================================================= using GLMakie xaxis = range(0, 1, length=1000) -fig = lines(xaxis, pdf.(OrderedBeta(0.5, 10, 0, 0), xaxis); color=:yellow) +fig = lines(xaxis, pdf.(OrderedBeta(0.5, 10, 0, 0.1), xaxis); color=:yellow) lines!(xaxis, pdf.(OrderedBeta(0.5, 10, 0.7, 1), xaxis); color=:orange) lines!(xaxis, pdf.(OrderedBeta(0.5, 10, 0.5, 1), xaxis); color=:red) lines!(xaxis, pdf.(OrderedBeta(0.5, 10, 0.2, 1), xaxis); color=:purple)