-2
votes

Pourquoi le résultat de Numpy.Random.normal (0,1, N) ne peut-il pas ajouter jusqu'à 0?

Pourquoi le résultat de NUMPY.RANDOM.NORMAL (0,1, N) ne peut-il pas ajouter jusqu'à 0? La moyenne de la distribution générée n'est pas 0. Je pense que ce n'est pas dû à la discrétisation, car le décalage de la moyenne de 0 ne semble pas devenir plus petit que N augmente. J'ai essayé NS qui défie vraiment ma machine. Qu'est-ce que je manque?

Je l'utilise pour générer un bruit aléatoire à ajouter à un signal simulé. Je compte sur le fait que la somme de tout le signal bruyant s'approchera uniquement de la somme du signal, car toutes les valeurs aléatoires devraient ajouter jusqu'à 0. à la place, je reçois la somme du signal plus le décalage dans la moyenne du nombre de points.


1 commentaires

Pourquoi serait-ce? C'est aléatoire ...


3 Réponses :


3
votes

La moyenne échantillonnée n'est pas toujours la même que la moyenne théorique. Mais, lorsque la taille de l'échantillon devient grande, la différence sera petite.

Voir le code. P>

import numpy as np
print(np.random.normal(0, 1, 100).mean()) # 0.08
print(np.random.normal(0, 1, 1000).mean()) # -0.03
print(np.random.normal(0, 1, 10000).mean()) # -0.004
print(np.random.normal(0, 1, 100000).mean()) # 0.0014


1 commentaires

Il est intéressant que les paramètres d'entrée ne soient pas pris au sérieux. N a besoin d'être trop grand pour que la moyenne soit proche de 0. Aussi, la somme de la matrice générée augmentera toujours que n augmente, car le décalage de la moyenne ne diminue pas aussi vite que N grandit, et j'ai besoin de la somme. Par exemple avec N = 1E9, la moyenne sera ~ 1e-6, je n'appellerais pas ce petit. Notez qu'un tel appel génère un tableau qui prendra 8 Go de mémoire! Quoi qu'il en soit, il est évident que de travailler autour de cela et je suppose que la moyenne exigeante va à l'encontre de l'exigence de hasard et inversement. Juste quelque chose à prendre conscience de.



1
votes

Imaginez des cas simples:

  • n = 1: presque aucune chance d'obtenir exactement zéro, une fois de temps en temps, vous serez près de zéro.
  • n = 2: Quels que vous obtenez pour le premier numéro, mieux j'espère que vous obtiendrez exactement l'inverse du deuxième numéro. Ne se produira généralement pas, ne serait pas aléatoire s'il le faisait.
  • N = 3: Une fois les deux premiers, vous avez maintenant besoin d'une valeur spécifique pour le troisième numéro pour annuler les deux premiers. Bonne chance avec ça!

    Je pense que vous voyez où ça va. Si vous avez besoin d'une somme spécifique, vous devez le faire respecter en réduisant le caractère aléatoire d'au moins une des valeurs.


0 commentaires

0
votes

La théorie indique que l'écart type de la moyenne d'un échantillon normal est égal à Sigma / SQRT (N) où n est la taille de l'échantillon et de la Sigma l'écart type de la distribution normale. Ainsi, comme @gilseung a dit, c'est sa réponse La moyenne se rapproche de 0 lorsque la taille de l'échantillon augmente.


0 commentaires