質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1466閲覧

カイ二乗検定の算出結果が正解と合わない(Python SymPy)

touho

総合スコア26

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

1クリップ

投稿2018/11/10 03:09

編集2018/11/10 03:35

#問題文
正規母関数より標本10を取り、標本平均Yを算出する。このとき、標本平均Yの標本分散が母関数の分散の1/2倍より小さいか、または母関数の分散の2倍より大きくなる確率を答えよ

#アプローチ
自由度10-1のカイ二乗分布を定積分する。

#トラブル
計算結果が合わない。
正答(25.85%)より10%程度低く算出されてしまう。

#ゴール
ソースコード上の具体的な問題点の把握
または正答自体の誤りの把握

#ソースコード

Python

1print("preparing") 2 3import pandas as pd 4import sympy as sym 5import sympy.stats as sst 6import sympy.plotting as spl 7 8import matplotlib.pyplot as plt 9 10sym.init_printing() 11oo = sym.oo 12 13 14sigma, s, x, mu, mu2, m, n, n2 = sym.symbols( 15 "sigma,s,x,mu,mu2,m,n,n2", real=True) 16sigma = sym.Symbol("sigma", positive=True) 17 18# %% 19def temp_f(n_2): 20 # カイ二乗分布の取得 21 f = sst.ChiSquared(x, n_2-1) 22 f = sst.density(f)(x) 23 24 # 上限値と下限値の設定 25 up = 2*sigma**2 26 down = (1/2)*sigma**2 27 28 # 評価するパラメータ 29 par = s**2 30 31 # パラメータをカイ二乗統計量に変換するための写像を取得 32 temp = sym.Eq((n_2-1)*s**2/sigma**2, m*par) 33 g = sym.solve(temp, m)[0] 34 35 # 上限下限の値にもその写像を適用 36 up = up*g 37 down = down*g 38 39 # カイ二乗分布の方程式は計算に非常に時間がかかるのでテイラー展開(n=20) 40 print("expanding") 41 f = sum([f.subs(x, x+(up+down)/2).taylor_term(i, x) for i in range(20)]) 42 43 # 分布関数を定積分 44 print("now integrating") 45 F = sym.integrate(f.subs(x, x-(up+down)/2), (x, down, up)) 46 print("integrate done") 47 48 return F.evalf() 49 50# %% 51r= temp_f(10) 52print(1-r)

#実行環境
Python3.6.7 | conda base
VS Code 1.8.2 | with Jupyter extension

#備考
グローバル変数ガンガンに使っててヤバイのは把握してますがなんかのサービスにデプロイするつもりはないのでご勘弁ください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Paalon

2018/11/10 03:28

正規母関数とはなんですか?
touho

2018/11/10 03:36

正規分布に従うとだけわかっている母集団の分布関数のことです。平均分散ともに不明ですが。
touho

2018/11/10 03:37

正規分布として読み替えていただいて差し支えありません
guest

回答1

0

自己解決

友人と検討の結果、教科書側の数値の取り違えだろうとのことで一致したので解決とします。

投稿2018/11/10 09:29

touho

総合スコア26

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問