[PYTHON] J'ai essayé d'estimer la section.

Estimation de section

Cette fois, je voudrais continuer l'estimation de la la dernière fois . La dernière fois, nous avons estimé les points, alors jetez un œil si vous êtes intéressé.

Concernant les données

Cette fois aussi, j'ai essayé d'estimer l'intervalle en utilisant l'ensemble de données Pokemon. Les données sont comme ci-dessous. Cette fois aussi, j'aimerais utiliser les données HP de ces données comme population pour estimer la section. 2020-10-20.png

Tout d'abord, je voudrais trouver la moyenne et la dispersion des HP.

score = np.array(df['HP'])
mean = np.mean(score)
var = np.var(score)
print("Moyenne HP: {} ,Distribué: {} ".format(mean , var))

Moyenne HP: 69,25875, dispersion: 651,2042984374999 Je voudrais les analyser en tant que moyenne et variance de la population.

Estimation par intervalles de la moyenne de la population de distribution normale (si la variance de la population est connue)

Cette fois, considérons le cas où les données HP mentionnées précédemment sont utilisées comme population, et la variance de la population est également connue, en supposant qu'elle suit une distribution normale.

Puisque nous supposons une distribution normale pour la population, la moyenne de l'échantillon $ \ bar {X} $ suit $ N (μ, σ ^ 2 / n) $. En d'autres termes, bien que la valeur estimée de la moyenne de l'échantillon soit la moyenne de la population μ, elle varie avec l'écart type $ \ sqrt {σ ^ 2 / n} $. L'écart type d'une telle estimation est appelé «erreur standard».

De plus, puisque la moyenne de l'échantillon $ \ bar {X} $ suit $ N (μ, σ ^ 2 / n) $, $ Z = (\ bar {X} -μ) / \ sqrt {σ ^ 2 / n} Il peut être standardisé avec $ et Z suit une distribution normale standard. Ce qui est bien dans cette standardisation, c'est l'intervalle de confiance Cela signifie que ce sera plus facile à calculer.

Premièrement, calculez la moyenne de la population / la variance de la population et la moyenne de l'échantillon / la variance de l'échantillon des données de l'échantillon. La taille de l'échantillon de cet échantillon est de 20.

np.random.seed(0)
n = 20
sample = np.random.choice(score , n)

p_mean = np.mean(score)
p_var = np.var(score)

s_mean = np.mean(sample)
s_var = np.var(sample , ddof = 1)

Population moyenne: 69,25875, dispersion de la population: 651,2042984374999 Moyenne de l'échantillon: 68,8, variance de l'échantillon (variance sans biais): 451,26000000000005

Cette fois, j'aimerais utiliser cette moyenne d'échantillon pour calculer l'intervalle de confiance de la moyenne de la population. (Supposons que vous connaissiez la variance de la population.) Envisagez de trouver un intervalle de confiance de 95% entre la moyenne de l'échantillon et la moyenne de la population. Premièrement, la standardisation de la moyenne de l'échantillon $ \ bar {X} $ donne $ Z = (\ bar {X} -μ) / \ sqrt {σ ^ 2 / n} $. Considérons donc d'abord l'intervalle de confiance à 95% de $ Z $. Puis P(z_{0.975}≦(\bar{X}-μ)/\sqrt{σ^2/n} ≦z_{0.025})=0.95…① Vous pouvez créer l'inégalité. Cette équation a 95% de chances que la variable de probabilité $ Z = (\ bar {X} -μ) / \ sqrt {σ ^ 2 / n} $ soit dans l'intervalle $ [z_ {0,975}, z_ {0,025}] $. Cela représente qu'il y en a. Lorsque cette formule $ ① $ est transformée en une inégalité pour la moyenne de la population μ P( \bar{X}-z_{0.025}*\sqrt{σ^2/n}≦μ≦\bar{X}-z_{0.095} * \sqrt{σ^2/n})=0.95 Ce sera.

Par conséquent, pour trouver l'intervalle de confiance à 95% lorsque la variance de la population est connue, [\bar{X}-z_{0.025}*\sqrt{σ^2/n} , \bar{X}-z_{0.095} * \sqrt{σ^2/n}] Cela signifie que vous devriez demander.

J'ai essayé de le mettre en œuvre.

rv = stats.norm()
#rv.isf(0.025)A une probabilité de distribution normale standard de 0.Il représente le point 025. Multipliez-le par l'erreur standard.
lcl = s_mean - rv.isf(0.025) * np.sqrt(p_var/n)
ucl = s_mean - rv.isf(0.975) * np.sqrt(p_var/n)
lcl , ucl

(57.616, 79.984)

D'après ce qui précède, il a été constaté que l'intervalle de confiance à 95% de la moyenne de la population est (57,616, 79,984). Comme la moyenne de population obtenue précédemment était de 69,25875, nous pouvons voir que la moyenne de la population est incluse dans l'intervalle de confiance.

