Fisher’s LSD (Least Significant Different) in R

This tutorial shows how to do the post hoc test using Fisher’s LSD (Least Significant Different) in R.

When to use Fisher’s LSD 

Typically, it is when you are doing one-way ANOVA with more than 2 groups (e.g., 3 groups). Further, you should note that Fisher’s LSD is the most liberal of all post hoc tests.

What does it mean by saying that it is most liberal? Different post hoc tests use different methods to control familywise (FW) and per experiment error rate (PE). Some tests are very conservative. By being conservative, such tests go to great lengths to prevent the user from committing a type 1 error.

Although these tests buy you protection against type 1 error, it comes at a cost. As the tests become more stringent, you loose power. More liberal tests (e.g., Fisher’s LSD), on the other hand, buy you power but the cost is an increased chance of type 1 error.

According to this r-project page, Fisher’s LSD is generally not considered appropriate if you have more than 3 means. In other words, you can use Fisher’s LSD when there are 3 means, just knowing that this test is very liberal.

Data Example for Fisher’s LSD 

The following is a hypothetical data example for one-way ANOVA. It has the independent variable of cities, and the dependent variable of sales.

We can fist write down the null and alternative hypotheses for one-way ANOVA for three groups as follows.

H0: Three cities does not differ in sales.
Ha: Three cities does differ in sales.

x_1= rep(c('City1','City2','City3'),each=5)

df <- data.frame (cities  = x_1,
> print(df)
   cities sales
1   City1    10
2   City1    20
3   City1    20
4   City1    50
5   City1    30
6   City2    10
7   City2     5
8   City2     4
9   City2    12
10  City2     4
11  City3     3
12  City3     2
13  City3     5
14  City3     3
15  City3     1

Fisher’s LSD in R

We can ues the function of PostHocTest() in the R package of DescTools to do Fisher’s LSD. As we can see the comparison between City 2 and City 1 is significant (p-value = 0.0062). Further, the comparison between City 3 and City 1 is also significant (p-value = 0.0016). Finally, we can see that the comparison between City 3 and City 2 is not significant (p-value = 0.4776).

# Use DescTools package for posthoctest()

# construct the aov object, which will be used later
model <- aov(sales ~ cities, data = df)

# use posthoctest() function to do Fisher's LSD in R
PostHocTest(model, method = "lsd")
> PostHocTest(model, method = "lsd")

  Posthoc multiple comparisons of means : Fisher LSD 
    95% family-wise confidence level

             diff   pval    
City2-City1 -19.0 -31.48341  -6.516588 0.0062 ** 
City3-City1 -23.2 -35.68341 -10.716588 0.0016 ** 
City3-City2  -4.2 -16.68341   8.283412 0.4776    

Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Note: Before doing Fisher’s LSD, you need to make sure the overall test is significant. To see how to do such a test, you can refer to my other post on how to test one-way ANOVA with 3 groups.

Reference and Further Reading

The following page provides the explanation for the function of posthoctest() in R.

There are other packages providing different functions as well, see below.

Leave a Comment