profile
viewpoint
TJ Mahr tjmahr Madison, WI tjmahr.com Language and data scientist

startedlangcog/peekbank-shiny

started time in a day

startedlangcog/peekbank-website

started time in a day

startedeasystats/effectsize

started time in 3 days

startedjjallaire/draftpod

started time in 3 days

startedcoolbutuseless/svgpatternsimple

started time in 5 days

startedWilDoane/issuer

started time in 5 days

startedMSWorkers/support.Githubbers

started time in 5 days

startedmicrosoft/cascadia-code

started time in 6 days

push eventtjmahr/usedrake

TJ Mahr

commit sha 204d686d656aa0ad67c83619dd86151e9bea3a8a

have a more contentful demo post

view details

push time in 6 days

push eventtjmahr/usedrake

TJ Mahr

commit sha 2caa2e786bceb9ce0fd100c96d5c58cc6008a09a

add bookdown notebook

view details

push time in 6 days

startedjwilber/roughViz

started time in 8 days

startedBenjaminWolfe/signs

started time in 8 days

startedBenjaminWolfe/typewritr

started time in 8 days

starteddenisidoro/navi

started time in 13 days

startednushell/nushell

started time in 13 days

startedEmilHvitfeldt/prismatic

started time in 15 days

push eventtjmahr/tjmahr.github.io

TJ Mahr

commit sha 59d7281b7c154789fb9b7f851ee5fd8d83d2a9e7

add icons to cv

view details

push time in 23 days

push eventtjmahr/tjmahr.github.io

TJ Mahr

commit sha aeae899ae7cfaa8499cfd8af75c3bd2120596ada

use anchors and add two srclds

view details

push time in 23 days

push eventtjmahr/tjmahr.github.io

TJ Mahr

commit sha 573a2d17b6792290381b39c8905d729dba4e1828

add chicago satrday to cv

view details

push time in 23 days

startedbayesstuff/bfrms

started time in 23 days

push eventtjmahr/tjmahr.github.io

TJ Mahr

commit sha 5b844e24f1090c1ec98110ff6521caa44747f675

post icc bot

view details

push time in a month

push eventtjmahr/iccbot

TJ Mahr

commit sha b9e41f271472f0cba7077983435953842fcf2a89

update description

view details

push time in a month

push eventtjmahr/iccbot

TJ Mahr

commit sha e49dc4205f206c8cc19db3d1dfbfa670755a437d

set default app

view details

push time in a month

push eventtjmahr/iccbot

TJ Mahr

commit sha df7128815bd1b51b005a47908d8b3be5400d2079

update readme

view details

push time in a month

push eventtjmahr/iccbot

TJ Mahr

commit sha 5aaca34beeeb2868e6a20904feb8eec4385b9c35

see if i can put app in package

view details

push time in a month

push eventtjmahr/iccbot

TJ Mahr

commit sha 5428dcea827c6b6e38c3213855bc69548d68d363

make app part of package

view details

push time in a month

push eventtjmahr/tjmahr.github.io

TJ Mahr

commit sha efcf5f7fbd2f122e0eeef05f43cc42f0c2664d89

clean up readme

view details

push time in a month

push eventtjmahr/tjmahr.github.io

TJ Mahr

commit sha 7236db7f8dd06b8c6a0f4ece3281be5c04d592fb

write a paragraph

view details

push time in a month

push eventtjmahr/tjmahr.github.io

TJ Mahr

commit sha c5313e8783d4f5553cae1f07d8067fe1e1093adb

clean out files

view details

push time in a month

push eventtjmahr/tjmahr.github.io

TJ Mahr

commit sha 5e737c00b4d9c13474f1d0f55a2ab3818c554c56

clean out old files

view details

push time in a month

push eventtjmahr/tjmahr.github.io

TJ Mahr

commit sha b099ec9cce486d58570cbe8b930925537b485e0b

work on icc post

view details

TJ Mahr

commit sha 57fe06c4f9a69600e0a772bcd848637082f57281

add lead to theme

view details

push time in a month

push eventtjmahr/tjmahr.github.io

Josh Habdas

commit sha 706531b60da31c53f852e9c104b55a45fb4bd4ab

