Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Non-inferiority study for non-normal data

    Hi all,

    I'm making a non-inferiority study: two groups complete a test (where it is possible to score 0-30 points).
    I already have the test results for groupB, they scored a mean of 22.5 points. I want to investigate if groupA performs non-inferior to groupB.
    My non-inferiority margin = 3 points (corresponding to a score of 19.5 points).
    I'm not entirely sure how to perform the test if data are not normally distributed.

    If data are normally distributed, I would use the following two-one-sided-t-tests (using the tost-package):

    Code:
     tostt test_score == 22.5, eqvtype(delta) eqvlevel(3) alpha(0.05)


    If data are not normally distributed, would this be the correct analysis to do?
    Code:
    tostsignrank test_score == 22.5, eqvtype(epsilon) eqvlevel(3) alpha(0.05)



    Also, I'm not entirely sure how to formulate my % confidence interval and alpha. In practice I am using a 95% CI and alpha=0.05 (the default in t-tests), so should I write this? On the other hand, given the nature of a non-inferiority study, the analysis is one-sided, why I might instead formulate it as an alpha=0.025 and 97.5% CI?


    Thank you for your time.

  • #2
    I have only a casual acquaintance with non-inferiority tests, but with that caveat and because no one else is responding, I'll offer a suggestion: Given that such tests (to my understanding) are just specific applications of hypothesis tests and CIs, I would think that you could use -permute- to obtain a p-value for any test statistic calculated by -tostt-, and use -bootstrap- to get CIs, and these would obviate concerns about normality. You might have to write your own short program to extract or calculate a test statistic or parameter estimate of interest.

    By the way: -tostt- is not a built-in part of Stata, but rather a community-contributed package, and the practice on StataList is to point that out and indicate where you obtained it.

    Comment


    • #3
      t-tests do not require normally distributed data. What is required is that the distribution of residuals of a regression of the tests variable on a dichotomous variable indicating the two groups be normal, which then implies that the t-statistic will indeed have a sampling distribution that is t with the appropriate degrees of freedom. But even that is only necessary in small samples: with large samples the central-limit theorem will assure that the t-statistic indeed end up with a normal (which in a large sample is essentially the same as a high-df t) distribution, so that its use in normal-theory inference is justified. What are the sample sizes in the two groups?
      Last edited by Clyde Schechter; 26 Aug 2022, 16:23.

      Comment


      • #4
        Originally posted by Clyde Schechter View Post
        t-tests do not require normally distributed data. What is required is that the distribution of residuals of a regression of the tests variable on a dichotomous variable indicating the two groups be normal, which then implies that the t-statistic will indeed have a sampling distribution that is t with the appropriate degrees of freedom. But even that is only necessary in small samples: with large samples the central-limit theorem will assure that the t-statistic indeed end up with a normal (which in a large sample is essentially the same as a high-df t) distribution, so that its use in normal-theory inference is justified. What are the sample sizes in the two groups?
        Thank you for your respond, Clyde. My sample size is quite small: 27 is each group.

        Comment


        • #5
          OK, 27 per group is kind of borderline for this purpose. I'm not familiar with the -tostt- command, nor the -tostsignrank-, so I can't advise you on how you would use them in this setting. Have you, however, looked at the normality of the residuals, as opposed to the normality of the data themselves? The former can matter, the latter never does. Assuming you still have non-normality at the residual level, I can tell you how I would probably analyze these data. You are interested in estimating the lower limit of a one-sided 95% confidence interval around the difference between the group means (treatment minus control). -regress- only reports two-sided confidence intervals, but you can get the one sided limit by changing the level to a 90% confidence interval. And to get around the normality issue I would use robust standard errors.

          Code:
          regress outcome i.group, level(90)
          and compare the lower limit of that CI to your non-inferiority limit.

          Comment

          Working...
          X