2017-04-06 11 views
2

에서 홀수 비율을 계산합니다.더 좋은 방법은 내가 좋아 보이는 dataframe의 counts1을 판다

counts1['sumwwoStatin']= counts1['w-statin']+counts1['wo-statin'] 

counts1['oddRatio']=((counts1['w-statin']/counts1['sumwwoStatin'])/(counts1['wo-statin']/counts1['sumwwoStatin'])) 

확율 비율, 상대 위험을 계산하는 더 나은 방법이 있나요, Contigency 표, & 단지 R처럼 판다의 카이 스퀘어 테스트 : 나는 옛날 내가 종이에 그것을 할 것 같은 스타일을 했습니까? 모든 제안을 부탁드립니다. ... 그러나, 평균, 편차, 상관 관계 등과 같은 기본적인 순간을 제외하고 통계 계산 및 테스트를 제공하지 않습니다

Frequency Cancer  Factor AgeGroups 
0   223 Yes wo-statin  0-5 
1   112 Yes wo-statin  6-10 
2   143 Yes wo-statin  11-15 
3   395 Yes wo-statin  16-20 
4   624 Yes wo-statin  21-25 
5   968 Yes wo-statin  26-30 
6  1225 Yes wo-statin  30-35 
7  1475 Yes wo-statin  35-40 
8  2533 Yes wo-statin  41-45 
9  4268 Yes wo-statin  46-50 
10  5631 Yes wo-statin  52-55 
11  6656 Yes wo-statin  56-60 
12  7166 Yes wo-statin  61-65 
13  8573 Yes wo-statin  66-70 
14  8218 Yes wo-statin  71-75 
15  4614 Yes wo-statin  76-80 
16  1869 Yes wo-statin  81-85 
17  699 Yes wo-statin  86-90 
18  157 Yes wo-statin  91-95 
19   31 Yes wo-statin 96-100 
20   5 Yes wo-statin  >100 
21  108  No w-statin  0-5 
22   6  No w-statin  6-10 
23   5  No w-statin  11-15 
24   28  No w-statin  16-20 
25   80  No w-statin  21-25 
26  110  No w-statin  26-30 
27  171  No w-statin  30-35 
28  338  No w-statin  35-40 
29  782  No w-statin  41-45 
.. 

답변

4

AFAIK 팬더

을 : 아 그건 그렇고, 내 CSV의 모습을 어떻게 얘기를 깜빡 했네요 이 요구 사항에 대해서는 scipy을 의지 할 수 있습니다. 필요한 것을 대부분 찾을 수 있습니다. 예를 들어, 교차비를 계산 :

import scipy.stats as stats 

table = df.groupby(level="Cancer").sum().values 
print(table) 

>>> array([[ 840, 51663], 
      [ 32, 5053]]) 

oddsratio, pvalue = stats.fisher_exact(table) 
print("OddsR: ", oddsratio, "p-Value:", pvalue) 

>>> OddsR: 2.56743220487 p-Value: 2.72418938361e-09 

이 이상 herehere를 참조하십시오.

+0

좋아요! 고마워요. :) 가능하다면 궁금 해서요. –

+0

실제 긴 샷이므로 오래된 게시물이지만 P 값이 0.0이면 어떻게됩니까? 계산기로 계산하면 <0.0001이됩니다. 반올림하지 않는 방법이 있습니까? – ScoutEU