0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

統計学入門練習問題11.4と11.7をPythonで解いてみた

Last updated at Posted at 2018-11-20

#はじめに
統計学入門第11章は推定がテーマになっている章です。このうち練習問題11.4と11.7をPythonで解いてみました。環境はAnacondaを使用している。

#解く
##11.4
問題

11.4
母分散$\sigma^2=9$の正規母集団から大きさ$n$の標本を抽出して、母平均$\mu$の信頼係数$99%$の信頼区間を求めたい.その幅を$1$以下にするには,$n$をいくつ以上にすべきか.

母分散$\sigma^2$が既知のとき、母平均$\mu$の信頼係数$1-a$(信頼区間の%を0<1-a<1の割合で表したもの)の信頼区間は$[\overline{X}-Z_{\alpha/2}・\sigma/\sqrt{n},~~~~\overline{X}+Z_{\alpha/2}・\sigma/\sqrt{n}]$と表される。
標準正規分布におけるメジアンからの上側の)ここでの問題は、上側と下側の差が1以下となるnを求めたいので$(\overline{X}+Z_{\alpha/2}・\sigma/\sqrt{n})-(\overline{X}-Z_{\alpha/2}・\sigma/\sqrt{n})\leq1$を求める
Sympyに上の式を解かせて答えを求める。

import sympy as sym
import scipy.stats as stats

n = sym.Symbol('n')
bottom, up = stats.norm.interval(alpha=0.99) #メジアンを中心に値の99%が含まれる範囲の限界を求める。
sigma = 3 #標準偏差

F = 2*up*(sigma/sym.sqrt(n)) - 1 <= 0 #上の式
print(sym.solve(F, n))
(238.856277636764 <= n) & (n < oo)

$n$は標本数だから整数であるべきで答えは239以上となります

##11.7
問題

11.7
東京の1988年8月1日から10日までの最低気温は
$21.8,~22.4,~22.7,~24.5,~25.9,~24.9,~24.9,~24.9,~24.9,~24.0~(^\circ C)$
であった.以下,正規母集団を仮定する.
i) 母平均$\mu$の信頼係数$99%$の信頼区間を求めよ.
ii) 母分散$\sigma^2$の信頼係数$95%$の信頼区間を求めよ.
iii)さらに,大阪の同期の最低気温は
$22.1,~25.3,~23.3,~25.2,~25.3,~24.9,~24.9,~24.9,~24.9,~24.9,~24.0~(^\circ C)$
であった.東京(1)と大阪(2)の最低気温差$\mu\equiv\mu_1-\mu_2$の$95%$信頼区間を作れ.なお,二つの母分散は等しいと仮定せよ.

i) 母平均$\mu$の信頼係数$99%$の信頼区間を求めよ.

母分散$\sigma^2$が未知のとき母平均$\mu$の信頼係数$1-\alpha$の信頼区間は$[\overline{X}-t_{\alpha/2}(n-1)・s/\sqrt{n},~~~~\overline{X}+t_{\alpha/2}(n-1)・s/\sqrt{n}]$
と表される。よって上の区間に標本から求められる値を代入すれば良い。

import numpy as np
import scipy.stats as stats
import sympy as sym
min_tokyo = np.array([21.8, 22.4, 22.7, 24.5, 25.9,
                      24.9, 24.8, 25.3, 25.2, 24.6])

n = len(min_tokyo)  # 標本数
tokyo_std = np.std(min_tokyo, ddof=1)  # 不偏分散からの標準偏差
tokyo_var = np.var(min_tokyo, ddof=1)  # 不偏分散
tokyo_mean = min_tokyo.mean()  # 東京の平均

# i)
bottom1, up1 = stats.t.interval(
    df=n - 1, alpha=0.99, loc=tokyo_mean, scale=tokyo_std/np.sqrt(n))
# df→自由度(n-1) alpha→99%→0.99 loc→平均 scale→出てくる値にかける値
print(bottom1, up1)

結果

22.779046896409294 25.640953103590707

ii) 母分散$\sigma^2$の信頼係数$95%$の信頼区間を求めよ.

母分散$\sigma^2$の信頼係数$1-\alpha$の信頼区間は
$[(n-1)s^2/\chi^2_{\alpha/2}(n-1),~~~~(n-1)s^2/\chi^2_{1-\alpha/2}(n-1)]$
と表される。よって上の区間に標本から求められる値を代入すれば良い。

# ii)
bottom2, up2 = stats.chi2.interval(alpha=0.95, df=n-1) #df→自由度(n-1) alpha→95%区間
print((n-1)*tokyo_var / up2, (n-1)*tokyo_var / bottom2) #区間の式通りに計算

結果

0.9172692525451521 6.461660438291186

iii)さらに,大阪の同期の最低気温は
$22.1,~25.3,~23.3,~25.2,~25.3,~24.9,~24.9,~24.9,~24.9,~24.9,~24.0~(^\circ C)$
であった.東京(1)と大阪(2)の最低気温差$\mu\equiv\mu_1-\mu_2$の$95%$信頼区間を作れ.なお,二つの母分散は等しいと仮定せよ.

まず、東京と大阪の最低気温の差をとって1標本として推定する。i)と同様に解けばよい。$[\overline{X}-t_{\alpha/2}(n-1)・s/\sqrt{n},~~~~\overline{X}+t_{\alpha/2}(n-1)・s/\sqrt{n}]$
であるから、

# iii)
min_osaka = np.array([22.1, 25.3, 23.3, 25.2, 25.3,
                      24.9, 24.9, 24.9, 24.9, 24.0])

# 差をとって計算するバージョン
min_sa = min_tokyo - min_osaka  # 東京と大阪の差の標本
sa_mean = min_sa.mean()  # 差の平均
sa_std = min_sa.std()  # 差の標準偏差

bottom3, up3 = stats.t.interval(
    df=n-1, alpha=0.95, loc=sa_mean, scale=sa_std/np.sqrt(n))
print(bottom3, up3)

結果

-0.9709402658776036 0.4309402658776038

次に、母分散が等しい2標本として推定する。信頼係数$1-\alpha$の信頼区間は
$[\overline{X}-\overline{Y}-t_{a/2}(m+n-2)s\sqrt{1/m+1/n},\overline{X}-\overline{Y}+t_{a/2}(m+n-2)s\sqrt{1/m+1/n}]$
と表される。(m:xの標本数,n:yの標本数)この区間の式に代入すれば良い。

# 2標本で解くバージョン
osaka_mean = min_osaka.mean() #大阪の平均最低気温
var_sum_t = sum((min_tokyo - tokyo_mean) ** 2) #東京の(標本−標本平均)^2の和
var_sum_o = sum((min_osaka - osaka_mean) ** 2) #大阪の(標本−標本平均)^2の和
two_var = (var_sum_t + var_sum_o) / (2*n-2) #東京と大阪の合併した分散
two_std = np.sqrt(two_var) #上の文さんから求めた標準偏差
bottom4, up4 = stats.t.interval(
    df=2*n-2, alpha=0.95, loc=tokyo_mean-osaka_mean, scale=two_std*np.sqrt(2/n))

print(bottom4, up4)

結果

-1.427203591568164 0.8872035915681649

1標本問題として推定したほうが、2標本として推定するよりも区間が小さくなる。

#おわりに
いろいろと説明不足感が否めないが、検索力を高めよう。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?