Je regarde l'échantillon kurtosis d'une variable aléatoire assez asymétrique, et les résultats semblent incohérents. Pour illustrer simplement le problème, j'ai regardé l'échantillon kurtosis d'un VR log-normal. En R (que j'apprends lentement):
library(moments);
samp_size = 2048;
n_trial = 4096;
kvals <- rep(NA,1,n_trial); #preallocate
for (iii in 1:n_trial) {
kvals[iii] <- kurtosis(exp(rnorm(samp_size)));
}
print(summary(kvals));
Le résumé que je reçois est
Min. 1st Qu. Median Mean 3rd Qu. Max.
11.87 28.66 39.32 59.17 61.70 1302.00
Selon Wikipédia , le kurtosis pour ce VR log-normal devrait être d'environ 114. Il est clair que l'échantillon de kurtosis est biaisé.
En faisant des recherches, j'ai découvert que l'échantillonnage kurtosis est biaisé pour les petits échantillons. J'ai utilisé l'estimateur «G2» fourni par le e1071
package dans CRAN, et j'ai obtenu des résultats très similaires pour cette taille d'échantillon.
La question : laquelle des caractéristiques suivantes caractérise ce qui se passe:
- L'erreur standard de l'échantillon kurtosis est simplement très grande pour ce VR (même si l'estimation commune ondulée à la main de l'erreur standard est de l'ordre ). Alternativement, j'ai utilisé trop peu d'échantillons (2048) dans cette étude.
- Ces implémentations de l'échantillonnage kurtosis souffrent de problèmes numériques qui pourraient être corrigés par exemple par la méthode de Terriberry (de la même manière que la méthode de Welford donne de meilleurs résultats que la méthode naïve pour la variance de l'échantillon).
- J'ai mal calculé le kurtosis de la population. (Aie)
- L'échantillonnage kurtosis est intrinsèquement biaisé et vous ne pouvez jamais le corriger pour des échantillons aussi petits.
;
à la fin de vos déclarations. Vous avez bien fait de pré-allouer, mais pas besoin de remplir NA
, kvals <- numeric(length = n_trial)
aurait suffi. Avec rep
, vous n'avez besoin que des arguments 1 et 3 de votre appel (par exemple rep(NA, 10)
). Dans la for
configuration de la boucle, 1:n_trial
peut être dangereux si la programmation; est mieux seq_along(kvals)
ou seq_len(n_trial)
dans ce cas. Enfin, si vous n'avez pas besoin de forcer l'impression, supprimez le print()
tour summary()
- vous n'en aurez besoin que si vous ne travailliez pas de manière interactive avec R. HTH.
print
. Les arguments rep
étaient certainement erronés.