標準平均をシミュレーションするプログラムを試作しようとして以下のコードを書きました。
#数値計算
import numpy as np
import scipy as sp
import pandas as pd
from scipy import stats
#グラフの描写
from matplotlib import pyplot as plt
import seaborn as sns
sns.set()
%matplotlib inline
#標本平均を何度も計算する関数
def calc_sample_mean(size,n_trial):
sample_mean_array=np.zeros(n_trial)
for i in range(0,n_trial):
sample=population.rvs(size==size)
sample_mean_array[i]=sp.mean(sample)
return(sample_mean_array)
#データを10個選んで標本平均を作る、10000回繰り返す
np.random.seed(1)
size_10=calc_sample_mean(size=10,n_trial=10000)
size_10_df=pd.DataFrame({
"sample_mean":size_10,
"size":np.tile("size 10",10000)
})
引数の指定は間違っていないと思いますが、以下のようなエラーメッセージが出ます。
TypeError Traceback (most recent call last)
<ipython-input-18-456f62e08f11> in <module>
24
25 np.random.seed(1)
---> 26 size_10=calc_sample_mean(size=10,n_trial=10000)
27 size_10_df=pd.DataFrame({
28 "sample_mean":size_10,
<ipython-input-18-456f62e08f11> in calc_sample_mean(size, n_trial)
17 sample_mean_array=np.zeros(n_trial)
18 for i in range(0,n_trial):
---> 19 sample=population.rvs(size==size)
20 sample_mean_array[i]=sp.mean(sample)
21 return(sample_mean_array)
~\Anaconda3\envs\Python3.7\lib\site-packages\scipy\stats\_distn_infrastructure.py in rvs(self, size, random_state)
466 kwds = self.kwds.copy()
467 kwds.update({'size': size, 'random_state': random_state})
--> 468 return self.dist.rvs(*self.args, **kwds)
469
470 def sf(self, x):
~\Anaconda3\envs\Python3.7\lib\site-packages\scipy\stats\_distn_infrastructure.py in rvs(self, *args, **kwds)
950 # by _rvs().
951 self._size = size
--> 952 vals = self._rvs(*args)
953
954 vals = vals * scale + loc
~\Anaconda3\envs\Python3.7\lib\site-packages\scipy\stats\_continuous_distns.py in _rvs(self)
215 """
216 def _rvs(self):
--> 217 return self._random_state.standard_normal(self._size)
218
219 def _pdf(self, x):
mtrand.pyx in mtrand.RandomState.standard_normal()
mtrand.pyx in mtrand.cont0_array()
TypeError: an integer is required
このエラーについて調べるもopen関数の例しかなく、よくわかりません