The BDT is an adaptive test of beat perception ability.
When using the BDT in your own research, you can cite the original BDT research paper that is yet to be written.
We also advise mentioning the software versions you used,
in particular the versions of the BDT
, psychTestR
, and psychTestRCAT
packages.
You can find these version numbers from R by running the following commands:
library(BDT)
library(psychTestR)
library(psychTestRCAT)
if (!require(devtools)) install.packages("devtools")
x <- devtools::session_info()
x$packages[x$packages$package %in% c("BDT", "psychTestR", "psychTestRCAT"), ]
If you don't have R installed, install it from here: https://cloud.r-project.org/
Open R.
Install the ‘devtools’ package with the following command:
install.packages('devtools')
devtools::install_github('klausfrieler/BDT')
You can demo the melodic discrimination test at the R console, as follows:
# Load the BDT package
library(BDT)
# Run a demo test, with feedback as you progress through the test,
# and not saving your data
BDT_demo()
# Run a demo test, skipping the training phase, and only asking 5 questions
BDT_demo(num_items = 5, take_training = FALSE)
The BDT_standalone()
function is designed for real data collection.
In particular, the participant doesn't receive feedback during this version.
# Load the BDT package
library(BDT)
# Run the test as if for a participant, using default settings,
# saving data, and with a custom admin password
BDT_standalone(admin_password = "put-your-password-here")
You will need to enter a participant ID for each participant. This will be stored along with their results.
Each time you test a new participant,
rerun the BDT_standalone()
function,
and a new participation session will begin.
You can retrieve your data by starting up a participation session, entering the admin panel using your admin password, and downloading your data. For more details on the psychTestR interface, see http://psychtestr.com/.
The BDT currently supports English (EN) and German (DE).
If you would like to add a new language to this list, please contact us.
You can select one of these languages by passing a language code as
an argument to BDT_standalone()
, e.g. BDT_standalone(languages = "DE")
,
or alternatively by passing it as a URL parameter to the test browser,
eg. http://127.0.0.1:4412/?language=DE (note that the p_id
argument must be empty).
Please note that the demo version of the test (BDT_demo
)
currently only supports English.
The main output from the BDT is an ability
score,
corresponding to the ability estimate for the participant.
It is computed from the underlying item response model and ranges approximately from -4 to +4.
A secondary output is an ability_sem
score,
corresponding to the standard error of measurement for the ability estimate;
again, it is computed from the underlying IRT model.
For most applications you would only use the ability
value,
unless using a statistical analysis technique that allows you to specify measurement error explicitly.
For more information about item response theory, see the Wikipedia article.
psychTestR provides several ways of retrieving test results (see http://psychtestr.com/). Most are accessed through the test's admin panel.
compile_trial_by_trial_results()
from the R console
(having loaded the BDT package using library(BDT)
).
Type ?compile_trial_by_trial_results()
for more details.readRDS()
.
Detailed results are stored as the 'metadata' attribute for the ability field.
You can access it something like this: x <- readRDS("output/results/id=1&p_id=german_test&save_id=1&pilot=false&complete=true.rds")
attr(x$BDT$ability, "metadata")
cd /srv/shiny-server
sudo mkdir BDT
Make a text file in this folder called app.R
specifying the R code to run the app.
To open the text editor: sudo nano BDT/app.R
library(BDT)
BDT_standalone(admin_password = "put-your-password-here")
Save the file (CTRL-O).
Change the permissions of your app directory so that psychTestR
can write its temporary files there.
sudo chown -R shiny cabat
where shiny
is the username for the Shiny process user
(this is the usual default).
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.