6.6 응용 프로그램
1)표 6.1 결과를 제공하의 코호트 연구를 목표로 결정하는 다른 것들 사이의 장점적으로 사용하여 검사 도구,운동 스트레스 테스트(동부 표준시)조치입니다. 이러한 검사에서 관상 동맥 질환(CAD)진단 중에 합격/불합격 결과가 도출 될 수 있습니다.
표 6.1. Screening test for physical stress
CAD | ||||
---|---|---|---|---|
Healthy | Ill | Total | ||
EST | Negative | 327 | 208 | 535 |
Positive | 115 | 815 | 930 | |
Total | 442 | 1 023 | 1 465 |
고 있는 것으로 가정이 없는지 확인 bias:
a)
이를 바탕으로 혼란을 매트릭스,나타내는 다음과 같은 값(95%의 신뢰구간):민감도와 특이성,긍정적이고 부정적인 예측 값입니다.
b)
현재 데이터에 대한 곡선 아래 영역의 값은 무엇입니까?
성 데이터의 테이블 수행할 수 있습으로 표시한 이후,테이블에서 만들어진 명령으로 매트릭스():
><-니다.테이블(행렬(c(815,115,208,327),nrow=2,byrow=TRUE,
dimnames=목록(EST=c(“+”,”−”),
CAD=c(“+”,”-“))))
>탭
주목해야한다는 것 테이블도록 개편에 대응하는 일반적인 표기법으로”긍정적”이벤트에 첫 번째 행(일반적으로의 노출)고 처음 열(일반적으로,질환)입니다.
그런 다음 R 을 사용하여 거의 산술 연산을 사용하여 필요한 모든 양을 계산할 수 있습니다. 그러나 패키지 epiR 에는 2×2 테이블의 역학 질문에 응답하는 데 필요한 모든 도구가 포함되어 있습니다. 따라서,명령 에피.테스트()가 제공하는 보급,감도/특이성 값뿐만 아니라 긍정적이고 부정적인 예측 값:
>라이브러리(epiR)
>epi.tests(tab)
곡선 아래의 면적과 관련하여 외부 명령 인 roc 도 사용할 수 있습니다.에서.테이블(),패키지에 epicalc:
>라이브러리(epicalc)
>roc.에서.테이블(tab,그래프=FALSE)
2)테이블 6.2 요약의 비율 심근 경색에서 관찰 남자는 세 40~59 년 동안 누구를 위해 수준의 혈압 및 속의 콜레스테롤이었 측정,고려의 형태로 정렬됩니다.
표 6.2. 경색 및 혈압
BP | < 200 | 200–209 | 210–219 | 220–244 | 245–259 | 260–284 | > 284 | |||
---|---|---|---|---|---|---|---|---|---|---|
< 117 | 2/53 | 0/21 | 0/15 | 0/20 | 0/14 | 1/22 | 0/11 | |||
117 – 126 | 0/66 | 2/27 | 1/25 | 8/69 | 0/24 | 5/22 | 1/19 | |||
127 – 136 | 2/59 | 0/34 | 2/21 | 2/83 | 0/33 | 2/26 | 4/28 | |||
137 – 146 | 1/65 | 0/19 | 0/26 | 6/81 | 3/23 | 2/34 | 4/23 | |||
147 – 156 | 2/37 | 0/16 | 0/6 | 3/29 | 2/19 | 4/16 | 1/16 | |||
157 – 166 | 1/13 | 0/10 | 0/11 | 1/15 | 0/11 | 2/13 | 4/12 | |||
167 – 186 | 3/21 | 0/5 | 0/11 | 2/27 | 2/5 | 6/16 | 3/14 | |||
> 186 | 1/5 | 0/1 | 3/6 | 1/10 | 1/7 | 1/7 | 1/7 |
The data are available in the file hdis.dat 형식의 테이블과 함께 네 개의 열을 나타내는 각각의 혈압(여덟 가지 범주,정격 1~8)비율의 콜레스테롤(일곱 가지 범주,정격 1to7),수의 심근경색과 개인의 총 수. 회 사이 혈압을 가능성과 고통의 심근경색은 관심 지점
a)
산의 비율 심근경색증의 각 수준에 대한 혈압 및 그들을 대표 테이블에서와 그래픽 형태;
b)
익스프레스의 비율로 계산서(a)에서 로짓 양식;
c)
기반으로 로지스틱 회귀분석 모형이 있는지 여부를 결정한 뜻깊은 협회에서 임계값 α=0.05 사 혈압,취급으로 양적 변수를 고려하여 클래스에 컴퓨터 스테이션이 있으며 초고의 가능성 심장 마비;
d)
익스프레스에서 로짓 단위의 가능성경색증에 의해 예측 모형에 대한 각각의 혈압 레벨;
e)
디스플레이에서 동일한 그래프를 이 실험적인 비율 및 로지스틱 회귀 곡선에 따라 혈압 값(클래스 센터).
데이터 Hdis 가져오기.dat 는 다음과 같이 달성됩니다.
>bp<-읽기.테이블(“hdis.dat”,헤더=TRUE)
>str(bp)
으로 그것을 검증할 수 있습 없이블과 연결된 수준의 변수들의 관심(bpress 혈압,철 콜레스테롤에 대한 평가). 레이블을 생성하고 연결하려면 다음 명령을 삽입할 수 있습니다:
> blab < – c(“<117”,”117-126”,”127-136”,”137-146”,
“147-156”,”157-166”,”167-186”,”>186”)
> clab < – c(“<200”,”200-209”,”210-219”,”220-244”,
“245-259”,”260-284”,”>284”)
> bp$bpress < – factor(bp$bpress, labels = blab)
> bp$chol <-factor(bp$철,라벨=공)
마지막 명령으로 변환이 원래는 변수로는 질적 변수와 동료들을 그들의 양식 상표에 의해 정의된 지절거리며 아침 불. 는지 확인하는 데이터베이스가 이제는 원하는 형태로,다음 명령을 사용:
>str(bp)
>요약(bp)
테이블의 상대적 노출되는 주파수에서 문제가 될 재생:
>라운드(xtabs(hdis/총 bpress+철,데이터=bp),2)
때문에 우리가 우리 사이의 관계에 초점을 혈압과 심근경색만,그것은 필요한 데이터 집계에 콜레스테롤 수치이다. 즉,콜레스테롤 수치에 관계없이 각 혈압 수준의 값을 축적해야합니다. 기회는 또한 이름을 변경하는 수준의 변수 bpress 를 사용하여 센터 클래스의 간격으로.
>blab2<-c(111.5,121.5,131.5,141.5,151.5,161.5,176.5,191.5)
>bp$bpress<-rep(blab2,각=7)
>dfrm<-aggregate(bp,
list(bpress=bp),합계)
그것은 마지막 명령을 집계(),그것을 가능하게 집계 데이터에:그것은 합계는 모든 값(합계)의 변수철에 포함되지 않은 변수 목록을 보존에 대한 분석입니다. 동시에 결과는 dfrm 이라는 새 데이터베이스에 저장됩니다. 이 경우에는 우리가 사용하지 않기 식의 표기는 하지만 그 대안에 대한 구문을 집계()(응답한 변수 목록 다음으로 구성된 하나 이상의 설명변수). 개요 집계된 데이터를 얻을 수 있을 제공하여 머리()등의 입력:
>헤드(dfrm,5)
경우 비율 p 용,그 값은 규모에서 그 단위는 logits 에 의해 주어진 관하여 로그인(p/(1−p)). 이로부터 다음 명령은 logit 단위의 hdis/total 과 같이 계산 된 비율을 변환하기 위해 파생 될 수 있습니다:
><능(x)log(x/(1-x))
>dfrm$prop<-dfrm$hdis/dfrm$총
>dfrm$로짓<-로짓(dfrm$hdis/dfrm$총)
관찰해야 하는 작은 기능에 대해 정의된 값을 변환하는 여기에으로 간주됩 비율에 해당하는 로그(x/(1−x)). 똑같이,하나는 쓸 수 있습니다:
>로그((dfrm$hdis/dfrm$전체)/(1-dfrm$hdis/dfrm$총))
계산한 값을 추가 직접 데이터를 프레임에 이름을 버팀대 및 로짓.
로지스틱 회귀분석 모델에 기록된 다음과 같은 방법으로.
>glm(cbind(hdis,총 hdis)bpress,데이터=dfrm,가족=항)
정립되고 사용 cbind(hdis,총 hdis)bpress 계정으로 사실 우리는 우리가 그룹화된 데이터에 액세스하지 개별적인 응답을 합니다. 명령 glm()옵션과 함께 가족=항에 해당하는 로지스틱 회귀 분석,이는 거치지 않고,많은 세부 사항으로,사용하는 기본적으로 로짓으로 기능식 링크가 있습니다.
회귀계수를 표시함으로써 사용의 개요():
>요약(glm(cbind(hdis,총 hdis)bpress,데이터=dfrm
가족=항))
이전 결과를 포함한 필수적인 정보는 질문에 대답하의 통계적 의미는 사이의 연결의 혈압 및 심한 공격 가능성: 회귀계수(에 로그 확률 스케일)같 0.024 고에서 상당한 일반적인 임계값의 5%(참조하십시오 열 Pr(>|z|)).
가능성 심장 마비의 다른 수준에 따라 혈액의 압력을 고려하여 얻은 다음과 같다:
>glm.res<-glm(cbind(hdis,total-hdis)bpress,data=dfrm,
family=이항)
>predict(glm.res)
R 에 의해 생성 된 중간 결과는 glm 이라는 이름으로 저장되었다는 점에 유의해야한다.명령을 사용하기 전에 res predict(). 예측에 의해 생성되는 표현에서 로짓 형태와 비교 가능하 관찰하고 예측 logits:
>cbind(dfrm,로짓.predit=예측(glm.res))
사실상 모든 요소를 나타내는 데 사용할 수 있는 비율의 심근경색을 관찰 및 예측을 그래픽으로의 수준에 따라 혈압. Logodds 척도가 아닌 비율의 형태로 표현 된 모델의 예측이 누락되었습니다. 그것에 따라서도 바람직하게 그릴 예측 곡선,그 말을하는 것의 가능성 심장 마비에 따라 혈압,제한하지 않고 후자를 관찰된 값 변수에 대한 bpress. 다음은 가능한 솔루션을 따릅니다.
>dfrm$prop.나는 이것이 내가 할 수있는 유일한 방법이라고 생각한다.res,type=”response”)
>f<-function(x)
1/(1+exp(-(coef(glm.res) + coef(glm.res)*x)))
> xyplot(hdis/total ˜ bpress, data = dfrm, aspect = 1.2, cex = .8,
xlab = “Blood pressure”,ylab = “Infarction likelihood”,
panel = function(x, y, …) {
panel.xyplot(x, y, col = “gray30”, pch = 19, …)
panel.curve(f, lty = 3, col = “gray70”)
panel.points(x, dfrm$prop.predit,col=”gray70″,…)
})
3)한 경우 제어 조사를 집중 사이의 관계에 알코올의 소비는 담배와 식도 암은 인간에(“Ille 및 Villaine 연구”). 이 사례 그룹은 1972 년 1 월에서 1974 년 4 월 사이에 진단 된 식도암으로 고통받는 200 명의 환자로 구성되었습니다. 모두 선거인 명단에서 775 명의 통제 남성이 선정되었습니다. 표 6.3 분포를 보여줍의 전체 주제에 따라 자신의 매일 알코올의 소비,고려하는 소비 80g 로 간주됩니다 위험 요소입니다.
표 6.3. 알코올 소비와 식도암
알코올 소비(g/day) | |||
---|---|---|---|
≥80 | < 80 | Total | |
경우 | 96 | 104 | 200 |
제어 | 109 | 666 | 775 |
Total | 205 | 770 | 975 |
a)
는 무엇입 가치의 확률 비율과 95%의 신뢰 간격(울프 method)? 그것은 상대 위험의 좋은 추정인가?
b)
위험에 처한 소비자의 비율은 사례 간 및 대조군간에 동일합니까(α=0.05 를 고려)?
c)
알코올 소비와 개인의 상태 사이의 연관성을 테스트 할 수 있도록 로지스틱 회귀 모델을 구축합니다. 회귀 계수가 중요합니까?
d)
회귀 분석 결과에 따라(b)와 그 신뢰 구간에서 계산 된 관찰 된 확률 비율의 값을 찾습니다.
기 때문(개인)원시 데이터를 사용할 수 없습니다,그것은 필요와 직접 작동 주파수에서 제공하는 테이블이 문제 문:
> alcohol < – matrix(c(666,104,109,96), nr = 2,
dimnames = list(c(“Control”,”Case”),
c(“<> = 80”)))
> alcohol
Regarding the odds ratio, the command oddsratio() from the package vcd will be used:
>라이브러리(vcd)
>oddsratio(알코올,log=FALSE)
옵션 log=FALSE 을 보장하는 결과를 반환에 해당 정확하게 확률 비율과하지 않는 로그의 확률은 비율입니다. 를 얻 asymptotic 신뢰 구간은 다음과 같은 이용 될 것이다:
>confint(oddsratio(알코올,log=FALSE))
마찬가지로 요약(oddsratio(알코올))수을 수행하는 데 사용되는 가설 검정을 로그에 확율 비율(H0:log(θ)=0).
명령 소품.테스트()를 사용할 수 있는 가설을 테스트하는 비율의 사람들과 매일 소비≥80g 고 동일한 사례에서뿐만 아니라 제어,을 나타내는 값에서 관찰 크로스 표에 주어진 문제는 성명:
>prop.테스트(c(96,109),c(200,775),올바른=FALSE)
이 테스트에 해당하는 Z-테스트 간의 차이를 두는 비율에서 추정된 데이터(지 않은 경우 연속성 수정은 사용되는).
과 관련하여 로지스틱 회귀분석 모델에 대비한 테이블에 있으로 변신한 데이터를 테이블에서는 두 질적 변수(질병에 노출)은 표현을 제대로 하는 말과 데이터를 프레임입니다. 이 할 수 있는 명령을 사용하여 용해()패키지에서 reshape2 는 그것이 가능한 데이터를 변환하는 표 형식으로”긴”형식입니다. 이 단계에서,레벨 변수의 질병을 해야하 0(컨트롤)과 1(케이스),지만 이것은 정말 필요하지 않습니다 그리고 레벨 0 으로 간주되어야하는 참조 범주(을 용이하게 결과의 해석):
>라이브러리(reshape2)
>알코올입니다.df<-melt(alcohol)
>이름(alcohol.df)<-c(“질병”,”노출”,”n”)
>수준(알코올.df$질병)<-c(1,0)
>알코올.df$질병<-relevel(알코올.df$disease,”0″)
로지스틱 회귀 모델은 다음과 같은 방식으로 작성됩니다.
>glm.res<-glm(질병 노출,데이터=알코올.df,
패밀리=이항,가중치=n)
>요약(glm.res)
결과의 관심과 관련된 행 박람회>=80 로에 대한 정보를 제공합니다 가치의 회귀계수에 노출에 관련된 변수를 추정하여 R,표준 오류뿐만 아니라 값으로 시험의 통계입니다. 여기서 회귀 계수는 승산비의 로그로 해석됩니다. 참고하는 것을 얻을 정확히 동일한 결과를 교환하여 역할의 변수 이전에 수립,노출되는 질병.
확률 계산 비율 위에서 찾을 수 있습 회귀계수와 관련된 요인의 관심(노출),뿐만 아니라 그것의 95%는 신뢰 구간에서는 다음과 같은 방법으로.
>특급(계수(glm.res))
>exp(confint(glm.res))
두 번째 솔루션으로 구성의 수를 고려하고의 경우와 개인의 총 수:
>alcohol2<-데이터입니다.프레임(엑스포=c(“<>=80”),케=c(104,96),
총=c(104 + 666, 96 + 109))
>요약(glm(cbind(경우에는,총자)박람회 데이터=alcohol2
가족=항))
4)이 데이터에서 연구를 수립하는 전조의 유효성 creatine kinase 농도에서는 몸의 예방에 대한 심근 경색의 발생.
데이터는 파일 sck 에서 사용할 수 있습니다.댓: 첫 번째 열은 가변 크레아틴 키나아제(ck)에 해당하며,두 번째 열은 가변 질환(pres)의 존재와 마지막 열은 가변 질환 부재(abs)에 해당합니다.
a)
총 과목 수는 얼마입니까?
b)
계산하는 상대 아프/건강한 주파수 대표들의 진화에 따라 creatine kinase 값을 사용하여 산점도(점 세그먼트 포인트를 연결하).
c)
기반으로 로지스틱 회귀분석 모형을 목표로 예측 가능성을 얻기의 아픈,값을 계산하는 CK 에서는 이 모델을 예측하는 사람들이 겪는 질병에서 고려하는 임계값의 0.5(는 경우 P(병)≥0.5 다음 아픈=1)입니다.
d)
는 Ck 값에 따른 경험적 비율뿐만 아니라이 모델에 의해 예측 된 병에 걸릴 확률을 그래픽으로 나타냅니다.
e)
해당 ROC 곡선을 설정하고 곡선 아래 영역의 값을보고합니다.
이후 이름의 변수에 없는 데이터 파일,필요한 것을 할당 한 후에 즉시 데이터를 가져온:
><읽을 수 있습니다.테이블(“sck.dat”,헤더=FALSE)
><-c(“ck”,”pres”,”아 bs”)
>요약(스탠다드차타드금융지주)
피험자의 총 수에 해당 합의에 대한 주파수는 두 변수리와 abs,는 것입니다.
>sum(스탠다드차타드금융지주는)
또는 동등하게: 합(sck$pres)+합(sck$abs)(그러나 sck$pres+sck$abs).
이 두 변수의 상대 주파수를 계산하려면 변수 별 총 수량을 알아야합니다. 이 얻을 수 있는 명령을 사용하여 적용 및 운영에 열:
>ni<-적용(스탠다드차타드금융지주,2,합계)
이에 따라,그것은 충분을 나누어 각 값을 변수의 대가 및 abs 의 값이 계산됩니다. 얻은 값은 동일한 데이터 테이블에있는 두 개의 새로운 변수에 저장됩니다.
>sck$pres.prop<-sck$pres/ni
>sck$abs.prop<-스탠다드차타드금융지주$abs/ni
이것이 가능한지 확인하는 계산이 정확:값의 합계를 위해 각 변수해야 합 1:
>적용(스탠다드차타드금융지주,2,합계)
그 비율을 얻는 단순히 표현된 단일 차트 을 고려하면 값의 변수 ck 로 abscissae:
>xyplot(한 서비스를 제공합니다.소품+복근.이것은 내가하는 일이 아닙니다.key=TRUE,ylab=”주”)
지시 type=c(“b”,”g”)의미하는 것은 우리가 원하고 포인트를 표시할 선으로 연결된(“b”=”o”+”l’)뿐만 아니라 그리드(“g”).
그룹화 된 데이터에 대한 회귀 모델은 다음과 같이 작성됩니다.
>glm.res<-glm(cbind(pres,abs)ck,data=sck,family=이항)
>요약(glm.res)
예측,표현의 형태 확률과하지에서 확률,규모에 의해 얻을 수 있습니다 의미 있는 명령의 예측에 의해 지정하는 옵션을 type=”응답을 다음과 같이”
>glm.나는 이것이 내가 할 수있는 유일한 방법이라고 생각한다.res,type=”response”)
>이름(glm.pred)<-스탠다드차타드금융지주$ck
을 고려해서는 확률≥0.5 지정 개인에게는 병,다음과 같은 배포가 따라서 얻어:
>glm.pred
이 모델에 따르면 80 이상의 값 ck 에 대해 사람들이 병으로 간주 될 것이라고 결론 지었다. 이것은 쉽게 확인트는 가능성을 기반으로 예측 값을 변수의 ck 로 표시됩니다.
><-스탠다드차타드금융지주$pres/(스탠다드차타드금융지주$pres+스탠다드차타드금융지주$abs)
>xyplot(glm.pred~스탠다드차타드금융지주$ck,type=”l”
ylab=”Probability”,xlab=”ck”
패널=function(…){
패널이 있습니다.xyplot(…)
패널.xyplot(스탠다드차타드금융지주$ck 스탠다드차타드금융지주$픈,pch=19,col=””회색)
})
첫 번째 단계에서,그것은 필요한을”압축을 해제”그룹화된 데이터와 테이블을 만드는 두 개의 열이 있다:첫 번째 나타내는 변수는 ck 두 번째 나타내는 존재 또는 질병의 부재. 변수 ni 에서 이전에 계산되고 사용 가능한 하위 그룹 별 카운트를 사용합니다.
>sck.확장<-데이터.프레임(ck=c(rep(sck$ck,sck$pres),
rep(sck$ck,sck$abs)),
sick=c(rep(1,ni),rep(0,ni)))
>테이블(sck.나는 이것이 어떻게 작동하는지 잘 모르겠습니다.확장,tapply(아픈,ck,sum))
마지막 두 명령하도록 하는 것 같은 계 발생 및 분포의 아픈 사람들의 가치에 따라 ck 올바른 것입니다. 그것은 또한 확인하는 동일한 결과를 얻을 수 있습니다에 대한 이 로지스틱 회귀분석 및 동시에 예측 값에 이전 테이블 데이터 추가할 수 있습니다(같은 절차로 이전에 수행하고 예측에 복제할 수 있습,그러나 이것은 간단한 이 방법):
>glm.res2<-glm(sick ck,data=sck.확장,패밀리=이항)
>sck.확장$예측<-ifelse(예측(glm.res2,
type=”response”)>=0.5,
1,0)
>with(sck.확장,테이블(아픈,예측))
마지막 명령을 가능하게 표시 혼동 행렬에서는 실제 진단 및 그에 의해 예측 회귀분석 모형이 교차합니다. 정확한 분류가 요금 비교할 수 있을 때 우리가 다를 참조 threshold:
>classif.탭<-with(sck.예를 들어,테이블(sick,prediction))
>sum(diag(classif.탭))/sum(classif.탭)
를 표시 ROC 곡선,우리가 사용하는 패키지으로 나타났습니다.
>라이브러리(으로 나타났습)
>pred<-예측(예측(glm.res2,type=”response”),
sck.expand$sick)
> perf < – performance(pred, “tpr”,”fpr”)
> plot(perf, ylab = “Sensitivity”, xlab = “1-Specificity”)
> grid()
> abline(0, 1, lty = 2)
The value of the area under the curve is obtained as follows:
> performance(pred, “auc”)@”y.values”