curveParam_RT {mnreadR} | R Documentation |
Standard estimation of Maximum Reading Speed (MRS) and Critical Print Size (CPS) using individual data of reading time and number of errors.
Description
This function estimates simultaneously:
Maximum Reading Speed (MRS)
Critical Print Size (CPS)
while performing print size correction for non-standard testing viewing distance.
Usage
curveParam_RT(
data,
print_size,
viewing_distance,
reading_time,
errors,
... = NULL
)
Arguments
data |
The name of your dataframe |
print_size |
The variable that contains print size values for each sentence (print size uncorrected for viewing distance) |
viewing_distance |
The variable that contains the viewing distance value used for testing |
reading_time |
The variable that contains the reading time for each sentence |
errors |
The variable that contains the number of errors for each sentence |
... |
Optional grouping arguments |
Value
The function returns a new dataframe with two variables:
"CPS" -> contains the Critical Print Size estimate (in logMAR)
"MRS" -> contains the Maximum Reading Speed estimate (in words/min)
Notes
This function uses the original algorithm described in Legge (2007) to estimate Maximum Reading Speed (MRS) and Critical Print Size (CPS). This algorithm searches for a reading speed plateau in the data. A plateau is defined as a range of print sizes that supports reading speed at a significantly faster rate than the print sizes smaller or larger than the plateau range. Concretely, the plateau is determined as print sizes which reading speed is at least 1.96 SD faster than the other print sizes. The Maximum Reading Speed is estimated as the mean reading speed for print sizes included in the plateau. The Critical Print Size is defined as the smallest print size on the plateau.
For more details on the original algorithm, see Chapter 5 of this book:\ Legge, G.E. (2007). Psychophysics of Reading in Normal and Low Vision. Mahwah, NJ & London: Lawrence Erlbaum Associates. ISBN 0-8058-4328-0 https://books.google.fr/books/about/Psychophysics_of_Reading_in_Normal_and_L.html?id=BGTHS8zANiUC&redir_esc=y
To ensure proper estimation of the MRS and CPS, individual MNREAD curves should be plotted using mnreadCurve
and inspected visually.
Warning
For the function to run properly, one needs to make sure that the variables are of the class:
-
print_size -> numeric
-
viewing_distance -> integer
-
reading_time -> numeric
-
errors -> integer
In cases where only 3 or less sentences were read during a test, the function won't be able to estimate the MRS and CPS and will return NA values instead. The ACC should be used to estimate the MNREAD score in such cases where there are not enough data points to fit the MNREAD curve.
To ensure proper parameters estimation, the data should be entered along certain rules:
For the smallest print size that is presented but not read, right before the test is stopped: reading_time = NA, errors = 10
For all the small sentences that are not presented because the test was stopped before them: reading_time = NA, errors = NA
If a sentence is presented, and read, but the time was not recorded by the experimenter: reading_time = NA, errors = actual number of errors (cf. s5-regular in low vision data sample)
If a large sentence was skipped to save time but would have been read well: reading_time = NA, errors = NA (cf. s1-regular in normal vision data sample)
If a large sentence was skipped to save time because the subject cannot read large print: reading_time = NA, errors = 10 (cf. s7 in low vision data sample)
See Also
curveParam_RS
for standard MRS and CPS estimation using values of reading speed (instead of reading time)
nlmeParam
for MRS and CPS estimation using nonlinear mixed-effect (NLME) modeling
mnreadParam
for all MNREAD parameters estimation (using standard calculation)
readingAcuity
for Reading Acuity calculation
accIndex
for Reading Accessibility Index calculation
Examples
# inspect the structure of the dataframe
head(data_low_vision, 10)
#------
# restrict dataset to one MNREAD test only (subject s1, regular polarity)
data_s1 <- data_low_vision %>%
filter (subject == "s1", polarity == "regular")
# run the parameters estimation
data_low_vision_MRS_CPS <- curveParam_RT(data_s1, ps, vd, rt, err)
# inspect the newly created dataframe
data_low_vision_MRS_CPS
#------
# run the parameters estimation on the whole dataset grouped by subject and polarity
data_low_vision_MRS_CPS <- curveParam_RT(data_low_vision, ps, vd, rt, err,
subject, polarity)
# inspect the structure of the newly created dataframe
head(data_low_vision_MRS_CPS, 10)