Cet intervalle de confiance est échantillonné plusieurs fois de la même manière, et lorsque l'estimation d'intervalle est effectuée, 95% de l'estimation d'intervalle comprend la moyenne de la population. Dans une forme mâchée, lorsque l'intervalle est estimé 100 fois, l'intervalle de confiance comprenant la moyenne de la population est obtenu 95 fois, mais l'intervalle de confiance obtenu 5 fois n'inclut pas la moyenne de la population. ..

Estimation par intervalles de la variance de la population

Nous évaluerons l'intervalle de la variance de la population. Considérons le cas où une distribution normale est supposée pour la population et où la moyenne de la population n'est pas connue.

Tout comme nous avons standardisé lors du calcul de l'intervalle de confiance de la moyenne de la population et l'avons converti en une variable de probabilité qui suit la distribution normale standard, nous avons également effectué une conversion vers la variance sans biais $ s ^ 2 $ pour créer une variable de probabilité qui suit une distribution de probabilité typique. besoin de le faire. La distribution de probabilité utilisée à ce moment est la distribution du chi carré. On sait que cette variable Y suit une distribution du chi carré avec n-1 degrés de liberté en convertissant la variance non biaisée $ s ^ 2 $ en $ Y = (n-1) s ^ 2 / σ ^ 2 $. Je vais.

Maintenant, j'aimerais trouver l'intervalle de confiance de la variance de la population. Tout d'abord, trouvez l'intervalle de confiance à 95% pour $ \ chi {} ^ 2 (n-1) $.

P(\chi{}^2_{0.975}(n-1) ≦ (n-1)s^2/σ^2 ≦\chi{}^2_{0.025}(n-1)) = 0.95

Puisque nous voulons trouver l'intervalle de confiance de la variance de la population cette fois, assurez-vous que $ σ ^ 2 $ est au milieu.

P((n-1)s^2/\chi{}^2_{0.025}(n-1) ≦ σ^2 ≦(n-1)s^2/\chi{}^2_{0.975}(n-1)) = 0.95

À partir de là, l'intervalle de confiance à 95% de la variance de la population $ σ ^ 2 $ est

[(n-1)s^2/\chi{}^2_{0.025}(n-1) , (n-1)s^2/\chi{}^2_{0.975}(n-1)]

Sera.

rv = stats.chi2(df=n-1)
lcl = (n-1) * s_var / rv.isf(0.025)
hcl = (n-1) * s_var / rv.isf(0.975)

lcl , hcl

(260.984, 962.659)

L'intervalle de confiance pour la variance de la population est (260,984, 962,659). Comme la variance de la population était de 651,204, on peut voir qu'elle est incluse dans l'intervalle.

