2016-07-21 2 views
0

팬더는 데이터 프레임에 대한 상관 행렬 데이터 프레임, pd.DataFrame.corr()을 제공하는 정말 좋은 기능을 가지고 있습니다.선형 회귀 기울기 행렬 계산 (상관 행렬과 유사) - Python/Pandas

그러나 상관 관계의 r은 항상 유익한 것은 아닙니다. 응용 프로그램에 따라 선형 회귀의 기울기도 마찬가지로 중요 할 수 있습니다. 입력 행렬 또는 데이터 프레임에 대해이를 반환 할 수있는 함수가 있습니까?

으로 반복하는 것 외에는 고통이 될 수 있습니다.이 방법이 없습니다. 회귀 라인 (Y)의

답변

2

경사 = B 0 + B 1 * X 또한 상관 계수를 이용하여 계산 될 수있다 : B- 1 = CORR (X, Y) * σ X Y

σ를 만들 NumPy와의 newaxis 사용 X/Y σ 매트릭스 :

df.corr() * (df.std().values/df.std().values[:, np.newaxis]) 
Out[59]: 
      A   B   C 
A 1.000000 -0.686981 0.252078 
B -0.473282 1.000000 -0.263359 
C 0.137670 -0.208775 1.000000 

df은 다음과 같습니다

df 
Out[60]: 
    A B C 
0 5 6 9 
1 4 4 2 
2 7 3 5 
3 4 3 9 
4 6 5 3 
5 3 8 6 
6 2 8 1 
7 7 2 7 
8 4 1 5 
9 1 6 6 

그리고 이것은 확인을위한 것입니다 : 나는 당신이 여기에 버그 미안 해요

res = [] 
for col1, col2 in itertools.product(df.columns, repeat=2): 
    res.append(linregress(df[col1], df[col2]).slope) 
np.array(res).reshape(3, 3) 
Out[72]: 
array([[ 1.  , -0.68698061, 0.25207756], 
     [-0.47328244, 1.  , -0.26335878], 
     [ 0.1376702 , -0.20877458, 1.  ]]) 
+0

하지만 문서는 아직 의견이 없습니다. 귀하의 [numpy intro docs] (http://stackoverflow.com/documentation/numpy/revisions/1296?exampleId=6738) 주제에 대한 편집을 승인했습니다. 나는 ipython 스타일의 출력이 코드에 있어서는 안된다는 데 동의하며, 현재 버전 (주석 처리 된 출력 포함)은 의미가 있다고 생각한다. 어쨌든 바닐라 파이썬 인터프리터의 출력 만 표시해야하며, 많은 사람들은 ipython/jupyter를 모르고 그 결과로 혼란스러워합니다. –