교수님 이해하기 좋은 깔끔한 강의 정말 감사합니다. 교수님 강의를 통해 분석하여 논문 작성하는데 큰 도움이 되었습니다. 제가 통계에 완벽한 초심자라 궁금한 부분이있어 여쭤봅니다. 첫번째 질문입니다. 21분부터 설명해주신 다른 예측변수를 고정한 채 원하는 예측변수 값의 변화에 따른 생존확률의 차이를 보는 내용을 토대로 만든 그래프를 figure 에 첨부하려고 합니다. 이 그래프는 카플란 마이어를 통해 그린 overall survival 과 달리 예측변수를 고정하고 만든 생존함수를 시각적으로 비교하는 그래프라 신뢰기간 또는 number at risk table 가 의미가 없는것일까요?? 만약 추가 하려고 하면 통계학적으로 가능한건지 여쭙습니다. 두번째 질문입니다. 21분부터 설명해주신 부분에서 다른 예측변수를 고정할때 어떤 factor 를 고르는것이 맞는것인가요? 예를들어 성별 변수를 고정할때 female, 또는 male 중에 어떤 factor 를 고정값을로 정할지 어떻게 결정하는지, 상관 없는지 여쭙습니다. 정식으로 통계를 공부한게 아니라서 기본적인 질문 일수도 있겠습니다. 시간되실때 답변 주시면 정말 큰 도움이 될것 같습니다. 다시한번 좋은 강의 감사드립니다.
다중공선성은 독립변수 간의 문제이기 때문에 종속변수에 대한 모델 형태는 다중공선성의 추정과 무관합니다. 따라서 일반적인 다중공선성 추청 방법을 사용할 수 있습니다. 하지만 그렇다고 해서 계산 방식이 동일하다는 것은 아닙니다. 독립변수들 간 R-squared를 계산하는 방법은 Cox회귀모델과 선형회귀모델이 다르기 때문에 구체적인 계산 방법은 차이가 있을 수 있습니다.
출력 테이블의 'chisq' 열은 잔차와 시간 간의 독립성검정을 위한 검정통계량입니다. 일반적인 카이제곱검정(independence test, goodness of fit test)에서처럼 "잔차와 시간은 독립이다"가 귀무가설이기 때문에 p-값이 유의수준(예를 들면, 0.05)보다 커야 콕스회귀모델의 비례위험가정을 충족한다고 판단합니다. 참고로 cox.zph() 함수가 업데이트되면서 기존의 'roh' 열은 더 이상 출력 테이블에서 볼 수 없습니다.
Sex와 ecog를 fix하고 시간별 age의 차이를 보고 싶습니다. 이럴 경우 연속변수 age는 어떻게 처리해야 하나요? 범주형 변수처럼 연속형 변수를 Range 별로 확인하여 min부터 max까지의 모든 수를 입력하는게 맞나요? 모든 사람의 age을 모두 입력하여 df.age 데이터셋을 만들어야 하는지요?
사실 콕스회귀분석의 회귀계수가 예측변수와 결과변수 간의 관계를 보여주기 때문에 둘 간의 영향관계는 시각적으로 그래프 상에서 보지 않더라도 회귀계수를 통해 알 수 있습니다. > cox summary(cox) Call: coxph(formula = Surv(time, status) ~ age + sex + ph.ecog, data = lung) n= 227, number of events= 164 (1 observation deleted due to missingness) coef exp(coef) se(coef) z Pr(>|z|) age 0.011067 1.011128 0.009267 1.194 0.232416 sexfemale -0.552612 0.575445 0.167739 -3.294 0.000986 *** ph.ecog 0.463728 1.589991 0.113577 4.083 4.45e-05 *** --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 exp(coef) exp(-coef) lower .95 upper .95 age 1.0111 0.9890 0.9929 1.0297 sexfemale 0.5754 1.7378 0.4142 0.7994 ph.ecog 1.5900 0.6289 1.2727 1.9864 Concordance= 0.637 (se = 0.025 ) Likelihood ratio test= 30.5 on 3 df, p=1e-06 Wald test = 29.93 on 3 df, p=1e-06 Score (logrank) test = 30.5 on 3 df, p=1e-06 콕스회귀분석 결과 가운데 exp(coef) 열은 위험비를 나타냅니다. 성별에 대한 위험비는 0.575로서 기준범주인 남성 대비 여성의 위험률이 57.5%에 불과하다는 의미입니다. 즉 다른 변수들이 일정하다고 가정할 때 여성은 남성에 비해 사망가능성이 42.5%만큼 낮습니다. 일상생활능력에 대한 위험비는 1.590입니다. 다른 변수들이 일정할 때 ECOG 점수가 1점 증가하면 사망위험은 1.59배 증가합니다. 나이의 위험비는 1.011로서 다른 변수들이 일정하다고 가정할 때 나이 한 살 증가는 사망확률을 1.1% 증가시킵니다. 다른 예측변수를 고정한 채 관심 있는 변수를 변화시켜 가면서 생존함수를 시각화한 것은 이러한 회귀계수로부터의 결과를 좀 더 직관적으로 이해하기 쉽도록 하기 위한 것입니다. 연속형 변수의 경우에도 범주형 변수처럼 시각화할 수 있습니다. 다만 예측변수가 연속형 변수인 경우에는 범주형 변수의 경우와 달리 경우의 수가 많기 때문에 그래프를 그려 시각적으로 그 차이를 보는 것이 그다지 효과적이지는 않을 수 있습니다. 나이 변수에 대해서는 다음과 같이 해볼수 있습니다. 고유한 나이가 42개가 있기 때문에 42개 나이별로 생존함수곡선이 그려집니다. > unique(lung$age) [1] 74 68 56 57 60 71 53 61 67 70 63 49 50 58 72 69 73 48 62 65 66 64 59 76 75 40 [27] 51 81 55 42 44 54 80 77 47 82 46 43 39 45 52 41 > length(unique(lung$age)) [1] 42 > age.df age.fit windows(width=12.0, height=12.0) > ggsurvplot(age.fit, conf.int=FALSE, ggtheme=theme_gray(), + legend.labs=sort(unique(lung$age)), legend.title="Age", + xlab="Days", ylab="Survival Probability")
교수님 강의 잘 들었습니다. 한가지 궁굼한 것이 time과 status의 변수 이름은 항상 그렇게 정해야 되는 건가요? 시간과 사건에 대한 해당 변수를 순서대로 넣으면 안되는 건지 궁금합니다. 또 최근 데이터를 보는데요~, 한가지 더 궁금한 것은 time이라는 것이 만약에 당뇨라고 한다면 당뇨유병기간과 당뇨관찰기간이 있었습니다. 이 상황에서는 당뇨관찰기간으로 time을 넣는 것이 맞겠지요? 사실 최근에 liner mixed model에서 time이 있었는데요... 그것은 횟수나 차수와 같은 의미라서... 생존분석 time의 의미와는 조금 다른 것인지 궁금합니다. 질문을 잘 한 것인지 모르겠네요...
1. 변수 이름은 정해진 것은 아니고요, 데이터셋에 있는 이름을 사용하시면 됩니다. 2. 당뇨발생이 관심 있는 이벤트라면 당뇨관찰기간(당뇨가 관측될 때까지의 기간으로 이해)이 맞을 것 같습니다. 3. Linear mixed model에서 한 실험 대상자로부터 반복 측정하여 실험 결과를 얻는 경우를 말씀하신 것이라면 생존분석의 survival time과는 다른 개념입니다.
@@kykwahk 아 교수님 답변 감사합니다.^^ linear mixed model의 경우는 time이 1,2,3,4, 와 같이 되어 있는 경우가 되겠지요? 한가지 더 궁금한 것은 비례위험가정에서 각 변수는 유의미 하지 않게 나왔으나 GLOBAL에서 유의미 하게 나온 경우의 해석은 어떻게 해야 하는지… 이상이 있다고 판단해야 하나요?
앞서는 성별의 구분이 두 개(male, female)이기 때문에 다른 데이터도 두 개만 필요하므로 반복횟수를 2로 한 것이고요, ECOG는 네 수준에서의 값(0, 1, 2, 3)을 비교하는 것이기 때문에 다른 데이터도 그에 맞춰 생성하기 위해 반복횟수를 4로 한 것입니다.
모두 통계적으로 유의미한 변수를 찾는 것이 목적이 아니라면 어떤 변수가 통계적으로 유의하지 않다고 해서 그 변수를 제거하고 다시 모델을 만들 필요는 없습니다. 통계적으로 유의하지 않은 변수 그 자체도 연구로부터 발견한 하나의 결과물(research findings)이기 때문에 나름대로 의미를 가질 수 있습니다. 또한 변수의 통계적 유의성은 항상 불변인 것도 아닙니다. 어떤 변수의 통계적 유의성은 그와 함께 모델에 투입되는 변수에 따라서도 달라집니다.
@@kykwahk 안녕하세요? 생존분석 공부를 시작한 학생입니다. 군더더기 없는 깔끔한 설명과 영상 구성에 감사드립니다! 답글을 보고 궁금한 점이 있어서 문의 드립니다. 어떤 변수가 통계적으로 유의하지 않다는 사실을 발견했다면 연구자가 보통 어떤 조치들을 취하는지 알 수 있을까요? 변수의 유의성으로 모델에서의 제거 여부를 판단하지 않는다면, 애초부터 변수의 유의성을 살펴보지 않아도 되나 싶어서요. 연구자가 종합적인 판단을 하는데 있어 하나의 참고자료 정도로만 보면 될지, 하나의 참고자료라면 얼마나 중요한 비중을 차지하는 근거자료인지가 궁금했습니다.
@Minchang Kim 어떤 변수가 통계적으로 유의적이지 않을 경우 연구자가 할 수 있는 것은 연구목적에 따라 달라집니다. 만약에 해당 변수가 가설을 검정하기 위한 목적으로 사용된다면 해당 가설은 기각됩니다. 이 경우 통계적 유의성 여부는 중요한 역할을 합니다. 연구가설의 채택 여부가 달려 있으니까요. 그런데 만약 연구목적이 종속변수를 예측하는 것이라면 어떤 변수가 통계적으로 유의하지 않더라도 그 변수를 포함한 독립변수들을 이용하여 종속변수를 예측할 수 있습니다. 이 경우 특정 독립변수가 통계적으로 유의하지 않더라도 반드시 제거해야 할 필요는 없습니다. 설사 해당 독립변수가 통계적으로 유의하지 않더라도 종속변수를 예측하는 데는 도움이 될 수 있기 때문입니다.
깔끔하고 좋은 강의 감사합니다
항상 잘 듣고 있습니다. 감사합니다.
교수님 이해하기 좋은 깔끔한 강의 정말 감사합니다. 교수님 강의를 통해 분석하여 논문 작성하는데 큰 도움이 되었습니다.
제가 통계에 완벽한 초심자라 궁금한 부분이있어 여쭤봅니다.
첫번째 질문입니다.
21분부터 설명해주신 다른 예측변수를 고정한 채 원하는 예측변수 값의 변화에 따른 생존확률의 차이를 보는 내용을 토대로 만든 그래프를 figure 에 첨부하려고 합니다.
이 그래프는 카플란 마이어를 통해 그린 overall survival 과 달리 예측변수를 고정하고 만든 생존함수를 시각적으로 비교하는 그래프라 신뢰기간 또는 number at risk table 가 의미가 없는것일까요??
만약 추가 하려고 하면 통계학적으로 가능한건지 여쭙습니다.
두번째 질문입니다.
21분부터 설명해주신 부분에서 다른 예측변수를 고정할때 어떤 factor 를 고르는것이 맞는것인가요? 예를들어 성별 변수를 고정할때 female, 또는 male 중에 어떤 factor 를 고정값을로 정할지 어떻게 결정하는지, 상관 없는지 여쭙습니다.
정식으로 통계를 공부한게 아니라서 기본적인 질문 일수도 있겠습니다. 시간되실때 답변 주시면 정말 큰 도움이 될것 같습니다. 다시한번 좋은 강의 감사드립니다.
1. 네 그렇게 사용하셔도 됩니다. 고정되지 않은 변수에 의한 집단 간 차이를 확인할 수 있습니다.
2. 네 어떤 것을 고정하든 괜찮습니다.
연령은 전기 후기 노인으로 범주형으로 나눠서 해도 되죠? 꼭 연속형 변수를 고수할 필요는 없다고 생각하는데.. 그리고콕스회귀분석은 샘플 사이즈의 제한이 있나요? 예를 들어 관찰하고자 하는 상태의 변수의 수
궁금한 것이 있어서 질문드립니다!
1. 콕스비례위험에서는 독립변수들 사이에 다중공성선은 상관없나요???
2. 중단절단된 데이터의 독립변수에서 년도별로 차이나는 매출액 같은 데이터는 같은 년도로 맞춰주는 작업을 해야하나요??
1. 독립변수 간 심각한 다중공선성은 콕스회귀분석에서도 문제가 될 수 있습니다.
2. 중도절단 데이터는 관측된 기간 동안 분석 대상에게서 '사건'이 일어나지 않을 때 발생합니다. 독립변수는 생존시간 데이터의 중도절단 여부와는 관계없습니다.
@@kykwahk 교수님 죄송합니다. 다시한번 여쭙겠씁니다. ㅜㅜ 다중공선성에 대한 검증 방법은 일반회귀분석 처럼하면 되는 건가요? 아니면 검증하는 이론이 있나요? 답글 감사합니다.^^!!
다중공선성은 독립변수 간의 문제이기 때문에 종속변수에 대한 모델 형태는 다중공선성의 추정과 무관합니다. 따라서 일반적인 다중공선성 추청 방법을 사용할 수 있습니다. 하지만 그렇다고 해서 계산 방식이 동일하다는 것은 아닙니다. 독립변수들 간 R-squared를 계산하는 방법은 Cox회귀모델과 선형회귀모델이 다르기 때문에 구체적인 계산 방법은 차이가 있을 수 있습니다.
@@kykwahk 아하 그렇군요. 감사합니다. 교수님~!!! 동영상 강의 너무감사합니다~~^^!!! 잘보고 있습니다. 행복하세요~!
안녕하세요 좋은 강의 감사합니다. 책으로도 보고 유튭 강의로도 열심히 보고 있습니다.
강의 마지막에서 비례 위험 가정에서 잔차와 시간간의 rho(상관계수)를 구해 유의확률을 확인해 검정을 수행하는데,
chisq은 어떤 값을 의미하는지 알 수 있을까여?
출력 테이블의 'chisq' 열은 잔차와 시간 간의 독립성검정을 위한 검정통계량입니다. 일반적인 카이제곱검정(independence test, goodness of fit test)에서처럼 "잔차와 시간은 독립이다"가 귀무가설이기 때문에 p-값이 유의수준(예를 들면, 0.05)보다 커야 콕스회귀모델의 비례위험가정을 충족한다고 판단합니다. 참고로 cox.zph() 함수가 업데이트되면서 기존의 'roh' 열은 더 이상 출력 테이블에서 볼 수 없습니다.
Sex와 ecog를 fix하고 시간별 age의 차이를 보고 싶습니다. 이럴 경우 연속변수 age는 어떻게 처리해야 하나요? 범주형 변수처럼 연속형 변수를 Range 별로 확인하여 min부터 max까지의 모든 수를 입력하는게 맞나요? 모든 사람의 age을 모두 입력하여 df.age 데이터셋을 만들어야 하는지요?
사실 콕스회귀분석의 회귀계수가 예측변수와 결과변수 간의 관계를 보여주기 때문에 둘 간의 영향관계는 시각적으로 그래프 상에서 보지 않더라도 회귀계수를 통해 알 수 있습니다.
> cox summary(cox)
Call:
coxph(formula = Surv(time, status) ~ age + sex + ph.ecog, data = lung)
n= 227, number of events= 164
(1 observation deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
age 0.011067 1.011128 0.009267 1.194 0.232416
sexfemale -0.552612 0.575445 0.167739 -3.294 0.000986 ***
ph.ecog 0.463728 1.589991 0.113577 4.083 4.45e-05 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
age 1.0111 0.9890 0.9929 1.0297
sexfemale 0.5754 1.7378 0.4142 0.7994
ph.ecog 1.5900 0.6289 1.2727 1.9864
Concordance= 0.637 (se = 0.025 )
Likelihood ratio test= 30.5 on 3 df, p=1e-06
Wald test = 29.93 on 3 df, p=1e-06
Score (logrank) test = 30.5 on 3 df, p=1e-06
콕스회귀분석 결과 가운데 exp(coef) 열은 위험비를 나타냅니다. 성별에 대한 위험비는 0.575로서 기준범주인 남성 대비 여성의 위험률이 57.5%에 불과하다는 의미입니다. 즉 다른 변수들이 일정하다고 가정할 때 여성은 남성에 비해 사망가능성이 42.5%만큼 낮습니다. 일상생활능력에 대한 위험비는 1.590입니다. 다른 변수들이 일정할 때 ECOG 점수가 1점 증가하면 사망위험은 1.59배 증가합니다. 나이의 위험비는 1.011로서 다른 변수들이 일정하다고 가정할 때 나이 한 살 증가는 사망확률을 1.1% 증가시킵니다.
다른 예측변수를 고정한 채 관심 있는 변수를 변화시켜 가면서 생존함수를 시각화한 것은 이러한 회귀계수로부터의 결과를 좀 더 직관적으로 이해하기 쉽도록 하기 위한 것입니다. 연속형 변수의 경우에도 범주형 변수처럼 시각화할 수 있습니다. 다만 예측변수가 연속형 변수인 경우에는 범주형 변수의 경우와 달리 경우의 수가 많기 때문에 그래프를 그려 시각적으로 그 차이를 보는 것이 그다지 효과적이지는 않을 수 있습니다. 나이 변수에 대해서는 다음과 같이 해볼수 있습니다. 고유한 나이가 42개가 있기 때문에 42개 나이별로 생존함수곡선이 그려집니다.
> unique(lung$age)
[1] 74 68 56 57 60 71 53 61 67 70 63 49 50 58 72 69 73 48 62 65 66 64 59 76 75 40
[27] 51 81 55 42 44 54 80 77 47 82 46 43 39 45 52 41
> length(unique(lung$age))
[1] 42
> age.df age.fit windows(width=12.0, height=12.0)
> ggsurvplot(age.fit, conf.int=FALSE, ggtheme=theme_gray(),
+ legend.labs=sort(unique(lung$age)), legend.title="Age",
+ xlab="Days", ylab="Survival Probability")
교수님 강의 잘 들었습니다. 한가지 궁굼한 것이 time과 status의 변수 이름은 항상 그렇게 정해야 되는 건가요? 시간과 사건에 대한 해당 변수를 순서대로 넣으면 안되는 건지 궁금합니다.
또 최근 데이터를 보는데요~, 한가지 더 궁금한 것은 time이라는 것이 만약에 당뇨라고 한다면 당뇨유병기간과 당뇨관찰기간이 있었습니다. 이 상황에서는 당뇨관찰기간으로 time을 넣는 것이 맞겠지요?
사실 최근에 liner mixed model에서 time이 있었는데요... 그것은 횟수나 차수와 같은 의미라서... 생존분석 time의 의미와는 조금 다른 것인지 궁금합니다.
질문을 잘 한 것인지 모르겠네요...
1. 변수 이름은 정해진 것은 아니고요, 데이터셋에 있는 이름을 사용하시면 됩니다.
2. 당뇨발생이 관심 있는 이벤트라면 당뇨관찰기간(당뇨가 관측될 때까지의 기간으로 이해)이 맞을 것 같습니다.
3. Linear mixed model에서 한 실험 대상자로부터 반복 측정하여 실험 결과를 얻는 경우를 말씀하신 것이라면 생존분석의 survival time과는 다른 개념입니다.
@@kykwahk 아 교수님 답변 감사합니다.^^ linear mixed model의 경우는 time이 1,2,3,4, 와 같이 되어 있는 경우가 되겠지요?
한가지 더 궁금한 것은 비례위험가정에서 각 변수는 유의미 하지 않게 나왔으나 GLOBAL에서 유의미 하게 나온 경우의 해석은 어떻게 해야 하는지… 이상이 있다고 판단해야 하나요?
교수님 안녕하세요
28:01 에서 다른 column을 fix하고 돌린 경우 Kaplan meier에 P value가 아무리 해도 안보입니다.
볼수있는 방법이 있을까요?
해당 부분은 다른 예측변수를 고정한 채 생존확률을 추정하여 관심 있는 특정 예측변수 값의 변화에 따른 생존확률의 차이를 탐색하는 내용입니다. 여기서 p-value가 안 보인다는 것이 무슨 뜻인지요...
약간 어렵습니다. 감사합니다.
교수님 27:34에서 rep 함수에서 반복횟수 2를 왜 4로 바꾸셧나요?
앞서는 성별의 구분이 두 개(male, female)이기 때문에 다른 데이터도 두 개만 필요하므로 반복횟수를 2로 한 것이고요, ECOG는 네 수준에서의 값(0, 1, 2, 3)을 비교하는 것이기 때문에 다른 데이터도 그에 맞춰 생성하기 위해 반복횟수를 4로 한 것입니다.
안녕하세요. age 변수가 통계적으로 유의하지 않으면 변수를 빼고 다시 모델을 만들어야할까요?
모두 통계적으로 유의미한 변수를 찾는 것이 목적이 아니라면 어떤 변수가 통계적으로 유의하지 않다고 해서 그 변수를 제거하고 다시 모델을 만들 필요는 없습니다. 통계적으로 유의하지 않은 변수 그 자체도 연구로부터 발견한 하나의 결과물(research findings)이기 때문에 나름대로 의미를 가질 수 있습니다. 또한 변수의 통계적 유의성은 항상 불변인 것도 아닙니다. 어떤 변수의 통계적 유의성은 그와 함께 모델에 투입되는 변수에 따라서도 달라집니다.
@@kykwahk 안녕하세요? 생존분석 공부를 시작한 학생입니다. 군더더기 없는 깔끔한 설명과 영상 구성에 감사드립니다!
답글을 보고 궁금한 점이 있어서 문의 드립니다. 어떤 변수가 통계적으로 유의하지 않다는 사실을 발견했다면 연구자가 보통 어떤 조치들을 취하는지 알 수 있을까요? 변수의 유의성으로 모델에서의 제거 여부를 판단하지 않는다면, 애초부터 변수의 유의성을 살펴보지 않아도 되나 싶어서요. 연구자가 종합적인 판단을 하는데 있어 하나의 참고자료 정도로만 보면 될지, 하나의 참고자료라면 얼마나 중요한 비중을 차지하는 근거자료인지가 궁금했습니다.
@Minchang Kim 어떤 변수가 통계적으로 유의적이지 않을 경우 연구자가 할 수 있는 것은 연구목적에 따라 달라집니다. 만약에 해당 변수가 가설을 검정하기 위한 목적으로 사용된다면 해당 가설은 기각됩니다. 이 경우 통계적 유의성 여부는 중요한 역할을 합니다. 연구가설의 채택 여부가 달려 있으니까요. 그런데 만약 연구목적이 종속변수를 예측하는 것이라면 어떤 변수가 통계적으로 유의하지 않더라도 그 변수를 포함한 독립변수들을 이용하여 종속변수를 예측할 수 있습니다. 이 경우 특정 독립변수가 통계적으로 유의하지 않더라도 반드시 제거해야 할 필요는 없습니다. 설사 해당 독립변수가 통계적으로 유의하지 않더라도 종속변수를 예측하는 데는 도움이 될 수 있기 때문입니다.