Estimation par intervalles de la moyenne de la population (lorsque la variance de la population n'est pas connue)

J'ai procédé à l'analyse dans la situation où la variance de la population était connue lors du calcul de l'intervalle de confiance de la moyenne de la population. Cependant, il n'y a pas beaucoup de situations dans lesquelles la moyenne de la population n'est pas connue et la variance de la population est connue. Par conséquent, cette fois, j'aimerais estimer l'intervalle de confiance de la moyenne de la population lorsque la variance de la population est inconnue.

Lorsque la variance de la population était connue, l'intervalle était estimé par l'erreur standard $ \ sqrt {σ ^ 2 / n} $ de la moyenne de l'échantillon $ \ bar {X} $. Puisque nous ne connaissons pas cette variance de population $ σ ^ 2 $ cette fois, nous substituerons $ \ sqrt {s ^ 2 / n} $, qui utilise la variance non biaisée estimée $ s ^ 2 $, comme erreur standard. ..

Tout d'abord, transformez la moyenne de l'échantillon $ \ bar {X} $ en utilisant $ \ sqrt {s ^ 2 / n} $, comme vous le feriez lorsque vous connaissez la variance de la population.

t = (\bar{X} - μ) / \sqrt{s^2/n}

Ce $ t $ est

Y=(n-1)s^2/σ^2 Z = (\bar{X}-μ)/\sqrt{σ^2/n}

Si vous convertissez en utilisant ces deux,

t = Z / \sqrt{Y/(n-1)}

Il peut être représenté par. On voit donc que ce $ t $ suit une distribution t avec n-1 degrés de liberté.

Maintenant que $ t = (\ bar {X} --μ) / \ sqrt {s ^ 2 / n} $ se trouve suivre une distribution t avec n-1 degrés de liberté, d'où l'intervalle de confiance à 95% de la moyenne Je vais demander.

P(t_{0.975}(n-1)≦ (\bar{X} - μ) / \sqrt{s^2/n} ≦ t_{0.025}(n-1)) = 0.95

Transformez cette équation pour que la moyenne de la population μ soit au milieu.

P(\bar{X} - t_{0.025}(n-1) * \sqrt{s^2/n}≦ μ ≦ \bar{X} - t_{0.975}(n-1)*\sqrt{s^2/n}) = 0.95

En conséquence, l'intervalle de confiance à 95% de la moyenne de la population est

[ \bar{X} - t_{0.025}(n-1) * \sqrt{s^2/n} , \bar{X} - t_{0.975}(n-1)*\sqrt{s^2/n} ]

Ce sera.

rv = stats.t(df=n-1)
lcl = s_mean - rv.isf(0.025) * np.sqrt(s_var/n)
ucl = s_mean - rv.isf(0.975) * np.sqrt(s_var/n)

lcl , ucl

(58.858, 78.742)

L'intervalle de confiance à 95% pour la moyenne de la population était (57,616, 79,984). Comme la moyenne de population obtenue précédemment était de 69,25875, nous pouvons voir que la moyenne de la population est incluse dans l'intervalle de confiance.

Résumé

Cette fois, j'ai essayé d'estimer la section. J'ai pensé que ce serait bien de bouger vos mains et de produire parce que vous pouvez approfondir votre compréhension en déplaçant réellement vos mains et en l'implémentant!


Matériel de référence
Bases de l'analyse statistique comprises par python

Recommended Posts

J'ai essayé d'estimer la section.
J'ai essayé d'estimer le rapport de circonférence π de manière probabiliste
J'ai essayé de déplacer le ballon
J'ai essayé de résumer la commande umask
J'ai essayé de reconnaître le mot de réveil
J'ai essayé de résumer la modélisation graphique.
J'ai essayé de toucher l'API COTOHA
J'ai essayé de déboguer.
J'ai essayé Web Scraping pour analyser les paroles.
J'ai essayé d'optimiser le séchage du linge
J'ai essayé de sauvegarder les données avec discorde
J'ai essayé de corriger la forme trapézoïdale de l'image
Qiita Job J'ai essayé d'analyser le travail
LeetCode j'ai essayé de résumer les plus simples
J'ai essayé de mettre en œuvre le problème du voyageur de commerce
J'ai essayé de vectoriser les paroles de Hinatazaka 46!
J'ai essayé d'estimer la similitude de l'intention de la question en utilisant Doc2Vec de gensim
(Python) J'ai essayé d'analyser 1 million de mains ~ J'ai essayé d'estimer le nombre d'AA ~
J'ai essayé d'apprendre PredNet
J'ai essayé d'implémenter PCANet
J'ai essayé la bibliothèque changefinder!
J'ai essayé de présenter Pylint
jupyter je l'ai touché
J'ai essayé d'implémenter StarGAN (1)
J'ai essayé d'entraîner la fonction péché avec chainer
J'ai essayé de représenter graphiquement les packages installés en Python
J'ai essayé de détecter l'iris à partir de l'image de la caméra
J'ai essayé de toucher un fichier CSV avec Python
J'ai essayé de prédire le match de la J League (analyse des données)
J'ai essayé de résoudre Soma Cube avec python
J'ai essayé d'approcher la fonction sin en utilisant le chainer
[Python] J'ai essayé de représenter graphiquement le top 10 des ombres à paupières
J'ai essayé de visualiser les informations spacha de VTuber
J'ai essayé d'effacer la partie négative de Meros
J'ai essayé de résoudre le problème avec Python Vol.1
J'ai essayé de simuler la méthode de calcul de la moyenne des coûts en dollars
J'ai essayé de refaire la factorisation matricielle non négative (NMF)
J'ai essayé d'identifier la langue en utilisant CNN + Melspectogram
J'ai essayé de compléter le graphe de connaissances en utilisant OpenKE
J'ai essayé de classer les voix des acteurs de la voix
J'ai essayé de compresser l'image en utilisant l'apprentissage automatique
J'ai essayé de résumer les opérations de chaîne de Python
J'ai essayé de trouver l'entropie de l'image avec python
J'ai essayé de découvrir les grandes lignes de Big Gorilla
J'ai essayé d'introduire l'outil de génération de diagramme blockdiag
[Courses de chevaux] J'ai essayé de quantifier la force du cheval de course
J'ai essayé de simuler la propagation de l'infection avec Python
J'ai essayé d'implémenter Deep VQE
J'ai essayé d'analyser les émotions de tout le roman "Weather Child" ☔️
[Première API COTOHA] J'ai essayé de résumer l'ancienne histoire
J'ai essayé le tutoriel TensorFlow 1er
J'ai essayé de créer l'API Quip
J'ai essayé de trouver la moyenne de plusieurs colonnes avec TensorFlow
J'ai essayé le roman Naro API 2
J'ai essayé de toucher Python (installation)
J'ai essayé de notifier les informations de retard de train avec LINE Notify
J'ai essayé de simuler l'optimisation des publicités à l'aide de l'algorithme Bandit