Behaviour of Welch's t-test with unequal group sizes It seems that in some cases Welch's t-test can give inflated p-values with imbalanced group sizes. For example, consider the following simulation of unequal group sizes sampled from the same Gaussian distribution.
set.seed(42)
sapply(2:10, function(n) {
  out <- replicate(100000, t.test(rnorm(100), rnorm(n))$p.value)
  mean(out < 0.01) / 0.01
})
# [1] 7.928 3.139 1.913 1.606 1.371 1.285 1.178 1.141 1.192

Is this conclusion correct? Are there general guidelines on group sizes for when a Welch's t-test is appropriate? Are there known ways to correct this apparent bias, or should we in general assume equal variance if groups are imbalanced in terms of size?
Update:
To clarify, I'm interested in establishing minimum sample sizes for a Welch t-test, below which we need to be cautious about the possibility of false positives (restricted to the situation where we are happy to assume equal variances). 
I think this figure of a simple simulation of samples from the same distribution, with varying sample sizes more cleanly illustrates the issue. In all cases, we expect the mean number of tests with p-value < 0.05 to equal 0.05 if the test performs as expected.

I would conclude that we need to be cautious with a Welch t-test if N < ~5 for any group, particularly if N = 2.
Note, I've not investigated unequal variance, which as BruceET has pointed out can cause potentially high false positive rates when not accounted for.
dosim <- function(var.equal) {
  sapply(seq_len(nrow(g)), function(i) {
    pv <- replicate(
      reps,
      t.test(rnorm(g[i, "N1"]), rnorm(g[i, "N2"]), var.equal = var.equal)$p.value
    )
    mean(pv < 0.05)
  })
}

reps <- 10000
g <- expand.grid(list(N1 = 2:100, N2 = c(2, 3, 4, 5, 6, 10)))

g$Welch <- dosim(FALSE)
g$Student <- dosim(TRUE)
g <- tidyr::gather(g, "stat", "value", "Welch", "Student")
g$N2 <- factor(g$N2)

ggplot(g, aes(x = N1, y = value, col = N2)) +
  geom_point() +
  geom_line() +
  facet_grid(stat ~ .) +
  ylab("Mean(p < 0.05)")

Related: 


*

*Always use Welch-t test (unequal variances t-test) instead of Student-t or Mann-Whitney test?

*Is there a minimum sample size required for the t-test to be valid?
 A: The issue here does not appear to be due to imbalanced sample sizes per se, but rather, non-uniformity of the p-value seems to be occurring due to using very small sample sizes for one of the samples.  Below I show high-resolution histograms showing simulated p-values for a comparison of one sample with $n_X = 100$ standard normal values and another sample with $n_Y = 2,...,10$ standard normal values.  (Each comparison uses $K = 10^6$ simulations, and the histograms use bin widths $w = 0.01$ so you get high-resolution for the true distributions.)
As you can see, for very small samples there is a non-uniform distribution with a higher than expected probability of a small p-value.  I am not entirely certain where this phenomena originates, but I have some strong suspicions.  It is well-known that the standard sample variance estimator yields an estimated standard deviation that is biased for small samples (see e.g., here).  For normal data the sample standard deviation is biased downward by a known "correction factor" that has quite a heavy effect for very small samples.  If one were to underestimate the true standard deviation of the smaller sample in Welch's T-test, then the natural expectation would be that this would underestimate the likely different between sample means under the null hypothesis of no difference, which would bias the p-value downward.  Since this is exactly what we see in the histograms, my suspicion is that this phenomena occurs due to the downward bias of sample standard deviations as an estimate of true standard deviations.  I suspect that if you were to apply the standard small sample "corrections" to the sample standard deviations, in the test statistic for Welch's test, then this phenomena would be substantially ameliorated.

#Generate p-value simulations from Welch's test
#First sample is set to sample size of 100
#Second sample has sample sizes from 2, ..., 30
set.seed(97142903)
SIMS  <- 10^6;
PVALS <- matrix(NA, nrow = SIMS, ncol = 9);
for (n in 2:10)   {
for (i in 1:SIMS) {
    PVALS[i, n-1] <- t.test(rnorm(100), rnorm(n))$p.value; } }

#Generate data frame of p-value simulations
DATA <- data.frame(n = rep(2:10, each = SIMS),
                   p = as.vector(PVALS));

#Plot the KDEs of the p-value simulations
library(ggplot2);
THEME <- theme(plot.title    = element_text(hjust = 0.5, size = 14, face = 'bold'),
               plot.subtitle = element_text(hjust = 0.5, face = 'bold'));
FIGURE <- ggplot(aes(x = p), data = DATA) +
          geom_histogram(binwidth = 0.01, boundary = 0, fill = 'blue') +
          facet_wrap(~ n, ncol = 1) +
          THEME +
          ggtitle('Histograms of p-value simulations') +
          labs(subtitle = '(Sample of 100 against sample of stated size)') +
          xlab('p value') + ylab('Count');
FIGURE;

