2011-08-04 3 views
0

누구나 다음을 수행하는 가장 좋은 방법을 조언 해 주시겠습니까?무작위로 데이터의 하위 집합을 선택하여 평균 수준이 벗어나는 곳을 확인하십시오.

나는 세 개의 변수 (X, Y & Z)와 네 개의 그룹 (1, 2, 3 & 4)을 가지고 있습니다. 나는 SPSS에서 discriminant function analysis를 사용하여 알려진 그룹화 된 데이터의 그룹 멤버십을 예측하여 그룹화되지 않은 미래의 데이터에 사용하도록했습니다.

이상적으로 원하는 데이터의 하위 집합을 무작위로 샘플링하여 원하는 정확한 분류 비율을 맞추기 위해 얼마나 많은 관찰이 필요한지 알고 싶습니다.

그러나 이것은 어렵다고 생각합니다. 그러므로, 나는 이것을 위해 수단을 찾고있다.

예를 들어, 변수 X는 그룹 1에 대해 141의 평균을 갖습니다.이 평균은 2000 회의 관측치로부터 계산되었을 수 있습니다. 그러나 평균이 700 번 관측에서 발생했을 수도 있습니다. 나는 관측치/사례의 수를 내 데이터의 평균 수준으로 계산할 수 있기를 원합니다. 예를 들어, 아마도 10 번 관측에서 시작하여 이것을 무작위로 50 번 또는 100 번 반복 한 다음 20 번 관측으로 증가시키는 등 .... 등등.

나는 이것이 몬테카를로 테스트의 한 형태라는 것을 알고 있습니다. 나는 SPSS 15, 17 및 18에 접근 할 수 있으며 탁월하다. 또한 minitab 15 & 16 및 amos17에 액세스 할 수 있으며 "R"을 다운로드했지만 이것에 익숙하지 않습니다. 내 경험은 SPSS와 함께하며 탁월합니다. SPSS Modified from this ..http : //pages.infinit.net/rlevesqu/Syntax/RandomSampling/Select2CasesFromEachGroup.txt에서 구문을 시험해 보았습니다.하지만 이것은 여전히 ​​부분 집합의 숫자를 입력하는 데 꽤 많은 시간이 걸릴 것입니다.

희망 사항이 도움이 될 수 있습니다.

읽어 주셔서 감사합니다.

앤디

+0

R은 이런 종류의 일을하기에 꽤 좋습니다. 당신이 미래에 이런 종류의 일을 더 많이하게된다면, 그것을 사용하는 법을 배울 가치가 있습니다. R을 사용했다면 작은 그룹에서 큰 그룹까지 무작위로 무작위로 추출한 다음 그 평균을 계산할 것입니다. 그런 다음 평균/부분 집합 크기의 그래프에 모두 그려 넣은 다음 모든 것이 수렴되는지 확인하십시오. 이 프로그램의 구현은 실제 프로그래밍 언어에서는 매우 간단하지만 엑셀과 같은 프로그램에서는 어렵습니다. – Oliver

답변

1

당신이 링크 텍스트가 좋은 시작이 (당신은 또한 SPSS에 SAMPLE 명령을 사용할 수 있지만,이 IMO Raynald 스크립트 당신은 당신이 그런 식으로 샘플을 구성에 대해 생각할 때에 더 유연 링크) .

의사 코드에서 프로세스는 다음과 같을 수 있습니다. SPSS의 매크로 언어 놀이 (나는 this document 좋은 소개 생각, 플러스 당신이 SPSS tag wiki 다른 참조를 검사 할 수 있습니다)에 오는 곳 여기

do n for sample size (a to b) 
    loop 100 times 
     draw sample size n 
     compute (& save) statistics 

이다. 기본적으로 샘플을 그리는 방법과 원하는 통계를 계산하는 방법을 파악한 후에는 매크로를 작성하여 프로세스를 반복하고 샘플 크기 매개 변수를 전달하는 방법을 알아야합니다. 각 샘플 크기와 관련된 오류에 대한 예상 유형을 만들 수 있기를 원하기 때문에 루프를 100 회 포함시킵니다.

통계를 계산하는 방법에 대한 예제를 제공하면이를 매크로 함수로 만들고 원하는 횟수 반복 할 수있는 예제를 제공 할 수 있습니다.

0

@Andy W @Oliver 제안들에 대한

감사합니다. 필자는 다음 매크로를 사용하여 해결 방법을 찾았습니다. ......... http : //www.spsstools.net/Syntax/Bootstrap/GetRandomSampleOfVariousSizeCalcStats.txt 그러나이 경우 변수를 복사하여 붙여 넣기해야합니다 주어진 그룹에 대한 데이터를 새로운 데이터 창에 표시합니다. 그다지 문제가되지 않습니다.이것을 더 취하는 방법을 아는 사람은 어떻게 될 것인가? 1/나는 std error, std dev ect 등의 다른 통계를 기록 할 수있다. 2/다른 분석을 사용하여 이상적인 판별 분석 및 새로운 데이터 창에 기록 출력 테이블이 많지 않고 정확한 분류의 비율 3/각 그룹에 대한 변수를 복사하여 붙여 넣을 필요가 없으므로 n을 지정하는 매크로를 실행할 수 있습니다 그룹 1, 2, 3의 x 변수 샘플 & 4.

다시 한번 감사드립니다.

DEFINE !sample(myvar !TOKENS(1) 
     /nbsampl !TOKENS(1) 
     /size !CMDEND). 
* myvar = the variable of interest (here we want the mean of salary) 
* nbsampl = number of samples. 
* size = the size of each samples. 

!LET !first='1' 
!DO !ss !IN (!size) 
!DO !count = 1 !TO !nbsampl. 

GET FILE='c:\Program Files\SPSS\employee data.sav'. 

COMPUTE draw=uniform(1). 
SORT CASES BY draw. 
N OF CASES !ss. 

COMPUTE samplenb=!count. 
COMPUTE ss=!ss. 

AGGREGATE 
    /OUTFILE=* 
    /BREAK=samplenb 
    /!myvar = MEAN(!myvar) /ss=FIRST(ss). 

!IF (!first !NE '1') !THEN 
ADD FILES /FILE=* /FILE='c:\temp\sample.sav'. 
!IFEND 
SAVE OUTFILE='c:\temp\sample.sav'. 
!LET !first='0' 

!DOEND. 
!DOEND. 

VARIABLE LABEL ss 'Sample size'. 
EXAMINE 
    VARIABLES=salary BY ss /PLOT=BOXPLOT/STATISTICS=NONE/NOTOTAL 
    /MISSING=REPORT. 

!ENDDEFINE. 
* ----------------END OF MACRO ----------------------------------------------. 


* Call macro (parameters are number of samples (here 20) and sizes of sample (here 5, 10,15,30,50). 
* Thus 20 samples of size 5. 
* Thus 20 samples of size 10, etc. 
!sample myvar=salary nbsampl=20 size= 5 10 15 30 50. 
+0

지금은 구체적인 예제를 제공 할 시간이 없지만 도움말 섹션에서'OMS'를 찾으면 새로운 파일 (새 .sav 데이터 세트 포함)에 출력을 저장하는 예제를 제공합니다. 본질적으로 출력으로 들어가는 모든 것을 새로운 SPSS 데이터 세트에 저장할 수 있습니다. –

관련 문제