Dan Kleinman
dankleinman.bsky.social
Dan Kleinman
@dankleinman.bsky.social
Research scientist at Yale Child Study Center (formerly Haskins Labs). PhD. Interested in language, dyslexia, bilingualism, EEG, stats. Proponent of summary limericks. I probably drink more tea than you. Posts are ~50% science; opinions are 100% my own.
I think of this sometimes when trying to show RAs how to put an EEG cap on a participant:

Me: “Put your hands in the cap like this”
RA, following along: “Okay!”
Me: “Now stretch it like this as you bring it down”
RA: “Okay…”
Me: “Now do this [very complicated hand motion], and ta-da!”
RA: “…”
November 7, 2025 at 7:22 PM
…Didn’t everyone?
November 1, 2025 at 5:52 PM
“This shirt is ‘dry-clean only’. Which means… it’s dirty.” –Mitch Hedberg
October 7, 2025 at 4:54 PM
Saw this for the first time last year (in the theater!) and had the same thought. As a psycholinguist, I loved that is-he-or-isn’t-he aspect to the hallucinatory speech restoration — same with the ever-changing emphasis on the word “us” in the key sentence. Talk about shades of meaning!
August 24, 2025 at 4:34 PM
I’m working with an RA now on a research project in which she characterizes the errors made by students with dyslexia during a phonological processing task. Lots of granular detail and discussions about “What processes could have produced this?” Just delightful stuff (if somewhat painstaking).
August 21, 2025 at 4:59 PM
Nice! I find there’s something clarifying about trying to describe (or reading others describe) behavior(/speech) closely, especially in less structured situations. Paradigms usually allow us to take those things for granted! Always feels to me like a return to the roots of the field.
August 21, 2025 at 4:58 PM
Reminds me of that paper listing all the ways people describe effects with p-values north of .05.
August 21, 2025 at 4:48 PM
I call this the “get on my lawn” trope.
August 21, 2025 at 3:35 PM
Reminds me of an old lawsuit: A guy went to an all-you-can-eat sushi place in LA and removed all the rice from each piece. The owner said it wasn’t all-you-can-eat sashimi, and that he relied on customers filling up on rice. The customer — a diabetic — sued for discrimination (and I think lost).
August 17, 2025 at 3:20 AM
You must have some cheap ice cream places near you, then — that would cost around $8/lb. where I live. Might make sense if you want to stock up your pantry on sprinkles, though…
August 17, 2025 at 3:06 AM
It’s okay not to understand contrast coding (though it’s important to learn). But *everyone* should be able to look at their model output and say, “This doesn’t match what I’m seeing in my data, and I need to understand why before proceeding.” Don’t just throw up your hands and trust your model!
August 15, 2025 at 6:07 PM
For instance, I have reviewed multiple papers which used linear mixed-effects models to analyze data and reported effects that are impossible to see in the tables or figures — because they were using treatment-coded contrasts but they interpreted them (incorrectly) as sum-coded contrasts.
August 15, 2025 at 6:07 PM
We had a nice conversation about null/alternative hypotheses and data generation. We also talked about how a paper can be useful for some things (ideas, data coding) but not others (stats).

At any rate: Please don't do stats this way!
August 8, 2025 at 4:18 PM
You will not be surprised to learn that the results were significant, t(4) ≈ 9.

To explain to my RA why this is not a good idea, we ran some simulations. If you throw a 6-sided die 6 times and then compare the lower & higher values, p(p<.05) = 41%. Throw it 8 times, p = 85%. 10 times, p = 97%.
August 8, 2025 at 4:18 PM
Specifically, the author saw that some students made more errors than others. He divided them into two groups of 3 based on their error counts, then used a t-test to compare the number of errors they made.

🤯

(I'm not even clear on why – I think he wanted to show that performance was variable.)
August 8, 2025 at 4:18 PM
n.b. This worked perfectly for the tables I loaded (which I verified by comparing every cell). However, I don't know whether all JMP features are supported, so make sure you check your inputs/outputs given the features you use.
August 6, 2025 at 3:56 PM
The process couldn't be easier. After getting packages installed and loaded, you read in the data using Julia command readjmp() (within R command julia_command()) and then transfer the result to the R workspace using julia_eval(). Magic!
August 6, 2025 at 3:56 PM
The R package JuliaCall (cran.r-project.org/web/packages...), which allows you to call Julia commands from R. It also allows you to install Julia directly from the R command line, though that piece didn't work for me so I installed Julia separately (v1.8.5; later versions may not be compatible).
README
cran.r-project.org
August 6, 2025 at 3:56 PM
The key ingredient is Jaakko Ruohio's Julia package JMPReader (github.com/jaakkor2/JMP...), which can import JMP's proprietary data tables into Julia using the command readjmp(). I don't use Julia, though, which brings us to the other half of the solution:
GitHub - jaakkor2/JMPReader.jl: JMP data tables reader for Julia language
JMP data tables reader for Julia language. Contribute to jaakkor2/JMPReader.jl development by creating an account on GitHub.
github.com
August 6, 2025 at 3:56 PM