두 가지 질병의 유병률과 클러스터링을 알아내기 위해 행을 0과 1과 비교하는 방법은 무엇입니까?안녕하세요. 저는 JMP를 처음 사용해 박사 학위 논문을 작성하고 있는 초보 사용자입니다. 내 데이터의 일부를 비교하는 방법을 알 수 없어서 도움이 필요합니다. 내 데이터는 146개의 질병에 대해 각각 1 또는 0(예/아니요)이 있는 146개의 열로 구성됩니다. 이 데이터를 비교할 약 14000개의 행(환자)이 있습니다. 한 사람의 두 가지 질병에 대한 가장 일반적인 조합의 순서를 알아내야 합니다. 어떻게 해야 합니까?
도움을 주셔서 정말 감사합니다.
엠마
고급 통계 모델링데이터 혼합 및 정리Re: 두 가지 질병의 유병률과 클러스터링을 찾기 위해 행을 0과 1로 비교하는 방법은 무엇입니까?귀하의 조언과 제안에 대해 txnelson과 다른 모든 사람들에게 감사드립니다! 분석이 중단되어 원본 데이터 추출부터 다시 시작해야 했기 때문에 아직 솔루션을 시도해 볼 수는 없었습니다. 시간이 되면 돌아올게요. 감사합니다!
Re: 두 가지 질병의 유병률과 클러스터링을 찾기 위해 행을 0과 1로 비교하는 방법은 무엇입니까?"라는 일이 발생합니다. 동일인의 두 가지 질병에 대한 가장 일반적인 조합의 순서 "는 몇 가지 다른 분석 목표를 암시할 수 있습니다. 그러나 어떤 분석이 암시되든 먼저 데이터 '안에' 무엇이 있는지 살펴보는 것이 좋습니다.
한 가지 접근 방식은 "열 > 유틸리티 > 열 결합..."을 사용하여 모든 조건에 대한 각 환자의 상태를 포함하는 새 열을 만드는 것입니다. 그런 다음 '그래프 > 그래프 빌더'를 사용하여 이 새 열의 트리맵을 만들고 툴팁을 통해 결과를 검사할 수 있습니다. 이 작업을 수행하는 방법에 대한 자세한 내용을 잘 모르는 경우 다음을 시도하십시오. 온라인 문서 . 조건이 너무 많아서 혼란스러울 수도 있다는 점에 유의하세요.
새로운 사용자라면 아마도 스크립팅에 관심이 없을 것입니다. 그러나 아래 스크립트는 일부 데이터를 시뮬레이션하고 트리맵을 만듭니다. 무작위성 때문에 표시되는 내용이 매번 다를 수 있습니다. 하지만 이 코드를 실행하면 다음과 같은 그래프가 생성됩니다.

스크립트를 실행하려면 '파일 > 새로 만들기 > 새 스크립트'를 수행하고 나타나는 창에 코드를 붙여넣은 다음 '편집 > 스크립트 실행'을 수행합니다.
NamesDefaultToHere(1);
// Generate some fake binary data for each condition (maximum possible incidence for one condition is 20% of the patients):
// This is unrepresentative since the incidences of the conditions are treated as independent, but the in practice this may not
// be the case
nr = 1400; // Number of patients
nc = 15; // Number of conditions
m = J(nr, nc, 0);
for(c=1, c<=nc, c++,
incidence = RandomInteger(0, Round(0.2 * nr));
m[RandomIndex(nr, incidence), c] = 1;
);
dt = asTable(m);
dt << setName("Fake Incidence Data");
// Use 'Combine Columns' to make a binary string for each patient indicating what conditions they have
cols = dt << getColumnNames;
dt << combineColumns(columns(Eval(cols)), ColumnName("Patient Condition"), Delimiter( "" ), MultipleResponse(0));
// Make a Treemap of the patient conditions
dt << Graph Builder(
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables( X( :Patient Condition ) ),
Elements( Treemap( X, Legend( 1 ) ) )
);
// Aggregate the patient comnditions to a new table and sort it (descending)
//dt2 = dt << Summary(Group(:Patient Condition));
//dt2 << Sort(By(:N Rows), ReplaceTable, Order(Descending));
Re: 두 가지 질병의 유병률과 클러스터링을 찾기 위해 행을 0과 1로 비교하는 방법은 무엇입니까?분석을 실행할 예제 데이터 테이블을 생성하는 샘플 스크립트를 만들었습니다.데이터 쌍을 만드는 데 시간이 걸리기 때문에 데이터 행 100개만 만듭니다.결과 표에는 각 질병 조합이 발견된 환자 수의 수가 제공됩니다.

14000명의 환자 모두에게 동시에 스크립트를 실행하면 스크립트를 실행하는 데 약간의 시간이 걸립니다.데이터의 하위 집합에 대해 쉽게 실행한 다음 결과 테이블을 결합할 수 있습니다.
Names Default To Here( 1 );
dt = New Table( "raw Data" );
dt << add rows( 100 );
dt << New Column( "Patient", set each value( Row() ) );
Try( dt << delete columns( "Column 1" ) );
For( i = 1, i <= 146, i++,
dt << New Column( "Med Cond " || Char( i ),
set each value( Round( Random Uniform( 0, 1 ), 0 ) )
)
);
// Create the paired data table
dtPair = New Table( "Pairs",
New Column( "Patient" ),
New Column( "First Med Cond", Character ),
New Column( "Second Med Cond", Character )
);
//Populate the Pairs Table
For( theRow = 1, theRow <= N Rows( dt ), theRow++,
For( theFirstCond = 2, theFirstCond <= N Cols( dt ), theFirstCond++,
If( Column( dt, theFirstCond )[theRow] == 1,
thePatient = dt:Patient[theRow];
firstCond = (Column( dt, theFirstCond )) << get name;
For( theSecondCond = theFirstCond + 1, theSecondCond <= N Cols( dt ),
theSecondCond++,
If( Column( dt, theSecondCond )[theRow] == 1,
dtPair << add row( 1 );
pairRow = N Rows( dtPair );
dtPair:Patient[pairRow] = thePatient;
dtPair:First Med Cond[pairRow] = firstCond;
dtPair:Second Med Cond[pairRow] = (Column( dt, theSecondCond )) << get name;
)
);
)
)
);
dtSummary = dtPair << Summary(
Group( :First Med Cond, :Second Med Cond ),
Freq( "None" ),
Weight( "None" )
);
dtSummary << sort( by(N Rows), order(descending), replace table(11));Re: 두 가지 질병의 유병률과 클러스터링을 찾기 위해 행을 0과 1로 비교하는 방법은 무엇입니까?안녕 @EmmaLT ,
귀하가 요청하신 것을 어떻게 수행할지에 대한 아이디어가 있다고 생각합니다. 하지만 귀하의 데이터 중 일부를 공유할 수 있다면 도움이 될 것입니다. 필요하다면 익명으로 처리할 수 있습니다. 전체 데이터 세트일 필요는 없으며, 분석 수행 방법에 영향을 미칠 수 있으므로 데이터가 어떻게 구성되어 있는지 더 잘 이해할 수 있도록 하위 세트만 있으면 됩니다.
DS