It so happens that skewness and kurtosis are not very accurately estimated for an exponential distribution, even with 1000 observations:
sk <- rep(10,10000)
for (i in seq_along(sk)) {
x <- rexp(1000,2)
sk[i] <- skewness(x)
}
quantile(sk^2, c(0.1,0.25,0.5,0.75,0.9))
10% 25% 50% 75% 90%
2.893270 3.270011 3.786337 4.452599 5.262877
We expect to see skewnesses less than 3.27 roughly 25% of the time.
Kurtosis is, as one might expect, no better; the code revision is straightforward so I don't present it here.
> quantile(ku, c(0.1,0.25,0.5,0.75,0.9))
10% 25% 50% 75% 90%
6.426070 7.162297 8.187794 9.640750 11.569109
Let's put this together and show, in a heuristic way, how unusual your results were for a sample size of 1000:
dt <- data.table(sk2 = rep(0, 1000), ku = rep(0, 1000))
for (i in 1:1000) {
x <- rexp(1000,2)
dt$sk2[i] <- skewness(x)^2
dt$ku[i] <- kurtosis(x)
}
x <- densCols(dt$sk2, dt$ku, colramp=colorRampPalette(c("black", "white")))
dt$dens <- col2rgb(x)[1,] + 1L
## Map densities to colors
cols <- colorRampPalette(c("#FF3100", "#FF9400", "#FCFF00",
"#45FE4F", "#00FEFF", "#000099"))(6)
dt$col <- ifelse(dt$dens >= 250, cols[1],
ifelse(dt$dens >= 200, cols[2],
ifelse(dt$dens >= 150, cols[3],
ifelse(dt$dens >= 100, cols[4],
ifelse(dt$dens >= 50, cols[5], cols[6])))))
## Plot it, reordering rows so that densest points are plotted on top
plot(ku~sk2, data=dt[order(dt$dens),], pch=20, col=col, cex=1, ylim=c(5,15), xlim=c(2,7))
biv_kde <- MASS::kde2d(x1, x2)
contour(biv_kde, add = T)
points(3, 6.8, pch=17, col=1)
... so your data, which is marked by the black triangle just below and to the left of the highest density region, doesn't appear to be too extreme.
boot=200
. The exponential distribution lies on the extreme margins of the bootstrapped cloud. $\endgroup$