p値を下げている配列を知りたい
解決済
回答 3
投稿
- 評価
- クリップ 0
- VIEW 343
前提・実現したいこと
p値を下げている配列を知りたい。
発生している問題・エラーメッセージ
特にエラーは発生していない。
該当のソースコード
#coding:utf-8
import scipy as sp
import scipy.stats
import pandas as pd
import numpy as np
data = [[23. 45. 78. 23. 48.][36. 94. 34. 10. 40.][46. 85. 39. 62. 81.][1. 1. 1. 1. 1.]]
result= sp.stats.bartlett(*data)
print(result)
とコードを書いて実行したところ、
BartlettResult(statistic=4.3945586749853556, pvalue=0.009338345709)
のように出力された。今回の場合だと、data の[1. 1. 1. 1. 1.]がp値を下げている配列である。それを検出したい。
試したこと
for文を書いて一つ一つ検出する方法を思いついたが、しかしどのようにp値を下げているかいなかを判定すればいいのかわからなかった。
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
checkベストアンサー
0
おそらく、配列を順番に除いてbartlettに入力するのが近道のように思います。1番目の配列を除いて残りだけで実施した場合、2番目を除外して実施した場合、などを順番に行い、最も期待するP値に近くなるケースを探索すればいいかと思います。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
0
数理計画法的に考えてみる(解決したい課題を定義する)のはいかがでしょうか?
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
0
雑な発想ですが、素直に各配列の分散を求めて外れ値除去的な方法(分散の分布を見て2シグマ、とか)でハジけば、それなりに行けるんじゃないかなぁ、とか思ったり。あまり厳密な方法ではないかもしれませんが、参考までに。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 90.36%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
2018/04/21 20:23
一つ質問なのですが、もしデータが、
data = [[23. 45. 78. 23. 48.][36. 94. 34. 10. 40.][46. 85. 39. 62. 81.][50. 74. 63. 83. 71.][1. 1. 1. 1. 1.][58. 73. 27. 47. 66.][71. 77. 33. 42. 47.]×100・・・[2. 2. 2. 2. 2.]]のように、20〜80までの数字が100ほどあり、その中に[1. 1. 1. 1. 1.]と[2. 2. 2. 2. 2.]の配列が混ざっていて、これらがp値を下げている原因で、この2つの配列を取り除きたいとしたらどうしたらいいでしょうか?僕がお聞きしたいのは、p値を下げている配列が何個かわからなくて、その場合でもp値を下げている配列をpick upしたい時、という意図なのですが。
2018/04/21 21:45
ちなみに、bartlett法でp値を下げている配列を除外したい意図はどこにあるのでしょうか?
私の理解だと、bartlett法で帰無仮説が採択されても棄却されても大勢に影響はないと思っています。理由は、その結果は二元配置分散分析や一元配置分散分析が使えるかどうかというだけで、使えない(つまり分散が不均一)場合は、他の方法が適用できるので深刻な問題にならないと思っていました。
おそらく、別の用途があってのことかと思うので後学のため、教えていただけるとありがたく思います。
2018/04/22 13:24
2018/04/23 08:34
配列ひとつを除外してp値を計算する処理を複数回実施してp値に大きな影響を与える配列を特定するという処理を所定の条件を満たすまで行えばいいことになります。
2018/04/23 11:05