よしだの備忘録

シミュレーションやデータサイエンスに関する備忘録

信号解析について

統計的仮説検定の記事を書いていたところでしたが、今の興味が信号解析に移ったので先に「信号解析 信号処理とデータ分析の基礎」を読みながらPythonで実装していきたいと思います。

信号解析は完璧に独学なので、間違っているところや補足等あればコメントよろしくお願いします。

予定

  • 1章:信号の表現と扱い(信号の相関関数、フーリエ級数展開、観測信号の線形モデル)
  • 2章:信号の周波数解析(フーリエ変換や線形予測法に基づく周波数解析)
  • 3章:信号の周波数解析(クロススペクトル解析、バイスペクトル解析、時間-周波数解析、ケプストラム解析)
  • 4章:信号分離の解析手法1(雑音除去と変動成分の分離)
  • 5章:信号分離の解析手法2(重畳信号の分離)
  • 6章:信号の非線形解析
  • 7章:観測信号の識別と特徴把握

q-qプロット

実務でデータ解析をしていると、二つのデータ間の分布の差を実データから直接比較したいといったことがあります。
つまり、平均や分散のような統計量だけ見ても違いがわかりづらく、統計検定をやってもうまく差が見えないような時でも何かしら分布間の違いの差を見て、解析のヒントにしたいといったような状況です。そんな泥臭い解析を想定してます。

そこで使用できるが、qq plotです。実際に使うコードはこちらです。
Pythonのstatsmodels.graphics.gofplots.qqplot_2samplesを使用します。
www.statsmodels.org

import statsmodels.api as sm
import numpy as np
import matplotlib.pyplot as plt
from statsmodels.graphics.gofplots import qqplot_2samples
x = np.random.normal(loc=8.5, scale=2.5, size=37)
y = np.random.normal(loc=8.0, scale=3.0, size=37)
pp_x = sm.ProbPlot(x)
pp_y = sm.ProbPlot(y)
qqplot_2samples(pp_x, pp_y)
plt.show()

正規分布などを理論分布と仮定したqq plot

特に、正規分布を理論分布と仮定している場合は正規Q-Qプロットと呼ばれます。*1
以下のサイトを参考にしてください。
docs.scipy.org

統計的仮説検定をPythonで実装する Part.1

シミュレーションをやっていたので統計力学はできるのですが、
統計学は実際に使ったことがありませんでした。

なので、統計的仮説検定をPythonで実装していきたいと思います。
検定自体の詳細は良書がいくつもあると思うので、そちらにお任せします。
ここでは、簡単な考え方やポイント、コードを書いていきたいと思います。
(全て独学なので、間違い等あれば教えていただけると助かります)

統計的仮説検定の流れ

  1. 母集団に関する帰無仮説と対立仮説を立てる

 「母平均の差が0」のような帰無仮説を立てる。この際、対立仮説は「母平均の差が0ではない」のような対立仮説を立てる。
*1

  1. 1の仮説を検証できる検定統計量を選ぶ
  2. 有意水準を決める
  3. 収集したデータを用いて検定統計量の値を求める
  4. 3で決めた有意水準を元に、帰無仮説を棄却するかしないか決める

使用時の注意点

 帰無仮説を棄却できなかった時の「有意差がない」場合でも、「等しい」ということではありません。言えることとしては、実験などで得られた結果は「偶然でも十分起こる」程度ですという意味でしかありません。

具体的な検定について

t検定

正規母集団からの無作為抽出で、母集団の分散がわからない場合に平均値の検定を行うことを考えます。
母集団の分散がわかっている時は、 Z = ( \bar{X} - \mu)/(\sigma/\sqrt{n})の検定統計量を使用すればいいんですが、
今回の場合は母集団の分散がわからないので、以下のようなデータから求められる不偏分散の平方根を用います。


 Z = ( \bar{X} - \mu)/(\hat{\sigma}/\sqrt{n})
この検定統計量は、自由度n-1のt分布に従います。*2

続きはまた更新します。

*1:対立仮説が「母平均の差が0でない( \mu_1-\mu_2\neq0)」のような場合は両側検定、対立仮説が「母平均の差が0より大きい( \mu_1-\mu_2>0)」のような場合は片側検定になります。

*2:t分布の説明はこちらhttps://atarimae.biz/archives/14046

はてなブログの練習

ソースコードを埋め込む

>||と||<の中にコードを書くと、自動で色をつけてくれるみたい。

print("Hello hatena")

weblog-life.net

引用をつける

>> << の中にコードを書くと自動で引用の形式になる。

ここは引用の文章