python PR

【pythonで統計学】等分散性の検定について(ルビーン検定・バートレット検定)

python 等分散性の検定
記事内に商品プロモーションを含む場合があります

t検定などの検定を行う上で等分散性は確認しないと、用いる検定手法を誤ってしまうことがあります

等分散性の検定は代表的なものにF検定と呼ばれるものがあり、そのほかよく使われるものに以下の2つがあります

  • ルビーン検定:2群以上の等分散性を確認
  • バートレット検定:2群以上の等分散性を確認(正規性を仮定できる場合)

今回はpythonで等分散性の検定を行う方法について解説していきたいと思います

これまでの【pythonで統計学】と同様に、csvから読み込んだデータを等分散性の検定にかける方法ですので、ぜひ参考にしてみてください

pythonで統計学を学ぶ流れは以下の記事を参考にしてください

python 統計学
pythonで統計学を学ぶメリット〜実際の学習手順を紹介〜近年、データサイエンティストの需要が高まってきていますが、データサイエンティスト必須能力として、「プログラミング言語」「統計学」が挙げられています。pythonで統計学を扱えれば、データサイエンティストとしての道も開けるでしょう。今回はpythonで統計学を学ぶメリットや実際にどのように学習していくべきかを解説していきたいと思います。...

等分散性の検定とは

等分散性の検定とは、母集団間や因子水準間の分散の同等性を検定するものです

  • 帰無仮説:各群の母分散は等しい(母分散に差はない)
  • 対立仮説:各群の母分散は異なる(母分散に差がある)

ということになります

p値<有意水準α

であった場合には、帰無仮説を棄却して対立仮説を採択します

なので、各群の母分散は異なる、となります

分散とは

分散というのは、データの散らばり具合を表しています

さらにいうと、分散はデータの平均値の偏差の2乗になります

そのため、基本的にはパラメトリック検定でしか用いないものだと考えています

2群間の分散が等しくない、ということは、2群のデータが散らばっていると言い換えられます

データが散らばっているものと、散らばっていないものを比較してしまうと、異なる結果になるため、等分散性を確認する検定が必要になってきます

pythonで等分散性の検定を行う

pythonで等分散性の検定を行う場合には、scipy.statsを使用します

今回はe-statで無料配布されているデータセットを用いて正規性の検定をかけていきたいと思います

統計用サンプルデータ修正
下から2行は不要なので、削除して使用をします

pythonでルビーン検定をかける

pythonでルビーン検定をかける場合には、以下のように記載をします

scipy.stats.levene(A,B)

A,Bには該当するデータを入力すればOKです

csvから読み込んだデータを使用する場合には、以下のようにします

def levenetest():
    type = [("all file","*")]  
    file_path_stastics = filedialog.askopenfilename(filetypes = type, initialdir = os.getcwd ())  
    stasticsdata = pd.read_csv(file_path_stastics, engine="python",index_col=None)
    #list化
    A_list=stasticsdata.iloc[:,2]
    A=list(A_list)
    B_list=stasticsdata.iloc[:,3]
    B=list(B_list)
    
    result=stats.levene(A, B, center='mean')
    listbox1.insert(tk.END,"p=%.3f" %(result.pvalue))

bloc[:,○]でルビーン検定にかけたいデータの列数を指定すれば、csvで取り込んだデータを検定にかけることができます

また統計にかけたいデータ数が増えた場合には、list化より下を増やせば、多群間で検定をかけることが可能です

pythonでバートレットの検定をかける

冒頭でも記載したように、バートレットの検定は正規分布に従っている場合に使うのが好ましいです

これは正規分布に従わない標本では均一かどうかよりも、非正規性を検出する傾向があるためです

正規性の確認は以下の記事を参考にしてください

python 正規性の検定
【pythonで統計学】正規性の検定(シャピロウィルク検定etc)のかけ方~サンプルコード付き~t検定などの統計手法をかける場合には、まずそのデータが正規分布しているかを調べなくてはいけません。正規性を確認する方法の一つに、ヒストグラムを書いて目視で確認する、という方法がありますが、これだけでは正確ではありません。 そこで、「Q-Qプロット」や「シャピロウィルク検定」「コルモゴロフスミルノフ検定」などを使用して、正規性を確認していきます。 実際に統計をかける場合には、csvやexcelデータなどを読み込んで、統計にかけることが多いと思います。そこで今回は、pythonを使ってcsvから取り込んだデータで正規性の検定を行う方法について、解説していきたいと思います。...

pythonでバートレットの検定を使用する場合には、以下のように入力をします

scipy.stats.bartlett(A,B)

csvから読み込んだデータを使用する場合には、以下のようにします

def levenetest():
    type = [("all file","*")]  
    file_path_stastics = filedialog.askopenfilename(filetypes = type, initialdir = os.getcwd ())  
    stasticsdata = pd.read_csv(file_path_stastics, engine="python",index_col=None)
    #list化
    A_list=stasticsdata.iloc[:,2]
    A=list(A_list)
    B_list=stasticsdata.iloc[:,3]
    B=list(B_list)
    
    result=stats.bartlett(A, B, center='mean')
    listbox1.insert(tk.END,"p=%.3f" %(result.pvalue))

bloc[:,○]でバートレット検定にかけたいデータの列数を指定すれば、csvで取り込んだデータを検定にかけることができます

また統計にかけたいデータ数が増えた場合には、list化より下を増やせば、多群間で検定をかけることが可能です

まとめ

  • pythonでの等分散性の検定について
  • pythonではルビーン検定とバートレットの検定が使える
  • バートレットの検定は正規分布している場合に用いる

統計学を学んだ書籍一覧

おすすめプログラミングスクール

DMMWEBCAMP
  • WEBCAMPはコスパ最強
  • WEBCAMPは初心者に優しい充実したサポート付き
  • 16週間プランを選択して、返金してもらおう
WEBCAMPの公式ページはこちら WEBCAMPの口コミ・評価はこちら
テックアカデミー  
  • テックアカデミーは費用対効果抜群
  • テックアカデミーのサポートは個人の能力に応じつつ、python初心者に優しい
  • まずは無料体験でテックアカデミーを知ってから受講を決める
テックアカデミーの公式ページはこちら テックアカデミーの口コミ・評価はこちら
キカガク
  • 多種多様なスキルコース
  • 初心者から専門家まで対象
  • 給付金利用で費用を抑えられる
キカガクの公式ページはこちら キカガクの口コミ・評価はこちら
Aidemy Premium
  • 完全オンラインで、時間や場所に縛られず学習したい
  • マンツーマン学習サポートにより実践に近い経験をしたい
  • 未経験から機械学習エンジニアになりたい
Aidemy Premiumの公式ページはこちら Aidemy Premiumの口コミ・評価はこちら
My Agile Privacy
This website uses technical and profiling cookies. Clicking on "Accept" authorises all profiling cookies. Clicking on "Refuse" or the X will refuse all profiling cookies. By clicking on "Customise" you can select which profiling cookies to activate.