summaryrefslogtreecommitdiff
path: root/experiment/analysis/analysis.tex
diff options
context:
space:
mode:
authorNiclas Dobbertin <niclas.dobbertin@mailbox.org>2023-10-24 22:41:55 +0200
committerNiclas Dobbertin <niclas.dobbertin@mailbox.org>2023-10-24 22:41:55 +0200
commit04fc4afdbdaec95241779b54aa3ba1f7fa3e5398 (patch)
treea98c8e0ae422a11f84f3053309b3ad363ff3476c /experiment/analysis/analysis.tex
parent9ad2fb0e18373f84e2a8a52a5ae93311744ed23e (diff)
start of experiment analysis
Diffstat (limited to 'experiment/analysis/analysis.tex')
-rw-r--r--experiment/analysis/analysis.tex148
1 files changed, 148 insertions, 0 deletions
diff --git a/experiment/analysis/analysis.tex b/experiment/analysis/analysis.tex
new file mode 100644
index 0000000..2896b4f
--- /dev/null
+++ b/experiment/analysis/analysis.tex
@@ -0,0 +1,148 @@
+% Created 2023-10-23 Mon 20:13
+% 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:orgf19bf7c}
+\begin{verbatim}
+import pandas as pd
+import pickle
+from pathlib import Path
+
+\end{verbatim}
+\section{Constants}
+\label{sec:orgb587203}
+\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:org3427b7b}
+\begin{verbatim}
+def unpickle(pkl):
+ with open(pkl, "rb") as f:
+ data = pickle.load(f)
+ return data
+\end{verbatim}
+\subsection{Conditions}
+\label{sec:org9e15909}
+\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:org65d4664}
+\begin{verbatim}
+data = {}
+for condition in conditions:
+ data[condition] = {}
+ for vp in (data_path / condition).iterdir():
+ data[condition][vp.stem] = unpickle(vp / "vp.pkl")
+\end{verbatim}
+
+\begin{verbatim}
+None
+\end{verbatim}
+\section{Basic statistics}
+\label{sec:orgea2a5f1}
+\subsection{Total percent correct}
+\label{sec:org2eef721}
+To find out how well VP solved the tasked, we calculate the accuracy for train
+and test phase.
+
+\begin{verbatim}
+def percent_correct(vp):
+ train = [x for x in vp.keys() if "train" in x]
+ test = [x for x in vp.keys() if "test" in x]
+
+ train_total = len(train) * len(vp[train[0]]["procedure_order"])
+ test_total = len(test) * len(vp[test[0]]["procedure_order"])
+
+ train_correct = 0
+ test_correct = 0
+
+ def count_correct(trials):
+ trials_correct = 0
+ for sample in trials:
+ for proc in vp[sample]["procedure_order"]:
+ vp_ans = vp[sample][proc]["answer"]
+ for c in vp_ans:
+ if not c.isdigit():
+ vp_ans = vp_ans.replace(c, "")
+ vp_ans = int(vp_ans)
+ if vp_ans == vp[sample]["water_sample"][proc][0]:
+ trials_correct += 1
+ return trials_correct
+
+ return count_correct(train) / train_total, count_correct(test) / test_total
+\end{verbatim}
+
+\begin{verbatim}
+condition = "random"
+df = pd.DataFrame([percent_correct(data[condition][vp]) for vp in data[condition].keys()], columns=["train", "test"])
+df
+\end{verbatim}
+
+\begin{verbatim}
+ train test
+0 0.822222 0.820000
+1 0.966667 0.800000
+2 0.973333 0.980000
+3 0.911111 0.960000
+4 0.906667 0.980000
+5 0.924444 0.943333
+6 0.957778 0.926667
+7 0.857778 0.946667
+8 0.962222 0.970000
+9 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}
+pass
+\end{verbatim}
+
+\begin{verbatim}
+None
+\end{verbatim}
+\end{document} \ No newline at end of file