--- a +++ b/t-test.ipynb @@ -0,0 +1,252 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import scipy\n", + "import pandas as pd" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "from dataset import load_dataset, load_labels, split_data, format_labels\n", + "from features import time_series_features, fractal_features, entropy_features, hjorth_features, freq_band_features\n", + "import variables as v" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Variables" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "data_type = \"ica_filtered\"\n", + "test_type = \"Arithmetic\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Load Data" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "dataset_ = load_dataset(data_type=data_type, test_type=test_type)\n", + "dataset = split_data(dataset_, v.SFREQ)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "label_ = load_labels()\n", + "label = format_labels(label_, test_type=test_type, epochs=dataset.shape[1])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Compute Features" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "# features = time_series_features(dataset)\n", + "# freq_bands = np.array([1, 4, 8, 12, 30, 50])\n", + "# features = freq_band_features(dataset, freq_bands)\n", + "# features = fractal_features(dataset)\n", + "features = hjorth_features(dataset)\n", + "# features = entropy_features(dataset)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Split Data" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "stressed_data = features[np.where(label != 0)]\n", + "non_stressed_data = features[np.where(label == 0)]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Compute t-tests" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "P = np.zeros(features.shape[1])\n", + "for j, i in enumerate(range(features.shape[1])):\n", + " _, p = scipy.stats.ttest_ind(stressed_data[:, i], non_stressed_data[:, i])\n", + " P[j] = p" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "pd.set_option('display.max_rows', None)\n", + "pd.set_option('display.max_columns', None)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " 0\n", + "0 8.565707e-09\n", + "1 4.199706e-01\n", + "2 9.243714e-04\n", + "3 2.969316e-01\n", + "4 7.612570e-03\n", + "5 7.449619e-01\n", + "6 9.528565e-02\n", + "7 8.299859e-01\n", + "8 6.632852e-01\n", + "9 7.414754e-03\n", + "10 5.860924e-05\n", + "11 2.434920e-02\n", + "12 1.278021e-01\n", + "13 2.940169e-05\n", + "14 7.768960e-07\n", + "15 1.016899e-05\n", + "16 1.985319e-02\n", + "17 1.070608e-01\n", + "18 5.213117e-06\n", + "19 1.358506e-22\n", + "20 1.255365e-18\n", + "21 2.182334e-06\n", + "22 3.866509e-08\n", + "23 1.044755e-05\n", + "24 4.995159e-03\n", + "25 2.483783e-01\n", + "26 4.591010e-05\n", + "27 5.557755e-05\n", + "28 5.001415e-04\n", + "29 8.098234e-01\n", + "30 1.842379e-01\n", + "31 2.943885e-01\n", + "32 1.492710e-02\n", + "33 2.327972e-03\n", + "34 3.122502e-06\n", + "35 4.874759e-02\n", + "36 6.426229e-01\n", + "37 2.972795e-02\n", + "38 8.022454e-03\n", + "39 8.336686e-01\n", + "40 4.752397e-01\n", + "41 2.231969e-02\n", + "42 2.065300e-04\n", + "43 1.022721e-01\n", + "44 8.809528e-01\n", + "45 4.398541e-06\n", + "46 1.541289e-07\n", + "47 1.503279e-03\n", + "48 8.190212e-01\n", + "49 3.946622e-01\n", + "50 1.518190e-02\n", + "51 3.568426e-16\n", + "52 8.320353e-16\n", + "53 1.328597e-03\n", + "54 2.122381e-04\n", + "55 4.511848e-03\n", + "56 1.170364e-02\n", + "57 8.785522e-01\n", + "58 7.475689e-04\n", + "59 5.430692e-03\n", + "60 7.998087e-02\n", + "61 7.635854e-02\n", + "62 8.381844e-03\n", + "63 8.201117e-03\n" + ] + } + ], + "source": [ + "print(pd.DataFrame(P))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3.9.7 ('init')", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.7" + }, + "orig_nbformat": 4, + "vscode": { + "interpreter": { + "hash": "6a0b16b431f91af56543167d2335ade6a4f69621936ac10d0388e1e58aabcd37" + } + } + }, + "nbformat": 4, + "nbformat_minor": 2 +}