fix(includes/video): use https always (#945) closes #944

view details

Stelios Gavras

commit sha ef361fa174ef661363d3f3a35f3220f90548ab04

Update ui-text.yml (#958)

view details

Michael Rose

commit sha 19372f6470606513ab8344eaa2044a19aaef6119

Sync `/docs` with root changes

view details

Michael Rose

commit sha 23094d629fa051f033c0b12b99abfb916051002b

Update CHANGELOG and history

view details

Staticman

commit sha e539ccbfbd76e2029a74059db4b3de32615384e2

New comment. (#967)

view details

Staticman

commit sha a6c6ae1e1c1d4e99472892ac69e790dd97b373bc

New comment. (#968)

view details

Michael Rose

commit sha 24999441fcaf0ff9a58abb191d2cde81f147e403

Add link to comment

view details

Michael Rose

commit sha e0099ffa5ab959178b118f8cb00b90b7d2fb3934

Transition “hamburger” navicon on click to “X” navicon by adding `.close` to button - Close 969

view details

Michael Rose

commit sha 9361c53c43821dabf2f92dba31f35427f52bce55

Release 💎 4.4.1

view details

Michael Rose

commit sha 8494157e640f887389d5f51206a7ff4c48a9419b

Bump version to 4.4.1

view details

Michael Rose

commit sha 128977691a3150b8f71a66468d8be39b2afa8ef7

Toggle close button on `mouseleave` - Close #975

view details

Stelios Gavras

commit sha 47bf22936439ac28045374bf9b30c38339b04e4c

Update 08-ui-text.md (#972) * Update 08-ui-text.md * Update 08-ui-text.md

view details

Michael Rose

commit sha 53d4e34ab0b0ef025b9adbbc2adb2d26f96ced1e

Update CHANGELOG and history to reflect #972

view details

Michael Rose

commit sha 55c4f91b8e46ec9874fa13aa10b7340647aa0205

Merge branch 'master' of https://github.com/mmistakes/minimal-mistakes

view details

ojn

commit sha bb01fc8c32897ad2e7f2a6ceb225667a2155ad2d

Add Swedish language (#996) Translated this for my page today https://github.com/ojn/www.netkom.se/blob/master/_data/ui-text.yml I hope there are no spelling mistakes, since one should strive for "minimal mistakes"... :-)

view details

Michael Rose

commit sha 69b747474d4e450eb1368f25c31d3602c93ef72f

Add Swedish language

view details

Guillermo Calvo

commit sha b3410ed8b2c6e0e7493d1f5087e7ff9c98c9058d

Add new brand variable: $bitbucket-color (#1009)

view details

Michael Rose

commit sha 0c43a33a3d804e96c769883feaa3b0b3b2de159e

Merge branch 'master' of https://github.com/mmistakes/minimal-mistakes

view details

Michael Rose

commit sha 63d8d7469725a1051a1fee4db532235ab6a405be

Update CHANGELOG and history

view details

Michael Rose

commit sha ec5b255bfb8034cdccad1107c54d9de1dc438a72

Fix broken Kramdown TOC link

view details

push time in a month

push eventtjmahr/tjmahr.github.io

TJ Mahr

commit sha 53cc1dbd7ba701a7d8300efc764787c502fa26ba

fix yaml warning

view details

push time in a month

push eventtjmahr/iccbot

TJ Mahr

commit sha d334a8ea3b81071da818eaca279ea4e5704e0239

add version numbers

view details

push time in a month

push eventtjmahr/iccbot

TJ Mahr

commit sha 1032aaad26764d3df48cb73518642d1ed9815d5c

handle missing data. closes #1

view details

push time in a month

issue closedtjmahr/iccbot

what ICC to use when the two judges and ratees are not crossed

Bart rates kids 1, 2, 3, 4 Lisa rates kids 3, 4, 5, 6 Maggie rates kids 1, 2, 5, 6

Does this need two columns and no missing data or three columns but with some missing data?

closed time in a month

tjmahr

push eventtjmahr/iccbot

TJ Mahr

commit sha a3fa7ed3b8e0c8fd408831c669e7c290e8db1900

use lme4 in the app

view details

push time in a month

push eventtjmahr/iccbot

TJ Mahr

commit sha 9f024a4e6be909816d7c60f4f72714982b62fe69

fix some typos

view details

push time in a month

issue commenttjmahr/iccbot

what ICC to use when the two judges and ratees are not crossed

my hunch is that i need to change the backend to psych/lme4 to handle this missing data situation

tjmahr

comment created time in a month

issue openedtjmahr/iccbot

what ICC to use when the two judges and ratees are not crossed

Bart rates kids 1, 2, 3, 4 Lisa rates kids 3, 4, 5, 6 Maggie rates kids 1, 2, 5, 6

Does this need two columns and no missing data or three columns but with some missing data?

created time in a month

push eventtjmahr/iccbot

TJ Mahr

commit sha 9fdcd33248a33e743552c392da8c2391fcfcdc04

ignore more stuff

view details

push time in a month

startedcscherrer/Soss.jl

started time in a month

push eventtjmahr/iccbot

TJ Mahr

commit sha dac92f7ac2564b5223ec043b1d9c76efc247162d

clean code

view details

push time in a month

push eventtjmahr/iccbot

TJ Mahr

commit sha 2efe904a42f4b8cc3c30f078089beaec415b566a

fix typos

view details

push time in a month

push eventtjmahr/iccbot

TJ Mahr

commit sha c3199a2f7b495962068c89cbcd544bee1198c3ea

add build script

view details

push time in a month

push eventtjmahr/iccbot

TJ Mahr

commit sha cf50628a89dfd548e6ac972c5df0871085ada2a5

add icons

view details

push time in a month

push eventtjmahr/iccbot

TJ Mahr

commit sha 5256e829510646668483690233d15d21ec85aa86

work on docs

view details

push time in a month

push eventtjmahr/iccbot

TJ Mahr

commit sha 2d81282e17da1537b50b94825c72fa389c2fe0b6

work on supporting notes

view details

push time in a month

push eventtjmahr/iccbot

TJ Mahr

commit sha 693ee6d45412139d79f39e907c1710dbaae9f1c2

sync work

view details

push time in a month

push eventtjmahr/iccbot

TJ Mahr

commit sha cf80cbcd7042101d7c4f86736656eb1de05ecc0d

add boilerplate

view details

push time in a month

create barnchtjmahr/iccbot

branch : master

created branch time in a month

created repositorytjmahr/iccbot

created time in a month

startedhughjonesd/santoku

started time in a month

push eventtjmahr/readtextgrid

TJ Mahr

commit sha 249b248203056a6618a46a96cf190816c46d8085

better sentence

view details

push time in a month

push eventtjmahr/readtextgrid

TJ Mahr

commit sha 07c0095ffd006f58e510f54b84cc1d49ac288950

clean up hexsticker script

view details

push time in a month

push eventtjmahr/readtextgrid

TJ Mahr

commit sha 1d157a23b26a106517842d4bf7b996e27365bfd5

hexsticker

view details

push time in a month

push eventtjmahr/readtextgrid

TJ Mahr

commit sha eba85744bac4addcf1c44353c29b6a978a9278cf

use travis

view details

push time in a month

push eventtjmahr/readtextgrid

TJ Mahr

commit sha e4f2e701979e0fc311bf27bac0393cc8d8a255b5

clean up remove some pipes. remove dplyr dep. closes #1

view details

push time in a month

issue closedtjmahr/readtextgrid

remove dplyr dependency

I don't use it anywhere in the package but purrr::*_dfr() functions need it.

closed time in a month

tjmahr

issue openedtjmahr/readtextgrid

remove dplyr dependency

I don't use it anywhere in the package but purrr::*_dfr() functions need it.

created time in a month

startedmicrosoft/terminal

started time in a month

startedarcticicestudio/nord

started time in a month

startedmkearney/rstudiothemes

started time in a month

startedtjmahr/readtextgrid

started time in a month

startedtjmahr/readtextgrid

started time in a month

startedtjmahr/readtextgrid

started time in a month

push eventtjmahr/readtextgrid

TJ Mahr

commit sha 5d8c93b3cf91e3f9bf6fae47d4462ce47fed9609

pass package checks

view details

push time in a month

create barnchtjmahr/readtextgrid

branch : master

created branch time in a month

created repositorytjmahr/readtextgrid

Read in a 'Praat' 'TextGrid' file

created time in a month

startedgaborcsardi/asciicast

started time in a month

startedautoscore/autoscore

started time in a month

startedgadenbuie/cleanrmd

started time in 2 months

startedhemanth/functional-programming-jargon

started time in 2 months

startedcben/mathdown

started time in 2 months

startedgadenbuie/grkstyle

started time in 2 months

startedclauswilke/ggtext

started time in 2 months

startedevolus/pencil

started time in 2 months

starteddidi/delta

started time in 2 months

push eventHomeBankCode/rlena

TJ Mahr

commit sha 8e77e6948a0b548134642c0b7c9a4c7a349d78e6

work on speaker transitions. advances #8

view details

push time in 2 months

issue commentHomeBankCode/rlena

alter conversational turn count parameter

I won't be able to take this on, completely. I haven't work on LENA data in a couple years at this point, nor have I ever work on the conversation turn / contingency level of the data.

That said, I did clean up your proof-of-concept code, and I have added a prototype of the code to the package. The two functions are gather_speaker_transitions(its_xml) and gather_speaker_transitions_from_segments(data_segments).

Their code is in extract.R. It's basically your proof of concept code, but I broke up the logic to handle xml or segments in a dataframe, cleaned up the prefixed names so the code to work inside of a package, and changed the filtering. Now, the main idea to enumerate all the speaker transitions in the segments dataframe (excluding transitions from/to SIL), take lags, and filter down to the legal transitions.

The functions are marked as internal so that you can try them using the package but they are separate from the other more complete functions.

The next steps would be to battle-test this code on real LENA data to make sure it works correctly. If there is other python/perl code that does the same thing, we could validate against that. I don't what else there is. Once, it works to your satisfaction one would have to finish writing documentation for it in the package and in the README. This would be a great opportunity for a student going deep on this kind of data. :wink:

# for now treat as internal/experimental
#' Gather speaker transitions
#'
#' Combs throughs speech segments and returns a dataframe of speaker
#' transition.
#'
#' @param legal_transitions a character vector with transitions to keep. If
#'   `NULL` (the default), only `c("MAN_CHN", "MAN_CHN", "FAN_CHN", "CHN_FAN")`
#'   are used.
#' @inheritParams extract
#' @export
#' @keywords internal
#' @return a dataframe with one row per segment. It contains the columns
#'   `transSpkr` (speaker transition as `previous_current`,) `transSegId`
#'   (segment IDs), and `transTime` (the time lag between the two segments).
gather_speaker_transitions <- function(its_xml, legal_transitions = NULL) {
  its_xml %>%
    gather_segments() %>%
    gather_speaker_transitions_from_segments(legal_transitions)
}

# for now treat as internal/experimental
#' @param data_segments a dataframe produced by `gather_segments()`
#' @export
#' @keywords internal
#' @rdname gather_speaker_transitions
gather_speaker_transitions_from_segments <- function(data_segments,
                                                     legal_transitions = NULL) {
  if (is.null(legal_transitions)) {
    legal_transitions <- c(
      "MAN_CHN", "MAN_CHN",
      "FAN_CHN", "CHN_FAN"
    )
  }

  segments <- data_segments %>%
    tidyr::gather(
      key = "startEnd",
      value = "time",
      .data$startTime,
      .data$endTime
    ) %>%
    dplyr::arrange(.data$segId)

  no_pauses <- segments %>%
    dplyr::filter(.data$blkType != "Pause")

  # Label different kinds of transitions
  transitions <- no_pauses %>%
    dplyr::filter(.data$spkr != "SIL") %>%
    dplyr::mutate(
      transStartEnd =
        paste0(dplyr::lag(.data$startEnd, 1), "_", .data$startEnd),
      transSpkr =
        paste0(dplyr::lag(.data$spkr, 1), "_", .data$spkr),
      transTime =
        .data$time - dplyr::lag(.data$time),
      transSegId =
        paste0(dplyr::lag(.data$segId, 1), "_", .data$segId)
    )

  to_select <- c(
    "spkr", "startEnd", "time", "segId", "convTurnCount", "blkId",
    "transSpkr", "transSegId", "transTime"
  )

  transitions %>%
    # exclude within-turn transitions
    dplyr::filter(.data$transStartEnd != "startTime_endTime") %>%
    dplyr::filter(transSpkr %in% c(legal_transitions)) %>%
    dplyr::select(dplyr::one_of(to_select)) %>%
    tidyr::spread(.data$startEnd, .data$time)
}

Your demo then yields the same results.

library(rlena)

demo_block_segs <- structure(list(
  itsId = c(
    "20160511_125444_009456", "20160511_125444_009456",
    "20160511_125444_009456", "20160511_125444_009456", "20160511_125444_009456",
    "20160511_125444_009456", "20160511_125444_009456", "20160511_125444_009456",
    "20160511_125444_009456", "20160511_125444_009456", "20160511_125444_009456",
    "20160511_125444_009456", "20160511_125444_009456", "20160511_125444_009456",
    "20160511_125444_009456", "20160511_125444_009456", "20160511_125444_009456",
    "20160511_125444_009456", "20160511_125444_009456", "20160511_125444_009456"
  ), recId = c(
    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
    1, 1, 1, 1
  ), blkId = c(
    64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
    64, 64, 64, 64, 64, 64, 64, 64, 64, 64
  ), blkTypeId = c(
    32, 32,
    32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
    32, 32
  ), segId = c(
    989, 990, 991, 992, 993, 994, 995, 996, 997,
    998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008
  ), blkType = c(
    "Conversation", "Conversation", "Conversation",
    "Conversation", "Conversation", "Conversation", "Conversation",
    "Conversation", "Conversation", "Conversation", "Conversation",
    "Conversation", "Conversation", "Conversation", "Conversation",
    "Conversation", "Conversation", "Conversation", "Conversation",
    "Conversation"
  ), spkr = c(
    "CHN", "SIL", "FAN", "SIL", "SIL",
    "SIL", "FAN", "SIL", "SIL", "CHN", "SIL", "CHN", "SIL", "SIL",
    "SIL", "SIL", "CHN", "SIL", "FAN", "FAN"
  ), startTime = c(
    1842.47,
    1843.5, 1845.32, 1846.92, 1847.72, 1850.76, 1851.65, 1853.67,
    1854.89, 1856.13, 1856.73, 1858.1, 1858.7, 1859.5, 1860.81, 1862.54,
    1863.54, 1864.19, 1865.47, 1866.71
  ), endTime = c(
    1843.5, 1845.32,
    1846.92, 1847.72, 1850.76, 1851.65, 1853.67, 1854.89, 1856.13,
    1856.73, 1858.1, 1858.7, 1859.5, 1860.81, 1862.54, 1863.54, 1864.19,
    1865.47, 1866.71, 1867.37
  ), startClockTime = structure(c(
    1462881502.47,
    1462881503.5, 1462881505.32, 1462881506.92, 1462881507.72, 1462881510.76,
    1462881511.65, 1462881513.67, 1462881514.89, 1462881516.13, 1462881516.73,
    1462881518.1, 1462881518.7, 1462881519.5, 1462881520.81, 1462881522.54,
    1462881523.54, 1462881524.19, 1462881525.47, 1462881526.71
  ), class = c(
    "POSIXct",
    "POSIXt"
  ), tzone = "UTC"), endClockTime = structure(c(
    1462881503.5,
    1462881505.32, 1462881506.92, 1462881507.72, 1462881510.76, 1462881511.65,
    1462881513.67, 1462881514.89, 1462881516.13, 1462881516.73, 1462881518.1,
    1462881518.7, 1462881519.5, 1462881520.81, 1462881522.54, 1462881523.54,
    1462881524.19, 1462881525.47, 1462881526.71, 1462881527.37
  ), class = c(
    "POSIXct",
    "POSIXt"
  ), tzone = "UTC"), startClockTimeLocal = structure(c(
    1462863502.47,
    1462863503.5, 1462863505.32, 1462863506.92, 1462863507.72, 1462863510.76,
    1462863511.65, 1462863513.67, 1462863514.89, 1462863516.13, 1462863516.73,
    1462863518.1, 1462863518.7, 1462863519.5, 1462863520.81, 1462863522.54,
    1462863523.54, 1462863524.19, 1462863525.47, 1462863526.71
  ), class = c(
    "POSIXct",
    "POSIXt"
  ), tzone = "UTC"), endClockTimeLocal = structure(c(
    1462863503.5,
    1462863505.32, 1462863506.92, 1462863507.72, 1462863510.76, 1462863511.65,
    1462863513.67, 1462863514.89, 1462863516.13, 1462863516.73, 1462863518.1,
    1462863518.7, 1462863519.5, 1462863520.81, 1462863522.54, 1462863523.54,
    1462863524.19, 1462863525.47, 1462863526.71, 1462863527.37
  ), class = c(
    "POSIXct",
    "POSIXt"
  ), tzone = "UTC"), average_dB = c(
    -25.96, -64.98, -40.94,
    -50.58, -75.97, -65.56, -31.76, -62.86, -70.25, -22.05, -53.64,
    -32.33, -47.33, -72.13, -61.01, -60.97, -31.2, -74.41, -37.73,
    -36.97
  ), peak_dB = c(
    -20.45, -47.92, -30.99, -39.03, -61.14,
    -57.3, -13.71, -51.49, -56.03, -16.31, -39.93, -25.91, -38.41,
    -64.25, -48.82, -46.28, -25.73, -64.3, -31.68, -29.45
  ), recordingInfo = c(
    NA_character_,
    NA_character_, NA_character_, NA_character_, NA_character_, NA_character_,
    NA_character_, NA_character_, NA_character_, NA_character_, NA_character_,
    NA_character_, NA_character_, NA_character_, NA_character_, NA_character_,
    NA_character_, NA_character_, NA_character_, NA_character_
  ),
  conversationInfo = c(
    "BC|32|2|0|CIC|TIFI|FI", NA, "RC|32|3|1|CIC|TIFR|FI",
    NA, NA, NA, "RC|32|3|1|CIC|NT|FH", NA, NA, "RC|32|3|1|CIC|TIFE|FI",
    NA, "RC|32|3|1|CIC|NT|FH", NA, NA, NA, NA, "RC|32|3|1|CIC|TIFI|FH",
    NA, "RC|32|4|2|CIC|TIFR|FI", "EC|32|4|2|CIC|NT|FH"
  ), convStatus = c(
    "BC",
    NA, "RC", NA, NA, NA, "RC", NA, NA, "RC", NA, "RC", NA, NA,
    NA, NA, "RC", NA, "RC", "EC"
  ), convCount = c(
    32L, NA, 32L,
    NA, NA, NA, 32L, NA, NA, 32L, NA, 32L, NA, NA, NA, NA, 32L,
    NA, 32L, 32L
  ), convTurnCount = c(
    2L, NA, 3L, NA, NA, NA,
    3L, NA, NA, 3L, NA, 3L, NA, NA, NA, NA, 3L, NA, 4L, 4L
  ),
  convResponseCount = c(
    0L, NA, 1L, NA, NA, NA, 1L, NA, NA,
    1L, NA, 1L, NA, NA, NA, NA, 1L, NA, 2L, 2L
  ), convType = c(
    "CIC",
    NA, "CIC", NA, NA, NA, "CIC", NA, NA, "CIC", NA, "CIC", NA,
    NA, NA, NA, "CIC", NA, "CIC", "CIC"
  ), convTurnType = c(
    "TIFI",
    NA, "TIFR", NA, NA, NA, "NT", NA, NA, "TIFE", NA, "NT", NA,
    NA, NA, NA, "TIFI", NA, "TIFR", "NT"
  ), convFloorType = c(
    "FI",
    NA, "FI", NA, NA, NA, "FH", NA, NA, "FI", NA, "FH", NA, NA,
    NA, NA, "FH", NA, "FI", "FH"
  ), femaleAdultWordCnt = c(
    NA,
    NA, 7.57, NA, NA, NA, 6.61, NA, NA, NA, NA, NA, NA, NA, NA,
    NA, NA, NA, 5.61, 3.25
  ), femaleAdultNonSpeechLen = c(
    NA,
    NA, 0, NA, NA, NA, 0, NA, NA, NA, NA, NA, NA, NA, NA, NA,
    NA, NA, 0, 0
  ), femaleAdultUttCnt = c(
    NA, NA, 0, NA, NA, NA,
    0, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 0, 0
  ), femaleAdultUttLen = c(
    NA,
    NA, 0, NA, NA, NA, 0, NA, NA, NA, NA, NA, NA, NA, NA, NA,
    NA, NA, 0, 0
  ), childUttCnt = c(
    1, NA, NA, NA, NA, NA, NA,
    NA, NA, 1, NA, 1, NA, NA, NA, NA, 1, NA, NA, NA
  ), childUttLen = c(
    0.78,
    NA, NA, NA, NA, NA, NA, NA, NA, 0.47, NA, 0.6, NA, NA, NA,
    NA, 0.51, NA, NA, NA
  ), startCry1 = c(
    NA_character_, NA_character_,
    NA_character_, NA_character_, NA_character_, NA_character_,
    NA_character_, NA_character_, NA_character_, NA_character_,
    NA_character_, NA_character_, NA_character_, NA_character_,
    NA_character_, NA_character_, NA_character_, NA_character_,
    NA_character_, NA_character_
  ), endCry1 = c(
    NA_character_,
    NA_character_, NA_character_, NA_character_, NA_character_,
    NA_character_, NA_character_, NA_character_, NA_character_,
    NA_character_, NA_character_, NA_character_, NA_character_,
    NA_character_, NA_character_, NA_character_, NA_character_,
    NA_character_, NA_character_, NA_character_
  ), childCryVfxLen = c(
    0,
    NA, NA, NA, NA, NA, NA, NA, NA, 0, NA, 0, NA, NA, NA, NA,
    0, NA, NA, NA
  ), startUtt1 = c(
    "PT1842.47S", NA, NA, NA, NA,
    NA, NA, NA, NA, "PT1856.13S", NA, "PT1858.38S", NA, NA, NA,
    NA, "PT1863.54S", NA, NA, NA
  ), endUtt1 = c(
    "PT1843.25S",
    NA, NA, NA, NA, NA, NA, NA, NA, "PT1856.60S", NA, "PT1858.70S",
    NA, NA, NA, NA, "PT1864.05S", NA, NA, NA
  ), startVfx1 = c(
    NA_real_,
    NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_,
    NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_,
    NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_,
    NA_real_
  ), endVfx1 = c(
    NA_real_, NA_real_, NA_real_, NA_real_,
    NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_,
    NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_,
    NA_real_, NA_real_, NA_real_, NA_real_
  ), maleAdultWordCnt = c(
    NA_real_,
    NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_,
    NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_,
    NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_,
    NA_real_
  ), maleAdultNonSpeechLen = c(
    NA_real_, NA_real_,
    NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_,
    NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_,
    NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_
  ), maleAdultUttCnt = c(
    NA_real_, NA_real_, NA_real_, NA_real_,
    NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_,
    NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_,
    NA_real_, NA_real_, NA_real_, NA_real_
  ), maleAdultUttLen = c(
    NA_real_,
    NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_,
    NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_,
    NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_,
    NA_real_
  ), startUtt2 = c(
    NA_character_, NA_character_, NA_character_,
    NA_character_, NA_character_, NA_character_, NA_character_,
    NA_character_, NA_character_, NA_character_, NA_character_,
    NA_character_, NA_character_, NA_character_, NA_character_,
    NA_character_, NA_character_, NA_character_, NA_character_,
    NA_character_
  ), endUtt2 = c(
    NA_character_, NA_character_,
    NA_character_, NA_character_, NA_character_, NA_character_,
    NA_character_, NA_character_, NA_character_, NA_character_,
    NA_character_, NA_character_, NA_character_, NA_character_,
    NA_character_, NA_character_, NA_character_, NA_character_,
    NA_character_, NA_character_
  ), startUtt3 = c(
    NA_character_,
    NA_character_, NA_character_, NA_character_, NA_character_,
    NA_character_, NA_character_, NA_character_, NA_character_,
    NA_character_, NA_character_, NA_character_, NA_character_,
    NA_character_, NA_character_, NA_character_, NA_character_,
    NA_character_, NA_character_, NA_character_
  ), endUtt3 = c(
    NA_character_,
    NA_character_, NA_character_, NA_character_, NA_character_,
    NA_character_, NA_character_, NA_character_, NA_character_,
    NA_character_, NA_character_, NA_character_, NA_character_,
    NA_character_, NA_character_, NA_character_, NA_character_,
    NA_character_, NA_character_, NA_character_
  ), startCry2 = c(
    NA_character_,
    NA_character_, NA_character_, NA_character_, NA_character_,
    NA_character_, NA_character_, NA_character_, NA_character_,
    NA_character_, NA_character_, NA_character_, NA_character_,
    NA_character_, NA_character_, NA_character_, NA_character_,
    NA_character_, NA_character_, NA_character_
  ), endCry2 = c(
    NA_character_,
    NA_character_, NA_character_, NA_character_, NA_character_,
    NA_character_, NA_character_, NA_character_, NA_character_,
    NA_character_, NA_character_, NA_character_, NA_character_,
    NA_character_, NA_character_, NA_character_, NA_character_,
    NA_character_, NA_character_, NA_character_
  ), startCry3 = c(
    NA_character_,
    NA_character_, NA_character_, NA_character_, NA_character_,
    NA_character_, NA_character_, NA_character_, NA_character_,
    NA_character_, NA_character_, NA_character_, NA_character_,
    NA_character_, NA_character_, NA_character_, NA_character_,
    NA_character_, NA_character_, NA_character_
  ), endCry3 = c(
    NA_character_,
    NA_character_, NA_character_, NA_character_, NA_character_,
    NA_character_, NA_character_, NA_character_, NA_character_,
    NA_character_, NA_character_, NA_character_, NA_character_,
    NA_character_, NA_character_, NA_character_, NA_character_,
    NA_character_, NA_character_, NA_character_
  )
), row.names = c(
  NA,
  -20L
), class = c("tbl_df", "tbl", "data.frame"))


demo_block_segs %>% 
  gather_speaker_transitions_from_segments()
#> # A tibble: 3 x 8
#>   spkr  segId convTurnCount blkId transSpkr transSegId transTime startTime
#>   <chr> <dbl>         <int> <dbl> <chr>     <chr>          <dbl>     <dbl>
#> 1 CHN     998             3    64 FAN_CHN   995_998         2.46     1856.
#> 2 FAN     991             3    64 CHN_FAN   989_991         1.82     1845.
#> 3 FAN    1007             4    64 CHN_FAN   1005_1007       1.28     1865.

<sup>Created on 2019-08-07 by the reprex package (v0.3.0)</sup>

ebergelson

comment created time in 2 months

issue commentHomeBankCode/rlena

alter conversational turn count parameter

Just some notes from the manuals.

Statistical modeling is further used to detect Conversational Turns (CT), or back and forth alternation between the key child and an adult. For this purpose a conversation was defined as a contiguous region containing live human speech separated from the next conversation by a pause region of at least five seconds duration which contains only non-live-human speech audio signals. CTs cannot cross conversation boundaries. -- [The LENA TM Language Environment Analysis System: Audio Specifications of the DLP-0121]

The duration of a pause is by definition greater than or equal to five seconds when it occurs between two consecutive conversations. however, a pause inside a conversation may be less than five seconds in duration.
-- [The LENA™ language environment analysis system: The Interpreted Time Segments (ITS) File]

Note that there are two types of Vocalization Activity Block that include the key child, an adult, and another child (XIC & XIOCAC). The block types differ by whether or not Conversational Turns were produced in the block. When key child vocalizations and adult speech are contiguous, Conversational Turns may be produced, but when vocalizations from the other child intercede between key child and adult segments, Conversational Turns are not produced. -- [The LENA Advanced Data Extractor (ADEX) User Guide]

ebergelson

comment created time in 2 months

push eventtjmahr/rprime

TJ Mahr

commit sha f1cd5e4cee6199bb9dff738f652c055f026630a1

fix warning in unit tests

view details

TJ Mahr

commit sha 25c56aa2668310e3dfbae1f58c5d101fbb303eb0

fix "Warning: roxygen2 requires Encoding: UTF-8" warning

view details

TJ Mahr

commit sha f049480edd89b57f96126cfa53b99417ff766068

use_tidy_description()

view details

TJ Mahr

commit sha 0f0c3cb800cd77568ac32bd8f8660ab931235421

rebuild site

view details

push time in 2 months

push eventtjmahr/rprime

TJ Mahr

commit sha c6afdac196a080f54a02bf85aa6cc5d720a9091d

redo travis file

view details

push time in 2 months

push eventtjmahr/rprime

TJ Mahr

commit sha 6963cfdd115d641e36973670b870a91af0392c97

switch to pkgdown

view details

push time in 2 months

startedAdolfVonKleist/Phonetisaurus

started time in 3 months

fork tjmahr/r-cmudict

R data package with some pronunciation dictionaries

fork in 3 months

startedtrevorld/r-cmudict

started time in 3 months

PR opened easystats/bayestestR

add an ORCID

I'm adding my ORCID to the DESCRIPTION file.

+3 -2

0 comment

1 changed file

pr created time in 3 months

push eventtjmahr/bayestestR

TJ Mahr

commit sha 5f26e2798498149b62baf31883527257dabaeebd

add an ORCID

view details

push time in 3 months

fork tjmahr/bayestestR

:ghost: Utilities for analyzing Bayesian models and posterior distributions

https://easystats.github.io/bayestestR/

fork in 3 months

issue commentopenjournals/joss-reviews

[REVIEW]: bayestestR: Describing Effects and their Uncertainty, Existence and Significance within the Bayesian Framework

Also, thanks, in particular, for adding the ETI functionality for the ROPE methods.

whedon

comment created time in 3 months

issue commentopenjournals/joss-reviews

[REVIEW]: bayestestR: Describing Effects and their Uncertainty, Existence and Significance within the Bayesian Framework

We have added a paragraph to explain the figure more in detail:

The lollipops represent the density of a point-null on the prior distribution (the blue lollipop on the dotted distribution) and on the posterior distribution (the red lollipop on the yellow distribution). The ratio between the two - the Svage-Dickey ratio - indicates the degree by which the mass of the parameter distribution has shifted away from or closer to the null.

Just fix the typo in Savage-Dickey, and I'm satisfied.

whedon

comment created time in 3 months

pull request commenteasystats/bayestestR

dev

Got it. Demo of AUC stuff is not necessary.

DominiqueMakowski

comment created time in 3 months

startednimirea/phonRNN

started time in 3 months

issue commentopenjournals/joss-reviews

[REVIEW]: bayestestR: Describing Effects and their Uncertainty, Existence and Significance within the Bayesian Framework

I worked with version 0.2.4, the most recent on the GitHub repository, although the version mentioned in the checklist is 0.2.3

Community guidelines: Are there clear guidelines for third parties wishing to 1) Contribute to the software 2) Report issues or problems with the software 3) Seek support

I do not see anything for contribution guidelines. I would add a CONTRIBUTING.md file.

Comments

The amount of documentation to support the package is very generous. For my review, however, I focused on the README and the software paper.

This package borrows a lot from the Kruschke school of Bayesian inference. HDI and ROPE are a distinct feature of his tutorials and textbook; one does not seem them very often in works by, say, Stan developers. Therefore, this package is tremendously useful for those reading his tutorials, or for people like me, who occasionally will quantify an effect with a ROPE percentage or who want to learn about using Bayes factors.

The ROPE procedure and other indices use the highest density interval. Is there any option to use an equal-tailed interval?

README

I was confused by the README. When I see R code followed immediately by a plot, I assume that the R code produced the plot. But the functions in the README produce text output (which is not included in the README) and they do not produce plots. I would include the text output of the R code. I would also note that the figures there are diagrams meant to illustrate the statistical concept. The software paper does a good job of making this point clear.

I don't see a demo for eti().

Moreover, 89 is the highest prime number that does not exceed the already unstable 95% threshold (McElreath, 2015).

The primeness of 89 is not important. McElreath's choice of 89 in Statistical Rethinking text was to illustrate that interval widths are arbitrary and that there is nothing special about 95 or 90 compared to 89.

equivalence_test() a Test for Practical Equivalence based on the

Needs a verb.

I don't understand the Bayes Factor diagram in the README.

a range of -0.05 to -0.05.

This range is the same number twice.

Savage-Dickey density ratio is computed

Should this have a reference?

Probability of a Value

density_at() isn't doing computing a probability. I would remove estimate_probability() and probability_at() because they are just aliases for density functions and density is the more appropriate term.

I don't see a demo for the area under the curve functions.

Documentation

A ROPE-based p of 97% means that there is a probability of .97 that a parameter (described by its posterior distribution) is outside the ROPE. On the contrary, a ROPE-based p of -97% means that there is a probability of .97 that the parameter is inside the ROPE. (R/p_rope.R)

I don't understand how a p-value can get a negative percentage. What would a 0% p-value mean? If this index doesn't act like a familiar p-value, it is probably the wrong name for it.

Software paper

The first mention of bayestestR in the second paragraph is awkward. Specifically, the text shifts from talking about common ways to describe effects in a Bayesian framework to talking about the features of the package:

Additionally, bayestestR also focuses on implementing a Bayesian null-hypothesis testing framework ...

It's great that the output of point_estimate() prints out mean/median/map to make it clear what value is being used.

However, bayestestR functions also include plotting capabilities via the see package (Lüdecke, Waggoner, Ben-Shachar, & Makowski, 2019).

I don't see any plotting examples in the README or documentation pages. I see plotting methods in the NAMESPACE.

I think it would worthwhile to demonstrate that the functions demoed in the article also work on models. For example, I can call p_direction() and bayesfactor_parameters() directly on a model and get the results for each parameter. One of the key contributions of this package is that it can make these indices immediately available to users who are comfortable with particular brms and rstanarm.

Proofreading concerns

Every reference of Kruschke spells out the author's full name.

Figure 2 should be referenced in the text.

(i.e. the difference

Needs a comma.

The Bayesian framework allows to neatly delineate

Allows one.

developped

Nevertheless, in the absence of user-provided values, bayestestR will automatically find an appropriate range

Nevertheless doesn't make sense.

bases on prior and posterior samples

Based.

The system for building the references section should protect some words from being converted to lowercase. (In LaTeX, this is done with {}). Right now, for example, it says Brms: An r package for bayesian multilevel models using stan but I would make sure that the system produces brms: An R package for Bayesian multilevel models using Stan.

whedon

comment created time in 3 months

issue commentopenjournals/joss-reviews

[REVIEW]: bayestestR: Describing Effects and their Uncertainty, Existence and Significance within the Bayesian Framework

I'm in the middle of moving. I would like to review it but won't be able to look at it until next week.

whedon

comment created time in 3 months

startedhadley/r-pkgs

started time in 3 months

startedlorenzwalthert/pre-commit-hooks

started time in 3 months

startednoffle/art-of-readme

started time in 3 months

startednick-ulle/rstatic

started time in 3 months

more