2017-04-18 12 views
1

: 다음으로 3 비율 1 개월의 허용 오차를 : 우리는 우리의 경우에 다른 공차를 사용하려면SPSS 일치하는 사례 제어 1 : N 우리는 SPSS (23)</p> <p>우리는 이미 1 세에 우리의 환자군과 대조군을 일치하여 우리의 환자군과 대조군 일치시킬

  1. :

    DATASET ACTIVATE DataSet1. 
    FUZZY BY=Age SUPPLIERID=Databasenr NEWDEMANDERIDVARS=MatchID1 MatchID2 MatchID3 GROUP=Case FUZZ=1 
    EXACTPRIORITY=TRUE 
    MATCHGROUPVAR=Matchgroupvariable 
    /OPTIONS SAMPLEWITHREPLACEMENT=FALSE MINIMIZEMEMORY=FALSE SHUFFLE=TRUE. 
    

    우리가이 개 질문이 알 수 있습니다. 예를 들어, 1 세 미만의 케이스는 1 개월의 허용 오차와 1 년 이상의 케이스를 6 개월의 허용 오차로 일치시켜야합니다. 어떻게 할 수 있니?

  2. 컨트롤을 케이스에 균등하게 배포하려고합니다. 그래서 우리에게는 60 건의 사례와 300 건의 통제가 있습니다. 먼저 모든 케이스에 가능한 한 컨트롤이 있어야합니다. 모든 케이스에 가능한 한 많은 컨트롤이있을 수 있도록 케이스에 균등하게 지속되는 컨트롤을 배포하려는 것입니다.

도움 주셔서 감사합니다.

답변

0

단순한 차이보다 더 복잡한 보풀을 가지려면 Python으로 작성된 customfuzz 함수를 사용하여 일치 조건을 계산해야합니다. 나는 이것에 대한 함수를 보여 주었다. 이 파일을 파이썬이 찾을 수있는 customfuzz.py 파일 (예 : 통계 설치의 python \ lib \ site-packages 디렉토리)에 저장하십시오.

그런 다음 FUZZ 대신 FUZZY 구문에서 CUSTOMMATCH = 'customfuzz.custommatch'를 사용하십시오.

여기에 함수가 있습니다. 표시된 들여 쓰기가 중요합니다. 이 코드에서는 연령이 몇 년이라고 가정합니다 (소수 부분 포함). 두 번째 문제를 들어

custommatch(demander, supplier): 
    """calculate match for one variable and return 0 or 1 

    demander and supplier are assumed to be (lists) of ages in years""" 

    # check for missing values 
    if demander[0] is None or supplier[0] is None: 
     return 0 # no match 

    delta = abs(demander[0] - supplier[0]) # difference in years 
    if demander[0] < 1: # demander age lt 1 year 
     if delta <= .08333: # difference le 1 month 
      return 1 # ok match 
     else: 
      return 0 
    else: 
     if delta <= .5: # difference le half year 
      return 1 # ok match 
     else: 
      return 0 

은, 당신이해야 할 것은 첫 경기의 라운드 후 실제 사용과 컨트롤의 감소 된 데이터 세트와 과정을 반복 된 모든 컨트롤을 제거합니다.

+0

감사합니다. 그것은 효과가 있었다. –