2017-06-22 29 views
3

私は、カテゴリ変数(バイナリ)と連続変数を含むデータセットを持っています。私は連続変数を予測するための線形回帰モデルを適用しようとしています。誰かが私に、カテゴリ変数と連続目標変数の間の相関関係をチェックする方法を教えてもらえますか?Pythonの連続変数とカテゴリ変数の間の相関をチェックする方法は?

現在のコード:

import pandas as pd 
df_hosp = pd.read_csv('C:\Users\LAPPY-2\Desktop\LengthOfStay.csv') 

data = df_hosp[['lengthofstay', 'male', 'female', 'dialysisrenalendstage', 'asthma', \ 
       'irondef', 'pneum', 'substancedependence', \ 
       'psychologicaldisordermajor', 'depress', 'psychother', \ 
       'fibrosisandother', 'malnutrition', 'hemo']] 
print data.corr() 

lengthofstayから離れ変数のすべてがカテゴリです。これはうまくいくはずですか?

+0

を試してみましたか?コードを提供し、問題が発生している場所を明確に記述します。 –

+0

PythonでANOVAを探します(Rでは "aov")。これは、異なるグループ(カテゴリー値)の平均(連続値)に有意な差があるかどうかを識別するのに役立ちます。グループが2つしかない場合は、両面t.test(ペアまたはペアなし)を使用します。 – Rockbar

+0

このチュートリアルに従ってください。私はそれがあなたが探しているものだと思う:http://www.marsja.se/four-ways-to-conduct-one-way-anovas-using-python/ – Rockbar

答えて

4

カテゴリ変数をダミー変数hereに変換し、変数をnumpy.arrayに入れます。たとえば、次のように

data.csv

age,size,color_head 
4,50,black 
9,100,blonde 
12,120,brown 
17,160,black 
18,180,brown 

抽出データ:

import numpy as np 
import pandas as pd 

df = pd.read_csv('data.csv') 

DF:

df

カテゴリV変換

df_dummies = pd.get_dummies(df['color_head']) 
del df_dummies[df_dummies.columns[-1]] 
df_new = pd.concat([df, df_dummies], axis=1) 
del df_new['color_head'] 

df_new:

x = df_new.values 

相関を計算します:numpyの配列にすることを入れて

df_new

ダミー変数にariable

出力:

array([[ 1.  , 0.99574691, -0.23658011, -0.28975028], 
     [ 0.99574691, 1.  , -0.30318496, -0.24026862], 
     [-0.23658011, -0.30318496, 1.  , -0.40824829], 
     [-0.28975028, -0.24026862, -0.40824829, 1.  ]]) 

を参照してください:あなたは、これまで何をして

https://docs.scipy.org/doc/numpy/reference/generated/numpy.corrcoef.html

+0

これは実際には彼の仕事の半分ではなく解決策ではありません。要求は線形モデルです。 – Rockbar

+0

私は応答を完了しますが、相関行列だけが尋ねられます;) – glegoux

+0

こんにちは@glegoux、あなたの答えにたくさんありがとう。それは本当に詳細で、問題を解決するのに役立ちます。私がここで言及しているカテゴリ変数はすべてバイナリ形式になっているので、相関行列操作を直接実行するだけで相関関係を説明することができますか? – funnyguy

関連する問題