0
votes

Comment obtenir une courbe de CDF Sigmodal Utilisez Scipy.Stats.norm.cdf et Matplotlib?

J'essaie de tracer la courbe de la fonction de distribution cumulative de forme S (CDF) d'une distribution normale. Cependant, j'ai fini par une distribution uniforme. Qu'est-ce que je fais mal?

script de test xxx

 Entrez la description de l'image ici < / p>


1 commentaires

Vous pouvez essayer de calculer la somme cumulative np.cumsum de vos valeurs aléatoires. Si appliqué sur B, cela devrait être de type sigmoïde, mais non soulagé


3 Réponses :


1
votes

Maintenant, je ne connais pas votre application particulière. Mais je pense que le problème réside dans le fait que vous créez les valeurs du CDF pour un certain nombre de nombres aléatoires normalement distribués. Ci-dessous, vous pouvez voir un exemple de code qui parcille le CDF d'une normale normale de -3 à +3 xxx

CDF de normal normal
1


0 commentaires

0
votes

Vous traquez les mauvaises valeurs. Lorsque vous faites b = norme.rvs (taille = siz, aléatoire_state = rg) , ce que vous obtenez est un 10 échantillons aléatoires dessinés indépendamment de la distribution normale standard, c'est-à-dire z Valeurs

Par conséquent, leur histogramme est ce que vous voyez comme courbe en forme de cloche.

norm.cdf renvoie la valeur CFD à une valeur z donnée. Si vous souhaitez que la courbe de CDF, vous pouvez dessiner uniformément de -3 à 3 x valeurs et obtenir leurs valeurs de CDF à tous les points. Ensuite, vous tracez les valeurs de probabilité de sortie.

Edit: L'autre réponse donne du code pour cette approche, donc je ne me dérangerai pas d'ajouter à nouveau.


0 commentaires

1
votes

Pour tracer le résultat sigmoïdal du CDF des variateurs aléatoires normalement distribués, je n'aurais pas besoin d'utiliser la fonction Hist (code> Hist (CODE> HIST () de MATPLOTLIB. Au contraire, j'aurais pu utiliser la fonction bar () pour tracer mes résultats.

@Laaggan et @Dumbpy Réponse indiquée que l'utilisation de la valeur X régularisée et commandée est le moyen de dériver la courbe de CDF sigmoïdale. Bien que couramment fait, il n'est pas applicable lorsque des variations aléatoires sont utilisées. J'ai comparé les solutions de l'approche qu'ils avaient mentionnée avec ce que j'ai fait pour montrer que les deux approches donnent le même résultat. Cependant, mes résultats (voir la figure ci-dessous) montrent que l'approche habituelle d'obtenir les valeurs de la CDF donne plus d'occurrences des valeurs extrêmes d'une distribution normale que en utilisant des variations aléatoires. En excluant les deux extrêmes, les occurrences apparaissent uniformément distribuées.

J'ai révisé mon script et j'ai fourni des commentaires pour démontrer comment j'ai comparé les deux approches. J'espère que ma réponse peut profiter aux autres qui apprennent à utiliser le RVS () , pdf () et CDF () Fonctions du < code> scipy.stats.norm classe. xxx

résultats


0 commentaires