Jamovi vs JASP
Feb 4, 2025
Comparing two free statistics software packages, Jamovi and JASP, for ease of use, features, and usability in some common tests
View Video Transcript
0:00
so hi my name is Dave uh I'm going to
0:03
guide you through this little tour of
0:05
jamovi and jasp where we compare the two
0:08
of them it's pretty quick skip any part
0:10
that you don't feel is important to you
0:13
or is necessary my background is mostly
0:15
in organizational change and
0:18
organizational research but I also teach
0:21
statistics as part of other courses so
0:24
let's get
0:28
started so here we are and you can see
0:31
that there are some things in Gray these
0:33
are the things that the SPSS file we
0:35
imported already had labeled as missing
0:37
values you can make everything bigger or
0:40
smaller you can change the color palette
0:42
and such which is nice and you can add
0:45
new modules which is nice so you see
0:48
these are modules that are already here
0:51
and then there's other ones that we can
0:52
add in these are bundled so we can go
0:55
out to the library and we can add a few
0:58
things so for example we can add an
1:00
Editor to run R code inside Jovi which
1:02
then gives you syntax let's just get out
1:05
of here and go back in it is really nice
1:07
to have the missing values here in the
1:09
data editor showing up as gray SPSS
1:11
doesn't do that at least the versions
1:13
I've used don't and in fact it's the
1:15
first time I've ever seen it like this
1:17
now if you want to see which values are
1:20
designated as missing you double click
1:22
on the variable name and here is the
1:25
variable description or variable label
1:28
as SPSS calls it and that's that's
1:30
imported directly from SPSS of course
1:32
you can set it here or change it here
1:34
yourself if you want to along with what
1:36
kind of measurement it is so this is
1:38
nominal which means that the numbers
1:40
aren't really
1:42
numbers and that makes sense because
1:44
it's basically a yes or no question here
1:47
uh should people be able to use health
1:48
insurance for abortion yes or no and
1:52
then you've got three things that are
1:53
labeled is missing as you see here 0 8
1:55
and N 0 is inapplicable eight is don't
1:59
know nine is no answer so these are all
2:01
uh missing values and you can click on
2:04
any of these once you've double clicked
2:06
in here and you see the same results
2:08
let's take a look now at uh transforming
2:11
and recoding basically recoding is here
2:14
under transform you might notice by the
2:17
way I should point out that it's showing
2:19
you value labels so the actual values
2:23
here are own numbers right now where it
2:26
says people should be able let's see
2:29
people should not be able is what it
2:31
says so that would actually be the
2:32
number two here so let's take a look at
2:36
this one here do you have a moral abort
2:39
uh a moral opposition to abortion if you
2:42
take a look then you find that uh one is
2:46
opposed two is not opposed three is it
2:48
depends normally we would want it to go
2:51
1 32 basically because we'd want it
2:53
depends to be in the middle so if you're
2:56
opposed you're on one side if you're not
2:57
opposed you're on the other and if you
2:59
say it depends you're in the middle so
3:01
really we have to swap this two and this
3:03
three well how do we do that is we
3:05
transform so how do we take this one and
3:09
three and swap them is we can either
3:12
compute a new variable with everything
3:15
set up correctly that turns out not to
3:18
actually work very well here or we
3:21
transform and we say that we will use a
3:24
new
3:26
transformation and so we add a recode
3:30
condition that if the source equals
3:33
notice the two equal signs two then we
3:37
use three we add a condition if it
3:40
equals three we use two now in SPSS if
3:45
you did this you would run into trouble
3:46
because it would convert all the twos to
3:48
threes and then all the threes including
3:51
the ones that used to be twos would go
3:53
to two but here you will notice here it
3:57
will actually work properly oh let's
3:59
also do a Source equals 1 we'll
4:01
basically copy those over and else we
4:04
will use zero we'll call it uh
4:09
swap two and
4:12
three and we will say that the
4:14
description is just
4:17
recoded to Three
4:20
swap and the suffix will be
4:24
fixed and uh we'll go back up and now we
4:28
should see that it is is fixed now of
4:30
course it's just showing the numbers now
4:33
if you take a look then you see that
4:35
where it says morally opposed it's one
4:37
just says it was where it says it
4:39
depends it's now two let's move this
4:42
over and not morally opposed is three so
4:45
it's now I apologize for doing the most
4:47
complicated thing nearly
4:49
first but recoding is of in handy so
4:53
let's say that we take a look at the
4:55
people who want to pay for abortion with
4:58
insurance or not and we will see how
5:00
they feel about abortion being moral
5:03
you'll notice that as I put things in
5:05
it's
5:06
already taking a look at the T tests
5:09
again grouping variable it has to be uh
5:12
one a binary variable a dichotomus
5:14
variable one where there's only two
5:17
possible values or else this will not
5:19
work you can't say like you can in SPSS
5:21
or pspp I'm going to put in this
5:24
variable of age groups and compare the
5:26
youngest and the oldest by specifying
5:29
that I'm going to to compare say groups
5:30
one with group four won't work uh I can
5:34
show you by will put AB moral in here
5:37
and it says must have exactly two levels
5:40
uh so here we see that there is a
5:42
violation of the Assumption of equal
5:44
variances SPSS will give you two sets of
5:47
results one where it assumes equal
5:50
variances and one where it doesn't here
5:52
you have to know to click on Welches or
5:54
man Whitney depending on the situation
5:57
I'm going to stick with Welches and you
5:59
see it's the same P value it's even the
6:02
same statistic different degrees of
6:04
freedom and you're not violating any uh
6:07
rules I always like to see the
6:09
descriptives so I can compare the means
6:12
by I and here they are do a quick look
6:15
at regressions so we'll do a linear
6:17
regression we'll try to predict uh
6:20
opposition or lack of opposition to
6:23
abortion with let's see adults in the
6:25
household age well that's an interesting
6:29
uh error that I've never seen so let's
6:30
take adults out and we'll just do age
6:33
let's see what cohort they're
6:36
in that's absolutely fascinating because
6:38
it was not doing this before when I was
6:41
testing it but it doesn't seem to be
6:43
giving me let's try
6:45
income all right it seems to like these
6:48
we'll just do age and income you might
6:50
notice that uh we don't have a choice of
6:54
what type of analysis to do it does
6:57
enter and only enter so let's do it with
7:00
two models we'll assume that age is the
7:02
most important and we'll add a new block
7:04
and we'll drag income in there and now
7:07
we see that we've got our two models it
7:11
doesn't label our two models which would
7:13
be nice but it does tell us that we can
7:16
explain about what is that 6% of
7:20
attitude towards abortion with age and
7:22
then another 0.1% or so with both age
7:27
and income and we can add in all sorts
7:30
of things like assumption checks of
7:32
various types uh we can check the
7:36
adjusted R squar and we can look at some
7:39
other things as well we can do the Inova
7:42
so it's basically most of what you get
7:44
with SPSS but in a somewhat different
7:47
way usually I've never seen an error
7:49
message in this before so it might be
7:52
something with this data set or it might
7:54
be a bug in the program now what about
7:56
copying the results to word you might
7:58
ask
8:00
well let's find out what that's
8:02
like copy
8:05
table and you see it pastes in as an
8:08
unnecessarily complicated table it's
8:10
still nice to do it this way because
8:12
when you do a correlation table it'll
8:14
come out quite
8:16
[Music]
8:18
nicely as you saw you can add in modules
8:22
and one of the libraries you can add in
8:24
lets you run our code it does run on R
8:29
and uh once that's
8:31
there if you know R code you can run it
8:35
I don't see any journaling which would
8:37
be nice and it would be very convenient
8:39
if the r code could be set up to print
8:42
out along with the analyses especially
8:45
if you're a faculty member trying to
8:46
figure out what your students were doing
8:49
but I don't see any way of doing that
8:51
there might be a way but I don't see it
8:53
so let's move on to jasp
9:00
[Music]
9:03
so here we are in jasp and I've just
9:05
uploaded the exact same file and you
9:07
might have noticed a couple of
9:08
differences one big difference is that
9:11
instead of having missing values grade
9:13
out they're completely blank again these
9:15
are all actually numbers in these
9:17
columns but it's showing you the value
9:19
labels so we can double click here we
9:22
get a very similar uh report where we
9:25
can put in custom values for the missing
9:28
values right now again missing values
9:31
are blank and it did that automatically
9:33
which you may or may not want usually I
9:36
have to admit I really don't care
9:38
because I don't you know they're missing
9:40
values I generally just leave them out
9:43
occasionally I find something else that
9:44
I want to make missing or if I'm
9:46
importing from Excel or tab delimited
9:49
format or something like that then I'll
9:51
want to set missing values myself so
9:54
let's take a quick look at recoding if
9:56
we can do that so let's try I go here to
10:00
data editing mode and you really don't
10:03
seem to be able to change data and
10:05
compute things you can compute with our
10:08
code uh and this is where I give up and
10:12
I say maybe you should do your recoding
10:14
somewhere else because this looks like
10:17
it's going to be incredibly hard to
10:21
do you might notice that there's now
10:24
basy in here to confuse your students as
10:26
well as classical uh let's go to
10:29
dependent samples we'll do the same
10:30
thing we did before grouping variable do
10:33
you think Insurance should be able to
10:34
pay now the problem here of course is
10:37
that if we use the morality of abortion
10:41
which is right here then we get
10:43
something that is probably accurate but
10:46
makes no sense so let's take a look at
10:50
age and we'll see what happens and again
10:53
as I put things in and out of these
10:56
windows the results come up instantly
10:58
both these program s are astoundingly
11:00
fast and there's no violation of the
11:04
that the variances are similar for both
11:07
groups so you don't get an error but if
11:09
we wanted to we could get the Welch test
11:12
just like that now let's go to
11:15
regression we'll do the same thing that
11:17
we did before we'll try to predict uh
11:20
let's see it's hard to predict morality
11:22
really we're going
11:23
to uh but it will be completely
11:25
meaningless because of the way it's
11:27
coded just remember that
11:29
so let's look at age and what else do we
11:33
look at before income there's income
11:37
16 and you see it immediately pops up on
11:40
the right it is absurdly fast let's try
11:43
something that might be more there we go
11:46
now we get two models you don't want to
11:48
use these methods in reality uh we're
11:50
just playing around right now I do have
11:52
other data sets that would be more
11:54
appropriate for this where I actually
11:55
know all the variables quite well here
11:57
we have an R squ of just about zero and
12:00
another one
12:02
of uh 2% which is really pretty small
12:06
trying to predict age using income and
12:09
ab from memory you notice the
12:11
description didn't come through it did
12:13
not import any of the
12:16
SPSS Variable labels which is a real
12:19
problem if you're importing SPSS files
12:21
it's not a real problem if you're
12:23
creating your own data files it's quite
12:25
nice really uh how fast this is and how
12:28
nicely form formed these results are it
12:31
gives you the Innova by default you can
12:33
shut that off if you want to or you can
12:35
add other things in as you see it's very
12:37
similar you can have the r squar change
12:40
I always think that should be in there
12:42
by default can add in descriptive so
12:45
that you can see how many people are in
12:46
each group and what the averages are
12:48
also handy to make sure you're not
12:50
making mistakes we have to uh copy and
12:53
paste to word so let's do
12:56
that and you see it's almost exactly the
12:59
same a lot of the underlying code for
13:02
jamovi and jasp is probably the same I
13:05
suspect that they are branches of the
13:07
same project and as time has go gone on
13:09
they've diverged more and more and more
13:11
they both use R
13:13
underneath and the sad thing is that
13:16
jasp is really although it's very very
13:19
fast and it's very convenient it also
13:22
takes up over two gigabytes of disk
13:24
space whereas Jovi only uses about let's
13:27
find out for sure there's this very nice
13:29
site code Mac stats. org where I write
13:32
down things that I've learned so here it
13:34
is under
13:36
free stats and you can see that I
13:38
compared these here we go so the
13:41
download for jasp is 1.3 gabt and for
13:44
jamovi it's 415
13:47
megabytes when they're on the
13:50
disc jasp ISS 2.2 GB and jamovi is 940
13:55
megabytes now one other nice thing is we
13:58
were talking about syntax and journaling
14:01
so your R console gives you the uh
14:05
syntax and here it is now so you can
14:08
type in R code and you might be
14:13
able to save things in an editor so
14:16
these are the standard missing values
14:18
across your entire data set you can
14:20
change these if you want to uh you can
14:24
use a spreadsheet Editor to do your
14:26
recoding that's their way around any
14:28
problems with Cod
14:29
you can change through you have more
14:31
control over the what the results look
14:33
like including showing the r syntax when
14:36
you do things and that both helps you to
14:37
learn and it helps you if you're having
14:41
your students do things then you know
14:42
what variables they were using very
14:44
easily and you can see exactly what they
14:47
were doing so here you see it happened
14:49
retroactively so if we want to do this T
14:52
Test in the console we can just paste it
14:55
right here in theory
15:01
ah okay and that is my summary these are
15:04
both very very good programs it's
15:06
amazing what you get for free and they
15:08
are somewhat different once you get
15:10
inside but the basic techniques are very
15:13
very similar from one to the other I
15:15
expect them to keep on diverging in some
15:17
ways and also to keep on getting better
15:19
but you see that it's been doing this
15:21
rather instantly and this data set here
15:24
is not small it's got over 2,000 uh
15:28
cases in it and an awful lot of
15:32
variables I go through and there's
15:34
hundreds of variables in this
15:37
thing so I wish you luck with your

