Let $X_1,...,X_n \sim \text{IID N}(\mu, \sigma)$ be your data points. It is well known from Cochran's theorem that the sample mean and sample variance are independent with distributions:
$$\bar{X}_n \sim \text{N} \Big( \mu, \frac{\sigma^2}{n} \Big) \quad \quad \quad S_n^2 \sim \sigma^2 \cdot \frac{\text{Chi-Sq}(n-1)}{n-1}.$$
Hence, we can form the independent statistics:
$$Z_n \equiv \frac{\bar{X}_n - \mu}{\sigma / \sqrt{n}} \sim \text{N}(0,1) \quad \quad \quad \chi_n \equiv \frac{S_n}{\sigma} \sim \frac{\text{Chi}(n-1)}{\sqrt{n-1}}.$$
With a bit of algebra we then have:
$$\begin{equation} \begin{aligned}
\frac{\bar{X}_n}{S_n}
&= \frac{\bar{X}_n / \sigma}{S_n / \sigma} \\[6pt]
&= \frac{\bar{X}_n / \sigma}{\chi_n} \\[6pt]
&= \frac{1}{\sqrt{n}} \cdot \frac{\sqrt{n} \bar{X}_n / \sigma}{\chi_n} \\[6pt]
&= \frac{1}{\sqrt{n}} \cdot \frac{\sqrt{n} (\bar{X}_n - \mu)/\sigma + \sqrt{n} \mu/\sigma}{\chi_n} \\[6pt]
&= \frac{1}{\sqrt{n}} \cdot \frac{Z_n + \sqrt{n} \mu/\sigma}{\chi_n} \\[6pt]
&\sim \frac{1}{\sqrt{n}} \cdot \text{Noncentral T} \big(\sqrt{n} \mu/\sigma, n-1 \big). \\[6pt]
\end{aligned} \end{equation}$$
So you can see that the ratio of the sample mean on the sample standard deviation has a scaled non-central T distribution with non-centrality parameter $\sqrt{n} \mu/\sigma$ and degrees-of-freedom $n-1$. We can double-check this theoretical result empirically via simulation.
Checking the distribution by simulation: In the R
code below we create a function to simulate $m$ samples of size $n$ from the IID normal model and generate the $m$ ratio statistics from these samples. We plot the kernel density of these simulated statistics against the theoretical distribution above in order to confirm that the theoretical result is correct.
#Simulate m values of the ratio statistic for samples of size n
SIMULATE <- function(m, n, mu, sigma) {
X <- array(rnorm(n*m, mean = mu, sd = sigma), dim = c(m,n));
R <- rep(0, m);
for (i in 1:m) { R[i] <- mean(X[i,])/sd(X[i,]); }
R; }
#Plot the density of the simulated values against theoretical
PLOTSIM <- function(m, n, mu, sigma) {
require(stats); require(ggplot2);
RR <- SIMULATE(m, n, mu, sigma);
DENS <- density(RR);
DENS$yy <- dt(DENS$x*sqrt(n), df = n-1, ncp = sqrt(n)*mu/sigma)*sqrt(n);
DATA <- data.frame(x = DENS$x, y = DENS$y, yy = DENS$yy);
ggplot(data = DATA, aes(x = x)) +
geom_line(aes(y = y), size = 1.2, colour = 'black') +
geom_line(aes(y = yy), size = 1.2, colour = 'red', linetype = 'dotted') +
theme(plot.title = element_text(hjust = 0.5, size = 14, face = 'bold'),
plot.subtitle = element_text(hjust = 0.5)) +
ggtitle('Density plot - Simulated Data') +
labs(subtitle =
paste0('(Sample size = ', n, ', Simulation size = ', m, ')')) +
xlab('Sample Mean / Sample Standard Deviation') +
ylab('Density'); }
#Generate example plot
set.seed(1);
m <- 10^4;
n <- 100;
mu <- 12;
sigma <- 6;
PLOTSIM(m, n, mu, sigma);