summaryrefslogtreecommitdiff
path: root/experiment/analysis/analysis.tex
diff options
context:
space:
mode:
authorNiclas Dobbertin <niclas.dobbertin@mailbox.org>2023-11-03 08:29:49 +0100
committerNiclas Dobbertin <niclas.dobbertin@mailbox.org>2023-11-03 08:29:49 +0100
commitd94e638f98c599b7c151927d504a474705ae9bca (patch)
tree128765ac1e9cd9413323820f596ced3730091dea /experiment/analysis/analysis.tex
parentc05a2a127449595f1e62b99adb7aa3a0ded8ec27 (diff)
parent4c71eec3cd5f5f36c1cdc6d2284f6dd93facc193 (diff)
Merge branch 'master' into 1920x1080
Diffstat (limited to 'experiment/analysis/analysis.tex')
-rw-r--r--experiment/analysis/analysis.tex150
1 files changed, 150 insertions, 0 deletions
diff --git a/experiment/analysis/analysis.tex b/experiment/analysis/analysis.tex
new file mode 100644
index 0000000..5b56bc8
--- /dev/null
+++ b/experiment/analysis/analysis.tex
@@ -0,0 +1,150 @@
+% Created 2023-10-28 Sat 19:43
+% Intended LaTeX compiler: pdflatex
+\documentclass[11pt]{article}
+\usepackage[utf8]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage{graphicx}
+\usepackage{longtable}
+\usepackage{wrapfig}
+\usepackage{rotating}
+\usepackage[normalem]{ulem}
+\usepackage{amsmath}
+\usepackage{amssymb}
+\usepackage{capt-of}
+\usepackage{hyperref}
+\author{Niclas Dobbertin}
+\date{\today}
+\title{Analysis}
+\hypersetup{
+ pdfauthor={Niclas Dobbertin},
+ pdftitle={Analysis},
+ pdfkeywords={},
+ pdfsubject={},
+ pdfcreator={Emacs 29.1 (Org mode 9.7)},
+ pdflang={English}}
+\usepackage{biblatex}
+\addbibresource{/home/niclas/bib/references.bib}
+\begin{document}
+
+\maketitle
+\tableofcontents
+
+\section{Imports}
+\label{sec:orgbdc2c77}
+\begin{verbatim}
+import pandas as pd
+from pathlib import Path
+from pprint import pprint
+
+import tools
+
+\end{verbatim}
+\section{Constants}
+\label{sec:orgcb8c537}
+\begin{verbatim}
+data_path = Path("/home/niclas/repos/uni/master_thesis/experiment/data")
+
+procedures = ["1", "2", "3", "4", "5", "6", "overall"]
+\end{verbatim}
+\section{Import Data}
+\label{sec:org87e67b0}
+\subsection{Conditions}
+\label{sec:orga12f2b6}
+\begin{verbatim}
+conditions = [x.stem for x in data_path.iterdir() if x.is_dir()]
+conditions
+\end{verbatim}
+
+\begin{center}
+\begin{tabular}{lll}
+random & fixed & blocked\\[0pt]
+\end{tabular}
+\end{center}
+\subsection{Data}
+\label{sec:orgcac95cb}
+\begin{verbatim}
+data = {}
+for condition in conditions:
+ data[condition] = {}
+ for vp in (data_path / condition).iterdir():
+ data[condition][vp.stem] = tools.unpickle(vp / "vp.pkl")
+\end{verbatim}
+
+\begin{verbatim}
+None
+\end{verbatim}
+\subsection{Useful Subdata}
+\label{sec:org4384120}
+\begin{verbatim}
+# data_correct = {conditons[0]: {}, conditons[1]: {}, conditons[2]: {}}
+pass
+# for condition in conditions:
+# data_correct[condition] = None
+\end{verbatim}
+
+\begin{verbatim}
+None
+\end{verbatim}
+\section{Basic statistics}
+\label{sec:org44d0851}
+\subsection{Total percent correct}
+\label{sec:org461b551}
+To find out how well VP solved the tasked, we calculate the accuracy for train
+and test phase.
+
+\begin{verbatim}
+condition = "random"
+df = pd.DataFrame([tools.total_accuracy(data[condition][vp], procedures) for vp in data[condition].keys()], index=data[condition].keys(), columns=["train", "test"])
+df
+\end{verbatim}
+
+\begin{verbatim}
+ train test
+vp12 0.822222 0.820000
+vp19 0.966667 0.800000
+vp15 0.973333 0.980000
+vp17 0.911111 0.960000
+vp20 0.906667 0.980000
+vp10 0.924444 0.943333
+vp16 0.957778 0.926667
+vp13 0.857778 0.946667
+vp18 0.962222 0.970000
+vp14 0.982222 0.986667
+\end{verbatim}
+
+Most subjects have an accuracy of over 95\% in both training and test phase.
+Some however are notably lower, under 90\% in either training or test phase, or
+both.
+This could be a systematic misunderstanding of specific equations, that are
+present in both, or only one of the two phases.
+To investigate, we look at the per procedure accuracy per subject.
+
+\begin{verbatim}
+condition = "random"
+proc_accs = [
+ tools.count_correct(data[condition][vp], data[condition][vp].keys(), procedures)
+ for vp in data[condition].keys()
+]
+for vp in proc_accs:
+ for proc in vp.keys():
+ vp[proc] /= len(next(iter(data[condition].values())).keys())
+df = pd.DataFrame(proc_accs, index=data[condition].keys())
+df
+\end{verbatim}
+
+\begin{verbatim}
+ 1 2 3 4 5 6 overall
+vp12 0.992 0.592 0.392 0.976 0.960 1.000 0.016
+vp19 1.000 0.992 0.000 0.576 0.992 0.992 0.848
+vp15 0.992 0.992 0.960 0.392 0.592 1.000 0.928
+vp17 0.392 0.968 0.584 1.000 1.000 0.992 0.648
+vp20 0.992 0.376 0.952 0.976 0.976 0.560 0.784
+vp10 0.968 0.360 0.592 0.984 0.984 0.992 0.712
+vp16 0.976 0.600 0.376 0.976 0.992 1.000 0.752
+vp13 0.384 0.960 0.928 0.560 0.992 0.968 0.568
+vp18 0.976 0.976 0.960 0.392 0.600 0.984 0.904
+vp14 0.992 0.976 0.992 0.976 0.400 0.600 0.968
+\end{verbatim}
+
+We can see that most vp have around 2 procedures with accuracy of around 50\%
+\end{document} \ No newline at end of file