diff --git a/19.Rmd b/19.Rmd index 4c49430..4535d7e 100644 --- a/19.Rmd +++ b/19.Rmd @@ -224,6 +224,8 @@ knitr::include_graphics("figures/19-fig-07.png") 약물이 결합하는 결합부위가 여러 개인 경우에 약효(E)는 다음과 같이 나타낼 수 있다. + + +\begin{equation} + [C] + [R] + \xrightleftharpoons[k_{-1}]{k_1} + [CR] + [C] + \xrightleftharpoons[k_{-2}]{k_2} + [C2R] +(\#eq:multiplebinding3) +\end{equation} \begin{equation} \begin{split} diff --git a/docs/basic.pdf b/docs/basic.pdf index bcf703b..fb5cac9 100644 Binary files a/docs/basic.pdf and b/docs/basic.pdf differ diff --git a/docs/basic.tex b/docs/basic.tex index 2829445..d25b86d 100644 --- a/docs/basic.tex +++ b/docs/basic.tex @@ -1,23 +1,26 @@ % Options for packages loaded elsewhere \PassOptionsToPackage{unicode}{hyperref} \PassOptionsToPackage{hyphens}{url} -\PassOptionsToPackage{dvipsnames,svgnames*,x11names*}{xcolor} +\PassOptionsToPackage{dvipsnames,svgnames,x11names}{xcolor} % \documentclass[ 11pt, krantz2, a4paper, twoside]{krantz} -\usepackage{lmodern} +\usepackage{amsmath,amssymb} \usepackage{setspace} -\usepackage{amssymb,amsmath} -\usepackage{ifxetex,ifluatex} -\ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex +\usepackage{iftex} +\ifPDFTeX \usepackage[T1]{fontenc} \usepackage[utf8]{inputenc} \usepackage{textcomp} % provide euro and other symbols \else % if luatex or xetex - \usepackage{unicode-math} + \usepackage{unicode-math} % this also loads fontspec \defaultfontfeatures{Scale=MatchLowercase} \defaultfontfeatures[\rmfamily]{Ligatures=TeX,Scale=1} +\fi +\usepackage{lmodern} +\ifPDFTeX\else + % xetex/luatex font selection \setmainfont[]{NanumMyeongjo} \fi % Use upquote if available, for straight quotes in verbatim environments @@ -37,18 +40,6 @@ \KOMAoptions{parskip=half}} \makeatother \usepackage{xcolor} -\IfFileExists{xurl.sty}{\usepackage{xurl}}{} % add URL line breaks if available -\IfFileExists{bookmark.sty}{\usepackage{bookmark}}{\usepackage{hyperref}} -\hypersetup{ - pdftitle={계량약리학 워크샵 - 초급 과정}, - pdfauthor={Ver. 20200821}, - colorlinks=true, - linkcolor=Maroon, - filecolor=Maroon, - citecolor=Blue, - urlcolor=Blue, - pdfcreator={LaTeX via pandoc}} -\urlstyle{same} % disable monospaced font for URLs \usepackage{color} \usepackage{fancyvrb} \newcommand{\VerbBar}{|} @@ -60,13 +51,13 @@ \newenvironment{Shaded}{\begin{snugshade}}{\end{snugshade}} \newcommand{\AlertTok}[1]{\textcolor[rgb]{0.94,0.16,0.16}{#1}} \newcommand{\AnnotationTok}[1]{\textcolor[rgb]{0.56,0.35,0.01}{\textbf{\textit{#1}}}} -\newcommand{\AttributeTok}[1]{\textcolor[rgb]{0.77,0.63,0.00}{#1}} +\newcommand{\AttributeTok}[1]{\textcolor[rgb]{0.13,0.29,0.53}{#1}} \newcommand{\BaseNTok}[1]{\textcolor[rgb]{0.00,0.00,0.81}{#1}} \newcommand{\BuiltInTok}[1]{#1} \newcommand{\CharTok}[1]{\textcolor[rgb]{0.31,0.60,0.02}{#1}} \newcommand{\CommentTok}[1]{\textcolor[rgb]{0.56,0.35,0.01}{\textit{#1}}} \newcommand{\CommentVarTok}[1]{\textcolor[rgb]{0.56,0.35,0.01}{\textbf{\textit{#1}}}} -\newcommand{\ConstantTok}[1]{\textcolor[rgb]{0.00,0.00,0.00}{#1}} +\newcommand{\ConstantTok}[1]{\textcolor[rgb]{0.56,0.35,0.01}{#1}} \newcommand{\ControlFlowTok}[1]{\textcolor[rgb]{0.13,0.29,0.53}{\textbf{#1}}} \newcommand{\DataTypeTok}[1]{\textcolor[rgb]{0.13,0.29,0.53}{#1}} \newcommand{\DecValTok}[1]{\textcolor[rgb]{0.00,0.00,0.81}{#1}} @@ -74,7 +65,7 @@ \newcommand{\ErrorTok}[1]{\textcolor[rgb]{0.64,0.00,0.00}{\textbf{#1}}} \newcommand{\ExtensionTok}[1]{#1} \newcommand{\FloatTok}[1]{\textcolor[rgb]{0.00,0.00,0.81}{#1}} -\newcommand{\FunctionTok}[1]{\textcolor[rgb]{0.00,0.00,0.00}{#1}} +\newcommand{\FunctionTok}[1]{\textcolor[rgb]{0.13,0.29,0.53}{\textbf{#1}}} \newcommand{\ImportTok}[1]{#1} \newcommand{\InformationTok}[1]{\textcolor[rgb]{0.56,0.35,0.01}{\textbf{\textit{#1}}}} \newcommand{\KeywordTok}[1]{\textcolor[rgb]{0.13,0.29,0.53}{\textbf{#1}}} @@ -83,13 +74,14 @@ \newcommand{\OtherTok}[1]{\textcolor[rgb]{0.56,0.35,0.01}{#1}} \newcommand{\PreprocessorTok}[1]{\textcolor[rgb]{0.56,0.35,0.01}{\textit{#1}}} \newcommand{\RegionMarkerTok}[1]{#1} -\newcommand{\SpecialCharTok}[1]{\textcolor[rgb]{0.00,0.00,0.00}{#1}} +\newcommand{\SpecialCharTok}[1]{\textcolor[rgb]{0.81,0.36,0.00}{\textbf{#1}}} \newcommand{\SpecialStringTok}[1]{\textcolor[rgb]{0.31,0.60,0.02}{#1}} \newcommand{\StringTok}[1]{\textcolor[rgb]{0.31,0.60,0.02}{#1}} \newcommand{\VariableTok}[1]{\textcolor[rgb]{0.00,0.00,0.00}{#1}} \newcommand{\VerbatimStringTok}[1]{\textcolor[rgb]{0.31,0.60,0.02}{#1}} \newcommand{\WarningTok}[1]{\textcolor[rgb]{0.56,0.35,0.01}{\textbf{\textit{#1}}}} -\usepackage{longtable,booktabs} +\usepackage{longtable,booktabs,array} +\usepackage{calc} % for calculating minipage widths % Correct order of tables after \paragraph or \subparagraph \usepackage{etoolbox} \makeatletter @@ -115,6 +107,39 @@ \providecommand{\tightlist}{% \setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}} \setcounter{secnumdepth}{5} +% definitions for citeproc citations +\NewDocumentCommand\citeproctext{}{} +\NewDocumentCommand\citeproc{mm}{% + \begingroup\def\citeproctext{#2}\cite{#1}\endgroup} +\makeatletter + % allow citations to break across lines + \let\@cite@ofmt\@firstofone + % avoid brackets around text for \cite: + \def\@biblabel#1{} + \def\@cite#1#2{{#1\if@tempswa , #2\fi}} +\makeatother +\newlength{\cslhangindent} +\setlength{\cslhangindent}{1.5em} +\newlength{\csllabelwidth} +\setlength{\csllabelwidth}{3em} +\newenvironment{CSLReferences}[2] % #1 hanging-indent, #2 entry-spacing + {\begin{list}{}{% + \setlength{\itemindent}{0pt} + \setlength{\leftmargin}{0pt} + \setlength{\parsep}{0pt} + % turn on hanging indent if param 1 is 1 + \ifodd #1 + \setlength{\leftmargin}{\cslhangindent} + \setlength{\itemindent}{-1\cslhangindent} + \fi + % set entry spacing + \setlength{\itemsep}{#2\baselineskip}}} + {\end{list}} +\usepackage{calc} +\newcommand{\CSLBlock}[1]{\hfill\break\parbox[t]{\linewidth}{\strut\ignorespaces#1\strut}} +\newcommand{\CSLLeftMargin}[1]{\parbox[t]{\csllabelwidth}{\strut#1\strut}} +\newcommand{\CSLRightInline}[1]{\parbox[t]{\linewidth - \csllabelwidth}{\strut#1\strut}} +\newcommand{\CSLIndent}[1]{\hspace{\cslhangindent}#1} %\usepackage{tikz-cd} % \xleftrightarrow %\usepackage{amsmath} %\documentclass[b5paper,9pt]{extarticle} @@ -126,7 +151,23 @@ % %axes,cross,pdftex,center %]{crop} -%sungpil defined above +\usepackage{graphicx} +%\usepackage{polyglossia} +%\usepackage{ctex} +%\usepackage{fontspec} +%\usepackage{xetexko} +\setmainfont{NanumMyeongjo} +%\setmainfont{Noto Serif CJK KR} +%\setmainhangulfont{Noto Serif CJK KR} +%\setmainhangulfont{NanumMyeongjo} +%\setmainhanjafont{Noto Serif CJK KR}[Language=Chinese Simplified] +%\setmainhanjafont{Noto Serif CJK KR} +\usepackage{kotex} +%\setmonohangulfont{NanumGothicCoding} +\usepackage[version=4]{mhchem} +%\usepackage{mhchem} + +%sungpil defined above -------------------------- \usepackage{booktabs} \usepackage{longtable} @@ -165,6 +206,7 @@ \renewcommand{\floatpagefraction}{0.75} \renewenvironment{quote}{\begin{VF}}{\end{VF}} +\usepackage{hyperref} \let\oldhref\href \renewcommand{\href}[2]{#2\footnote{\url{#1}}} @@ -276,19 +318,25 @@ \usepackage[normalem]{ulem} \usepackage{makecell} \usepackage{xcolor} -\ifluatex +\ifLuaTeX \usepackage{selnolig} % disable illegal ligatures \fi -\newlength{\cslhangindent} -\setlength{\cslhangindent}{1.5em} -\newenvironment{cslreferences}% - {\setlength{\parindent}{0pt}% - \everypar{\setlength{\hangindent}{\cslhangindent}}\ignorespaces}% - {\par} +\IfFileExists{bookmark.sty}{\usepackage{bookmark}}{\usepackage{hyperref}} +\IfFileExists{xurl.sty}{\usepackage{xurl}}{} % add URL line breaks if available +\urlstyle{same} +\hypersetup{ + pdftitle={계량약리학 워크샵 - 초급 과정}, + pdfauthor={Ver. 20231123}, + colorlinks=true, + linkcolor={Maroon}, + filecolor={Maroon}, + citecolor={Blue}, + urlcolor={Blue}, + pdfcreator={LaTeX via pandoc}} \title{계량약리학 워크샵 - 초급 과정} -\author{Ver. 20200821} -\date{Ver. 20200821} +\author{Ver. 20231123} +\date{Ver. 20231123} \usepackage{amsthm} \newtheorem{theorem}{Theorem}[chapter] @@ -302,6 +350,8 @@ \newtheorem{example}{코드}[chapter] \theoremstyle{definition} \newtheorem{exercise}{Exercise}[chapter] +\theoremstyle{definition} +\newtheorem{hypothesis}{Hypothesis}[chapter] \theoremstyle{remark} \newtheorem*{remark}{Remark} \newtheorem*{solution}{Solution} @@ -338,9 +388,8 @@ \setcounter{tocdepth}{2} \tableofcontents } -\setstretch{1.30} -\hypertarget{uxba38uxb9acuxb9d0}{% -\chapter*{머리말}\label{uxba38uxb9acuxb9d0}} +\setstretch{1.3} +\chapter*{머리말}\label{uxba38uxb9acuxb9d0} \normalsize @@ -359,19 +408,16 @@ \chapter*{머리말}\label{uxba38uxb9acuxb9d0}} \mainmatter -\hypertarget{part-uxbaa8uxb378-uxad6cuxcd95uxc758-uxae30uxcd08}{% -\part{모델 구축의 기초}\label{part-uxbaa8uxb378-uxad6cuxcd95uxc758-uxae30uxcd08}} +\part{모델 구축의 기초}\label{part-uxbaa8uxb378-uxad6cuxcd95uxc758-uxae30uxcd08} -\hypertarget{intro}{% -\chapter{계량약리학과 관련 개념들}\label{intro}} +\chapter{계량약리학과 관련 개념들}\label{intro} \Large\hfill 임동석 \normalsize -\hypertarget{uxc18cuxac1c}{% -\section{소개}\label{uxc18cuxac1c}} +\section{소개}\label{uxc18cuxac1c} 이 교재는 약동-약력학 모델링을 위해 가장 널리 사용하는 NONMEM 소프트웨어를 활용하기 위해 알아야 하는 기본개념들과 그 사용법을 소개하기 위하여 만들어졌다. NONMEM을 배워 쓰고자 하는 이유는 자신이 가진 약동학(pharmacokinetic, PK)이나 약력학(pharmacodynamics, PD) 데이터를 모델링하기 위해서이다. 이 분야에 익숙지 않은 독자라면 PK/PD 모델링, 계량약리학(pharmacometrics), 생리학에 근거한 약동학(physiologically-based pharmacokinetics, PBPK), 시스템 약리학 등 유사한 용어들의 개념부터 정리해 볼 필요가 있다. @@ -385,16 +431,16 @@ \section{소개}\label{uxc18cuxac1c}} } -\caption{PK-PD 모델링의 개념 (Derendorf and Meibohm \protect\hyperlink{ref-derendorf1999modeling}{1999})}\label{fig:pkpd-modeling-concept} +\caption{PK-PD 모델링의 개념 (\citeproc{ref-derendorf1999modeling}{Derendorf and Meibohm 1999})}\label{fig:pkpd-modeling-concept} \end{figure} 그림 \ref{fig:pkpd-modeling-concept}은 PK-PD 모델링의 개념을 가장 잘 보여주는 그림이다. 약을 개발하는 초기단계부터 개발자가 알고 싶어하는 것은 신약 몇 mg을 얼마의 간격으로 주면 가장 적절한 효과를 얻을 수 있을까, 얼마까지 안전할까 하는 질문들일 것이다. 이에 답하기 위해서는 환자에서 임상시험을 통해 그림 \ref{fig:pkpd-modeling-concept}의 맨 아래 패널과 같은 곡선을 구하면 되겠지만, 환자에서 약효를 투약간격 동안 이렇게 여러 번 실시간으로 측정하는 것은 거의 불가능하다. 대신 쉽게 얻을 수 있는, 시간에 따른 사람에서의 PK 변화(위 왼쪽)와 시험관내 연구 등을 통해 얻어진 약물농도와 PD(약효 대신 추정할 수 있는 각종 생체표지자들)의 관계를 정량적 모델로 파악하면 환자에서 직접 관찰하지 못할지라도 아래쪽 패널과 같이 용량용법(dosage regimen)에 따른 약효나 부작용의 추이의 곡선을 예측할 수 있고, 이를 비임상, 임상시험의 설계나 시판용량 결정 등에 적용할 수 있게 된다. 그리고 그림 \ref{fig:pkpd-modeling-concept}의 위 두 패널의 곡선들끼리의 관계를 수학적 모델로 만들어 아래쪽 패널의 곡선을 예측하기 위한 일체의 연구를 하는 연구활동을 포괄적으로 PK/PD 모델링이라고 부른다. -그런데 실제상황에서 어떤 약의 임상시험이나 시판을 위한 용량용법을 결정하고자 할 때, 환자들에서의 PK와 PD와의 관계는 그림 \ref{fig:pkpd-modeling-concept}에서처럼 매끈한 하나의 곡선끼리의 조합으로 정의할 수는 없게 된다. 단 한 사람의 환자라면 이것이 가능할지 모르나 다수의 환자 데이터에 대해 적용하기 위해서는 전체 환자들을 대표하는 곡선들과 그 신뢰구간들을 포함하는 좀 더 복잡한 모델을 만들어야 될 것이다(그림 \ref{fig:pkpd-population-concept}). 이런 모델을 이용해서 약효나 부작용을 예측한다면 단순히 `얼마를 주면 효과가 있다' 보다는, 이를테면 `특정 환자집단에게 이 약을 매일 100 mg씩 주면 환자들의 90\%는 최대약효의 80\% 이상을 나타내고, 95\%는 70\% 이상을 나타내고, 또 그 중 10\%는 grade 1의 부작용을 경험할 것이다.'와 같은 좀 더 정교하게 예측하는 방식이 될 것이다. PK/PD 모델링 중에서도 이렇게 인구 집단을 대상으로 하여 통계학적 기법을 적극적으로 쓰는 연구방식을 population PK/PD 모델링 (집단 약동/약력학 모델링)이라고 구분하여 부른다. 집단약동/약력 모델링은 혼합효과 모델링(mixed-effects modeling)이라는 방법론을 쓰고 있으며 이 방법을 적용하여 모델을 만들고 파라미터들을 찾아내는 소프트웨어가 몇 종이 있는데, 전세계적으로 가장 일찍 개발되어 널리 쓰이는 것이 NONMEM이다. +그런데 실제상황에서 어떤 약의 임상시험이나 시판을 위한 용량용법을 결정하고자 할 때, 환자들에서의 PK와 PD와의 관계는 그림 \ref{fig:pkpd-modeling-concept}에서처럼 매끈한 하나의 곡선끼리의 조합으로 정의할 수는 없게 된다. 단 한 사람의 환자라면 이것이 가능할지 모르나 다수의 환자 데이터에 대해 적용하기 위해서는 전체 환자들을 대표하는 곡선들과 그 신뢰구간들을 포함하는 좀 더 복잡한 모델을 만들어야 될 것이다(그림 \ref{fig:pkpd-population-concept}). 이런 모델을 이용해서 약효나 부작용을 예측한다면 단순히 `얼마를 주면 효과가 있다' 보다는, 이를테면 '특정 환자집단에게 이 약을 매일 100 mg씩 주면 환자들의 90\%는 최대약효의 80\% 이상을 나타내고, 95\%는 70\% 이상을 나타내고, 또 그 중 10\%는 grade 1의 부작용을 경험할 것이다.'와 같은 좀 더 정교하게 예측하는 방식이 될 것이다. PK/PD 모델링 중에서도 이렇게 인구 집단을 대상으로 하여 통계학적 기법을 적극적으로 쓰는 연구방식을 population PK/PD 모델링 (집단 약동/약력학 모델링)이라고 구분하여 부른다. 집단약동/약력 모델링은 혼합효과 모델링(mixed-effects modeling)이라는 방법론을 쓰고 있으며 이 방법을 적용하여 모델을 만들고 파라미터들을 찾아내는 소프트웨어가 몇 종이 있는데, 전세계적으로 가장 일찍 개발되어 널리 쓰이는 것이 NONMEM이다. \begin{figure} -{\centering \includegraphics[width=1\linewidth]{figures/01-fig-02} +{\centering \includegraphics[width=1\linewidth]{figures/01-fig-02-redraw} } @@ -415,16 +461,14 @@ \section{소개}\label{uxc18cuxac1c}} } -\caption{PK-PD 모델링의 각종 개념들의 연관성 (Helmlinger et al. \protect\hyperlink{ref-helmlinger2017drug}{2017})}\label{fig:diverse-concepts} +\caption{PK-PD 모델링의 각종 개념들의 연관성 (\citeproc{ref-helmlinger2017drug}{Helmlinger et al. 2017})}\label{fig:diverse-concepts} \end{figure} -\hypertarget{uxd63cuxd569uxd6a8uxacfc-uxbaa8uxb378uxb9c1-mixed-effects-modeling}{% -\section{혼합효과 모델링 Mixed-effects modeling}\label{uxd63cuxd569uxd6a8uxacfc-uxbaa8uxb378uxb9c1-mixed-effects-modeling}} +\section{혼합효과 모델링 Mixed-effects modeling}\label{uxd63cuxd569uxd6a8uxacfc-uxbaa8uxb378uxb9c1-mixed-effects-modeling} 집단약동학 모델링을 배우기 위해 알아야 하는 가장 기본적인 개념이 혼합효과의 개념이다. 그리고 이 개념을 쉽게 설명한 교재가 드물므로 학습자 스스로가 많은 노력과 시간을 쏟아야 한다. 설명을 위해 그림 \ref{fig:three-ways}를 보자. -\hypertarget{uxc9d1uxb2e8uxc758-uxb370uxc774uxd130uxb97c-uxcc98uxb9acuxd558uxb294-uxc138uxac00uxc9c0-uxbc29uxbc95}{% -\subsection{집단의 데이터를 처리하는 세가지 방법}\label{uxc9d1uxb2e8uxc758-uxb370uxc774uxd130uxb97c-uxcc98uxb9acuxd558uxb294-uxc138uxac00uxc9c0-uxbc29uxbc95}} +\subsection{집단의 데이터를 처리하는 세가지 방법}\label{uxc9d1uxb2e8uxc758-uxb370uxc774uxd130uxb97c-uxcc98uxb9acuxd558uxb294-uxc138uxac00uxc9c0-uxbc29uxbc95} \begin{figure} @@ -439,30 +483,25 @@ \subsection{집단의 데이터를 처리하는 세가지 방법}\label{uxc9d1ux 그림 \ref{fig:three-ways}의 A를 보면 환자별로 다른 색으로 표시된 혈장약물농도와 약효의 관찰값들이 나타나 있다. 이 데이터를 처리하는 방법은 아래와 같이 세가지가 있다. -\hypertarget{naive-pooled-method}{% -\subsubsection{Naive pooled method}\label{naive-pooled-method}} +\subsubsection{Naive pooled method}\label{naive-pooled-method} 가장 단순한 방법으로 그림 \ref{fig:three-ways}의 B)와 같이 각 관찰값들이 어떤 사람으로부터 온 것인지에 무관하게 모두 뭉뚱그려서 약물농도와 효과와의 관계를 본 것이다. 위 사례의 경우 그 관계는 선형적인 것으로 나타나는데, 가장 간단하고 편해 보이는 분석방법이지만 실제 각 환자에서의 농도-효과 관계 (포화되는 곡선 형태)를 왜곡하는 결과를 나타내므로 권장되지 않는 방법이다. -\hypertarget{two-stage-method}{% -\subsubsection{Two-stage method}\label{two-stage-method}} +\subsubsection{Two-stage method}\label{two-stage-method} 이 방법은 그림 그림 \ref{fig:three-ways}의 C)와 같이 각 환자 별 농도-효과 관계의 형태를 나타내는 파라미터 값 (E\textsubscript{max}, EC\textsubscript{50}등)을 구하고 여러 환자에서 얻은 값들의 평균과 표준편차를 구하여 전체 환자들에서의 농도-효과 관계를 구하는 것이다. Naive pooled method 에 비해 훨씬 나은 집단 데이터 처리 방법이겠지만 한가지 문제는 환자 한 사람마다 파라미터 값을 구할 수 있을 정도로 충분히 많은 수의 관찰값이 얻어져야 한다는 점이고, 이렇게 충분한 관찰값을 얻을 수 있는 연구는 소수의 대상자를 모집하여 수행하는 초기 임상시험을 제외하고는 드물다는 것이다. -\hypertarget{mixed-effects-method}{% -\subsubsection{Mixed-effects method}\label{mixed-effects-method}} +\subsubsection{Mixed-effects method}\label{mixed-effects-method} 소수의 대상자를 모집하여 모든 환자 개개인에서 충분한 수의 약동/약력 데이터를 확보할 수 있는 경우는 드물다. 다수의 환자를 대상으로 수행하는 임상연구에서 얻을 수 있는 데이터의 가장 흔한 양상은, 비록 그 중 일부 환자에서는 충분한 데이터를 얻는다 해도, 나머지 대부분의 환자들에서는 일인당 몇 개 이하의 데이터밖에 없어서 two-stage 방법으로는 처리할 수 없는 상황이다. -그러나 naive pooled 방법은 용량-농도-약효 등의 관계의 왜곡된 해석의 위험 때문에 이를 쓰는 것도 바람직하지 않다. 이처럼 환자 집단에서 얻어진 약동/약력학 데이터를 처리할 때, 환자 개개인의 파라미터를 자신 있게 구할 수 있을 만큼 충분한 자료를 얻지 못하였다 해도 시도할 수 있는 방법이 혼합효과(mixed-effects) 방법이다. 그림 \ref{fig:three-ways}의 D)에 그 개념을 표현하고 있다. 환자에서 얻어진 관찰값들은 인구집단 전체의 평균값 (굵은 실선)에서 각 사람마다의 개인간 차(η: 그리스 문자의 `에타'의 소문자, 알파벳 n이 아님)로 인해 환자마다 제각기 하나의 실선으로 예측값의 개인별 양상을 나타낸다. 그러나 동일한 환자에서도 매번 관찰 시마다 자신의 예측값인 실선 위에 정확히 겹쳐지기 보다는 조금씩 떨어져 있게 되는데 그 원인에는 여러 가지가 섞여 있지만, 일단 개인간의 차이로는 설명이 안되는 차이이므로 잔차(잔류오차, residual error)로 표현하며 그리스 문자 `엡실런'의 소문자인 ε를 써서 나타낸다. 패널 D)에서는 붉은색 실선으로 한 환자의 예를 들어 η 와 ε을 나타내었지만, 사실은 각 환자마다 집단의 평균치와 떨어져 있는 정도가 다르므로 η는 환자 한 사람마다 제각기 다른 값을 가질 것이고, 반면에 잔차인 ε은 매 관찰값마다 다를 것이다.\index{잔차 / residual error}\index{residual error / 잔차} +그러나 naive pooled 방법은 용량-농도-약효 등의 관계의 왜곡된 해석의 위험 때문에 이를 쓰는 것도 바람직하지 않다. 이처럼 환자 집단에서 얻어진 약동/약력학 데이터를 처리할 때, 환자 개개인의 파라미터를 자신 있게 구할 수 있을 만큼 충분한 자료를 얻지 못하였다 해도 시도할 수 있는 방법이 혼합효과(mixed-effects) 방법이다. 그림 \ref{fig:three-ways}의 D)에 그 개념을 표현하고 있다. 환자에서 얻어진 관찰값들은 인구집단 전체의 평균값 (굵은 실선)에서 각 사람마다의 개인간 차(η: 그리스 문자의 '에타'의 소문자, 알파벳 n이 아님)로 인해 환자마다 제각기 하나의 실선으로 예측값의 개인별 양상을 나타낸다. 그러나 동일한 환자에서도 매번 관찰 시마다 자신의 예측값인 실선 위에 정확히 겹쳐지기 보다는 조금씩 떨어져 있게 되는데 그 원인에는 여러 가지가 섞여 있지만, 일단 개인간의 차이로는 설명이 안되는 차이이므로 잔차(잔류오차, residual error)로 표현하며 그리스 문자 '엡실런'의 소문자인 ε를 써서 나타낸다. 패널 D)에서는 붉은색 실선으로 한 환자의 예를 들어 η 와 ε을 나타내었지만, 사실은 각 환자마다 집단의 평균치와 떨어져 있는 정도가 다르므로 η는 환자 한 사람마다 제각기 다른 값을 가질 것이고, 반면에 잔차인 ε은 매 관찰값마다 다를 것이다.\index{잔차 / residual error}\index{residual error / 잔차} 주어진 집단에서의 데이터들을 가장 잘 설명할 수 있는 모델 (예컨데 E\textsubscript{max} 모델을 쓸지 선형모델을 쓸지)을 찾아내고, 그 모델에 대한 집단의 파라미터의 평균값과 개인간 차, 잔차의 분산의 조합들을 적절한 알고리즘을 써서 평가하여 가장 그럴듯한 값들을 구하는 것이 혼합효과 모델링이다.\index{잔차 / residual error}\index{residual error / 잔차} -\hypertarget{uxd63cuxd569uxd6a8uxacfc-uxbaa8uxb378uxb9c1uxc758-uxac1cuxb150}{% -\subsection{혼합효과 모델링의 개념}\label{uxd63cuxd569uxd6a8uxacfc-uxbaa8uxb378uxb9c1uxc758-uxac1cuxb150}} +\subsection{혼합효과 모델링의 개념}\label{uxd63cuxd569uxd6a8uxacfc-uxbaa8uxb378uxb9c1uxc758-uxac1cuxb150} -\hypertarget{uxccb4uxc911-uxce21uxc815uxc758-uxc0acuxb840uxb97c-uxd1b5uxd55c-uxc124uxba85}{% -\subsubsection{체중 측정의 사례를 통한 설명}\label{uxccb4uxc911-uxce21uxc815uxc758-uxc0acuxb840uxb97c-uxd1b5uxd55c-uxc124uxba85}} +\subsubsection{체중 측정의 사례를 통한 설명}\label{uxccb4uxc911-uxce21uxc815uxc758-uxc0acuxb840uxb97c-uxd1b5uxd55c-uxc124uxba85} 그림 \ref{fig:three-ways}에서 설명한 혼합효과 모델링의 간략한 개념을 좀 더 쉽게 설명할 수 있는 사례를 Fisher와 Shafer의 NONMEM 워크샵 교재에서 인용하여 설명하고자 한다. @@ -489,8 +528,7 @@ \subsubsection{체중 측정의 사례를 통한 설명}\label{uxccb4uxc911-uxce \caption{측정된 체중의 분포}\label{fig:measured-weight} \end{figure} -\hypertarget{uxc57duxb3d9uxd559-uxc790uxb8ccuxb85c-uxbcf8-uxd63cuxd569uxd6a8uxacfc-uxbaa8uxb378uxb9c1uxc758-uxac1cuxb150}{% -\subsubsection{약동학 자료로 본 혼합효과 모델링의 개념}\label{uxc57duxb3d9uxd559-uxc790uxb8ccuxb85c-uxbcf8-uxd63cuxd569uxd6a8uxacfc-uxbaa8uxb378uxb9c1uxc758-uxac1cuxb150}} +\subsubsection{약동학 자료로 본 혼합효과 모델링의 개념}\label{uxc57duxb3d9uxd559-uxc790uxb8ccuxb85c-uxbcf8-uxd63cuxd569uxd6a8uxacfc-uxbaa8uxb378uxb9c1uxc758-uxac1cuxb150} @@ -500,13 +538,12 @@ \subsubsection{약동학 자료로 본 혼합효과 모델링의 개념}\label{u } -\caption{혼합효과 모델링의 개념도. NONMEM 매뉴얼(Beal \protect\hyperlink{ref-nonmem}{2018})의 그림에 수식을 추가한 것}\label{fig:nonmem-figure} +\caption{혼합효과 모델링의 개념도. NONMEM 매뉴얼(\citeproc{ref-nonmem}{Beal 2018})의 그림에 수식을 추가한 것}\label{fig:nonmem-figure} \end{figure} 1차식을 따라 주로 신장으로 배설되는 약물의 경우, 사람에서 측정된 혈장 약물농도를 혼합효과 모델로 분석하는 개념이 아래 그림 \ref{fig:nonmem-figure}에 잘 나타나 있다. 앞서 저울의 예는 따로 파라미터라고 할 것이 없지만 어떤 시점에서의 약물 농도를 결정하는 것은 약의 용량, 투여 후 경과시간, 그리고 사람의 몸이 약을 다루는 두 개의 파라미터들인 분포용적(Vd)과 청소율(CL)이다. 그림 \ref{fig:measured-weight}의 사례에서 쓰인 약물은 CL의 경우 GFR과 같은 공변량의 함수로(그림 \ref{fig:nonmem-figure}에서는 선형적으로 비례) 예측할 수 있으나, 실제 어떤 환자 i에서의 CL은 그의 GFR로 예측한 값보다 더 컸고 이는 그 환자에서의 CL의 개인간차(η\textsubscript{CLi})가 양의 값을 가진 것으로 설명한다(그림 \ref{fig:nonmem-figure}의 왼쪽부분). Vd 역시 그의 체중이라는 공변량으로 예측하지만 그의 실제 Vd와는 η\textsubscript{Vdi} 만큼의 차이가 있다. 그림의 오른쪽 아래를 보면 환자 i와 똑 같은 GFR과 체중을 가지는 모든 환자들에서 혈장약물농도 곡선이 위쪽 곡선과 같다고 예측될 것이다. 그런데 실제 환자 i의 CL과 Vd는 그러한 예측과는 조금씩 달랐으므로 개인간차를 반영한 그의 CL과 Vd(CL\textsubscript{i}과 Vd\textsubscript{i})로 예측한 농도가 아래쪽 곡선이다. 그것으로 모든 것이 끝날 것 같지만, 환자 i에서 t\textsubscript{ij}라는 특정 시간에 측정된 실제 농도(흰 네모)는 개인별 파라미터로 예측한 농도 (검은 동그라미)와 또 차이가 난다. 그 차이의 원인은 가정한 1차식(선형약동학)을 따라 제거된다는 PK모델 자체가 실제 이 약의 농도변화를 정확히 반영하지 못해서(model error)일 수도 있고, 농도측정 방법의 정확도/정밀도의 문제일 수도 있으며, PK를 관찰한 기간 동안에 개일리듬에 의해 환자의 파라미터가 바뀌어서일 수도 있는 등 다양하다. 원인을 한가지로 특정할 수 없지만, 까만 원과 흰 네모 사이의 거리는 파라미터의 개인간차로 설명이 안되는 부분이라서 잔차(ε)라고 하며, 실제 모든 사람에서 각 측정치마다 따라다니는 값이므로 각기 다른 사람임을 나타내는 i와 측정횟수를 의미하는 j를 아래첨자로 함께 붙여서 εij로 표기하게 된다. 마찬가지로 Vd 나 CL의 개인간차는 한 사람에서 하나만 존재하므로 \(\eta_{Vdi}\), \(\eta_{CLi}\)와 같이 표기한다.\index{잔차 / residual error}\index{residual error / 잔차} -\hypertarget{nonmem-dataset}{% -\chapter{NONMEM 데이터셋}\label{nonmem-dataset}} +\chapter{NONMEM 데이터셋}\label{nonmem-dataset} \Large\hfill @@ -517,18 +554,15 @@ \chapter{NONMEM 데이터셋}\label{nonmem-dataset}} NONMEM을 사용할 때 필수적으로 갖추어야 하는 파일이 몇 가지 있다. 그 중에 가장 우선적으로 만들어야 하는 파일은 데이터셋 또는 데이터 파일이다. 이 단원에서는 제어구문 파일에서 데이터셋을 어떻게 불러들여오는지에 대한 필수 제어구문 작성 방법, 데이터셋 작성 방법, 그리고 각각의 구성 요소들 (항목 또는 데이터 항목)에 대해 설명하고자 한다. -\hypertarget{uxd544uxc218-uxc81cuxc5b4uxad6cuxbb38-uxc791uxc131-uxbc29uxbc95}{% -\section{필수 제어구문 작성 방법}\label{uxd544uxc218-uxc81cuxc5b4uxad6cuxbb38-uxc791uxc131-uxbc29uxbc95}} +\section{필수 제어구문 작성 방법}\label{uxd544uxc218-uxc81cuxc5b4uxad6cuxbb38-uxc791uxc131-uxbc29uxbc95} 제어구문 파일의 작성시 모델링을 위한 본격적인 제어구문 작성에 앞서, 기본적으로 파일의 제목과 사용할 데이터셋, 그리고 데이터셋의 구성 내용을 설명해주는 제어구문이 필요하다. 이는 각각 \$PROB, \$DATA, \$INPUT 레코드에 작성하며, 이는 제어구문 파일의 맨 앞 세 줄로 각각 한 줄씩 기입한다. (코드 \ref{exm:input})\index{\$DATA}\index{\$INPUT} -\hypertarget{prob-uxb808uxcf54uxb4dc-uxc791uxc131}{% -\subsection{\$PROB 레코드 작성}\label{prob-uxb808uxcf54uxb4dc-uxc791uxc131}} +\subsection{\$PROB 레코드 작성}\label{prob-uxb808uxcf54uxb4dc-uxc791uxc131} 제어구문 파일 첫 줄의 필수 제어구문은 \$PROBLEM 으로 사용자가 전체 파일에 대한 제목 또는 서술적 명칭을 붙이는 공간이다. 모델을 점점 더 복잡하게 만드는 과정에서 제어구문 파일마다 \$PROBLEM 레코드에 새로운 목적 또는 모델에 대한 설명을 남겨놓는 것이 모델링 과정을 정리함에 있어 도움이 된다.\index{\$PROBLEM} -\hypertarget{data-uxb808uxcf54uxb4dc-uxc791uxc131}{% -\subsection{\$DATA 레코드 작성}\label{data-uxb808uxcf54uxb4dc-uxc791uxc131}} +\subsection{\$DATA 레코드 작성}\label{data-uxb808uxcf54uxb4dc-uxc791uxc131} \index{\$DATA} @@ -551,29 +585,27 @@ \subsection{\$DATA 레코드 작성}\label{data-uxb808uxcf54uxb4dc-uxc791uxc131} \end{tabular} \end{table} -\hypertarget{input-uxb808uxcf54uxb4dc-uxc791uxc131}{% -\subsection{\$INPUT 레코드 작성}\label{input-uxb808uxcf54uxb4dc-uxc791uxc131}} +\subsection{\$INPUT 레코드 작성}\label{input-uxb808uxcf54uxb4dc-uxc791uxc131} \index{\$INPUT} \$INPUT 레코드에는 데이터셋에 기재된 데이터 항목의 종류와 순서를 명시한다. 이를 우리가 작성한 데이터셋을 NONMEM 이 올바르게 읽도록 도와준다. 데이터셋에 모델링에 필요하지 않은 데이터 항목이 있을 경우, 변수 뒤에 \texttt{=DROP} 이라는 한정어를 써주어 해당 항목을 제거할 수 있다. \$DATA 레코드에서 ``IGNORE'' 또는 ``ACCEPT'' 구문을 사용하여 데이터를 제거 또는 선택하는 과정은 \$INPUT 에서 \texttt{=DROP}을 사용하여 불필요한 항목을 제거하는 과정보다 먼저 실행된다. 데이터셋 작성 시 기존 NONMEM에 내장된 데이터 항목 레이블 이외의 다른 이름을 사용할 경우, ``내장된 변수명=새 이름'' (예를 들어, AMT=DOSE) 구문을 사용하여 내장된 레이블 명(예를 들어, AMT)을 사용자가 지정한 이름(예를 들어, DOSE)으로 대체할 수 있다.\index{\$DATA}\index{\$INPUT}\index{ACCEPT}\index{AMT}\index{DROP}\index{IGNORE} \index{\$INPUT}\index{AMT}\index{ID}\index{MDV}\index{TIME}\index{\$DATA}\index{IGNORE} -\begin{example} -\protect\hypertarget{exm:input}{}{\label{exm:input} }\$PROB, \$DATA, \$INPUT 제어구문 작성의 예\index{\$DATA}\index{\$INPUT} -\end{example} +::: \{.example \#input\} +\$PROB, \$DATA, \$INPUT 제어구문 작성의 예\index{\$DATA}\index{\$INPUT} +::: \vspace{-5ex} \begin{Shaded} \begin{Highlighting}[] \DataTypeTok{$PROB}\NormalTok{ HO\_IV\_1comp} -\DataTypeTok{$DATA}\NormalTok{ ..}\KeywordTok{/}\OtherTok{HOdata\_IV.csv IGNORE=@} +\DataTypeTok{$DATA}\NormalTok{ ..}\OtherTok{/HOdata\_IV.csv IGNORE=@} \DataTypeTok{$INPUT}\OtherTok{ ID TIME AMT DV MDV SEX AGE WT HT} \end{Highlighting} \end{Shaded} -\hypertarget{predppuxc5d0-uxc4f0uxb294-uxb370uxc774uxd130uxc14b}{% -\section{PREDPP에 쓰는 데이터셋}\label{predppuxc5d0-uxc4f0uxb294-uxb370uxc774uxd130uxc14b}} +\section{PREDPP에 쓰는 데이터셋}\label{predppuxc5d0-uxc4f0uxb294-uxb370uxc774uxd130uxc14b} \index{PRED}\index{PREDPP} @@ -592,8 +624,7 @@ \section{PREDPP에 쓰는 데이터셋}\label{predppuxc5d0-uxc4f0uxb294-uxb370ux \caption{Comparison between dataset for PRED and PREDPP}\label{fig:pred-predpp} \end{figure} -\hypertarget{uxb370uxc774uxd130uxc14b-uxc18cuxac1c}{% -\section{데이터셋 소개}\label{uxb370uxc774uxd130uxc14b-uxc18cuxac1c}} +\section{데이터셋 소개}\label{uxb370uxc774uxd130uxc14b-uxc18cuxac1c} 데이터셋은 다양한 프로그램으로 만들 수 있다. 대게 excel을 사용하여 CSV 파일로 만들며, 복잡하거나 양이 많은 데이터의 경우 R과 같은 소프트웨어를 사용하여 데이터를 정리하여 데이터셋을 생성할 수 있다. 데이터셋은 여러가지 변수로 구성된다. 데이터셋 변수(Variables of the dataset)는 다른 말로 데이터 항목(Data item) 이라고도 부른다. 이 중, 집단모델링을 위해 데이터셋에 필수적으로 포함되어야 하는 변수가 존재한다. 예를 들어 PREDPP를 이용할 때 ID, DV, TIME, AMT는 데이터셋에 필수적으로 갖추어야하는 변수들이다.\index{집단모델 / population model}\index{dependent variable(DV) / 종속변수(DV)}\index{population model / 집단모델}\index{AMT}\index{ID}\index{PRED}\index{PREDPP}\index{TIME} @@ -608,8 +639,7 @@ \section{데이터셋 소개}\label{uxb370uxc774uxd130uxc14b-uxc18cuxac1c}} \caption{Basic example of dataset for NONMEM}\label{fig:NONMEM-dataset} \end{figure} -\hypertarget{uxb370uxc774uxd130uxc14b-uxbc30uxc5f4}{% -\section{데이터셋 배열}\label{uxb370uxc774uxd130uxc14b-uxbc30uxc5f4}} +\section{데이터셋 배열}\label{uxb370uxc774uxd130uxc14b-uxbc30uxc5f4} 데이터 레코드는 두 종류로 나뉜다. 하나는 투여한 용량 정보를 나타내는 투약 레코드(Dosing record)이며, 다른 하나는 시간에 따른 약동학 또는 약력학 데이터로 관측 레코드(Observation record) 라고 부른다. 각 대상자별 데이터 레코드 기입 시, 투약 레코드와 관측 레코드를 시간에 따라 순차적으로 입력한다. NONMEM 은 데이터셋을 정렬하는 기능이 없으므로, 일정한 순서(ID 별, TIME 별 순차적으로) 로 정리하여 기입하는 것이 중요하다. 만약, 데이터셋 작성시 시간에 따라 순차적으로 기입을 하지 않는다면, NONMEM에서 모델링 수행 시 에러가 나게 된다.\index{ID}\index{TIME} @@ -630,8 +660,7 @@ \section{데이터셋 배열}\label{uxb370uxc774uxd130uxc14b-uxbc30uxc5f4}} 각각의 데이터 항목에 대해 아래 설명되어 있다. 데이터 항목은 NONMEM이 인식하는 이미 지정 된 이름으로 설정하여 작성한다. 이와 같은 변수의 이름은 사용자와 NONMEM이 이미 약속하여 사용하는 것이며, 데이터셋에 새 변수를 추가하고자 할 때 이미 지정된 이름은 사용하지 않는 것을 추천한다. -\hypertarget{uxc9c0uxc815uxb41c-uxb370uxc774uxd130-uxd56duxbaa9-uxb808uxc774uxbe14-reserved-labels}{% -\section{지정된 데이터 항목 레이블 Reserved Labels}\label{uxc9c0uxc815uxb41c-uxb370uxc774uxd130-uxd56duxbaa9-uxb808uxc774uxbe14-reserved-labels}} +\section{지정된 데이터 항목 레이블 Reserved Labels}\label{uxc9c0uxc815uxb41c-uxb370uxc774uxd130-uxd56duxbaa9-uxb808uxc774uxbe14-reserved-labels} NONMEM 에서는 이미 약속하여 쓰는 데이터 항목의 이름들이 있다. (표 \ref{tab:reserveditems}) 대상자 인식 번호, 관측값, 관측값의 존재 유/무, 시간, 용량, 투여속도, 추가 투여 횟수, 투여 간격, 항정 상태 도달 유/무, 구획을 각각 ID, DV, MDV, TIME, AMT, RATE, ADDL, II, SS, CMT 로 명시하여 쓰게 된다.\index{dependent variable(DV) / 종속변수(DV)}\index{ADDL}\index{AMT}\index{CMT}\index{ID}\index{MDV}\index{RATE}\index{SS}\index{TIME} @@ -658,8 +687,7 @@ \section{지정된 데이터 항목 레이블 Reserved Labels}\label{uxc9c0uxc81 \end{tabular} \end{table} -\hypertarget{id}{% -\subsection{ID}\label{id}} +\subsection{ID}\label{id} \index{ID} @@ -676,13 +704,11 @@ \subsection{ID}\label{id}} \caption{Example of dataset with noncontinuous ID arrangement (NOT appropriate)}\label{fig:id-dataset} \end{figure} -\hypertarget{dv}{% -\subsection{DV}\label{dv}} +\subsection{DV}\label{dv} DV는 Dependent Variable을 뜻하며 데이터셋 구성 시 필수적인 변수이다. DV는 관측값을 기입하는 데이터 항목으로, PK 또는 PD 관측값을 기입한다. PK 모델링시 DV는 우리가 임상시험에서 얻은 원 데이터(raw data)의 약물 농도 값이며, PD 모델링시 DV는 효력 파라미터의 관측값을 나타낸다. 데이터셋에 구획(CMT) 이라는 변수를 추가하여 PK 와 PD 관측값에 구획을 지정할 수 있다. 이를 통해 동일 데이터셋에 PK와 PD 데이터를 함께 나타낼 수 있다. 하나의 데이터 레코드는 하나의 관측값을 가진다. 용량 정보를 나타내는 투약 레코드에서 DV 값은 존재하지 않으며 빈칸 또는 ``.'' 으로 처리한다. 관측 레코드에서는 DV 값이 존재하는 경우 관측값을 기재하고, 관측값이 존재하지 않을 경우 빈칸 또는 ``.''으로 처리한다.\index{dependent variable(DV) / 종속변수(DV)}\index{CMT} -\hypertarget{mdv}{% -\subsection{MDV}\label{mdv}} +\subsection{MDV}\label{mdv} \index{MDV} @@ -690,15 +716,13 @@ \subsection{MDV}\label{mdv}} PREDPP 사용시 MDV는 데이터셋에서 필수적으로 필요한 변수는 아니며, MDV가 없이 데이터셋이 작성되어 모델링이 수행되었을 경우, NONMEM 에서는 MDV 값을 자체적으로 생성하여 부여한다.\index{MDV}\index{PRED}\index{PREDPP} -\hypertarget{evid}{% -\subsection{EVID}\label{evid}} +\subsection{EVID}\label{evid} \index{EVID}\index{ID} EVID는 EVent Identification Data를 뜻하며 데이터 레코드의 유형에 대해 설명해 주는 변수이다. 데이터셋에 꼭 들어가야 하는 변수는 아니다. 데이터셋 내에 EVID 변수를 포함시키지 않았을 경우, 모델링 수행 시 NONMEM은 이를 자동으로 생성하여 부여한다. 이는 실행결과(output) 파일에서 확인이 가능하다. EVID 변수는 인위적으로 농도가 재설정되는 경우에 쓸 수 있다. 예를 들어, 교차 시험에서 두 기간(period) 간의 농도가 중첩되지 않는 경우 사용할 수 있다. EVID 관련해서는 NONMEM Users Guide - Part V의 EVID Data Item 섹션에 자세히 설명되어 있다.\index{EVID}\index{ID} -\hypertarget{time}{% -\subsection{TIME}\label{time}} +\subsection{TIME}\label{time} \index{TIME} @@ -720,8 +744,9 @@ \subsection{TIME}\label{time}} \end{figure} \begin{example} -\protect\hypertarget{exm:date-dataset-chunk}{}{\label{exm:date-dataset-chunk} }DATE label and its format\index{DATE} +\protect\hypertarget{exm:date-dataset-chunk}{}\label{exm:date-dataset-chunk}DATE label and its format\index{DATE} \end{example} + \vspace{-5ex} \begin{Shaded} @@ -735,8 +760,7 @@ \subsection{TIME}\label{time}} \index{DATE}\index{DAT1}\index{DAT2}\index{DAT3} -\hypertarget{amt}{% -\subsection{AMT}\label{amt}} +\subsection{AMT}\label{amt} \index{AMT} @@ -748,8 +772,7 @@ \subsection{AMT}\label{amt}} AMT 작성 시, 투여 용량의 단위와 관측된 약물 농도의 단위를 통일시켜야 한다. 이는 크게 두가지 방법으로 가능하다. 첫번째로, 데이터셋 안에서 AMT와 DV의 단위를 통일시키는 방법이 있다. 예를 들어, 투여 용량 단위가 mg이고, 약물 농도 단위가 ng/mL 인 경우, 투여 용량에 1000을 곱하여 데이터셋 AMT에 바로 기재할 수 있다. 두번째 방법은 제어구문 파일 작성 시 scaling factor 를 사용하여 수식을 기입하여 단위를 통일하는 방법이다. 예를 들어, 투여 용량 단위가 mg이고, 약물 농도 단위가 ng/mL 인 경우, 제어구문 파일에 \texttt{S=V/1000}을 기입하여 사용할 수 있다.\index{scaling parameter / 척도 파라미터}\index{scaling parameter / 척도 파라미터}\index{AMT} -\hypertarget{rate}{% -\subsection{RATE}\label{rate}} +\subsection{RATE}\label{rate} \index{RATE} @@ -770,8 +793,7 @@ \subsection{RATE}\label{rate}} 예를 들어, 시간에 따라 직선적으로 빠르게 증가하는 약물의 농도가 관측될 경우, 이는 0차 흡수를 보인다고 설명될 수 있으며 이를 설명하기 위해 데이터셋 상의 RATE를 -2로 기입하여, 투여 지속시간을 추정하는 경우가 많다.\index{RATE} -\hypertarget{addl-ii}{% -\subsection{ADDL \& II}\label{addl-ii}} +\subsection{ADDL \& II}\label{addl-ii} \index{ADDL} @@ -790,8 +812,7 @@ \subsection{ADDL \& II}\label{addl-ii}} \caption{Example of Dosing record in dataset - using TIME, AMT vs. using TIME, AMT, ADDL, II}\label{fig:dosing-dataset} \end{figure} -\hypertarget{ss}{% -\subsection{SS}\label{ss}} +\subsection{SS}\label{ss} \index{SS} @@ -805,32 +826,29 @@ \subsection{SS}\label{ss}} \toprule TIME & AMT & RATE & ADDL & ss & II & Description\\ \midrule -8 & 10 & · & 3 & 3 & 8 & Non steady state, 10mg bolus at 8hr, 3 additional dose every 8hr\\ -8 & 10 & 10 & 3 & 3 & 8 & Non steady state, 10mg infusion for 1hr at 8hr, 3 additional dose every 8hr\\ -64 & 10 & · & 3 & 3 & 8 & Steady state, 10mg bolus at 64hr, 3 additional dose every 8hr\\ -64 & 10 & 10 & 3 & 3 & 8 & Steady state, 10mg infusion for 1hr at 64hr 3 additional dose every 8hr\\ +8 & 10 & · & 3 & 0 & 8 & Non steady state, 10mg bolus at 8hr, 3 additional dose every 8hr\\ +8 & 10 & 10 & 3 & 0 & 8 & Non steady state, 10mg infusion for 1hr at 8hr, 3 additional dose every 8hr\\ +64 & 10 & · & 3 & 1 & 8 & Steady state, 10mg bolus at 64hr, 3 additional dose every 8hr\\ +64 & 10 & 10 & 3 & 1 & 8 & Steady state, 10mg infusion for 1hr at 64hr 3 additional dose every 8hr\\ \bottomrule \end{tabular} \end{table} -\hypertarget{cmt}{% -\subsection{CMT}\label{cmt}} +\subsection{CMT}\label{cmt} \index{CMT} CMT(compartment)는 구획을 지정해 주는 데이터 항목이며, 필수적인 항목은 아니다. 정맥 주입 후 투약과 관측이 기본 구획에서 일어나는 경우 CMT 데이터 항목은 필요하지 않다. 하지만, 예를 들어 PK 데이터와 PD 데이터를 함께 데이터셋에 입력하고자 한다면 데이터셋에 CMT 데이터 항목을 추가하여 PK 데이터 관측 구획과 PD 데이터 관측 구획을 따로 지정하여 구분시킬 수 있다.\index{CMT} -\hypertarget{covariates}{% -\subsection{Covariates}\label{covariates}} +\subsection{Covariates}\label{covariates} Covariates는 공변량이며 PK 또는 PD 파라미터에 영향을 주는 영향 인자라고 생각할 수 있다. NONMEM은 공변량에 대한 정보가 없으며, 이는 사용자가 공변량 분석(Covariate analysis) 과정을 통해 선정한다. 예를 들어 성별, 나이, 인종, 몸무게, BMI 또는 실험결과값 등을 공변량으로 선정할 수 있으며, 이 정보를 데이터셋에 포함시킬 수 있다. 데이터셋 내의 공변량 정보도 다른 데이터 레코드와 마찬가지로 숫자로 적어주어야 한다. 따라서, 예컨데 남자는 0, 여자는 1과 같이 기입한다. \begin{center}\rule{0.5\linewidth}{0.5pt}\end{center} -2장은 다음 문헌을 전반적으로 참고하여 작성되었다. (Owen \protect\hyperlink{ref-kelly}{2014}; Beal \protect\hyperlink{ref-nonmem}{2018}) +2장은 다음 문헌을 전반적으로 참고하여 작성되었다. (\citeproc{ref-kelly}{Owen 2014}; \citeproc{ref-nonmem}{Beal 2018}) -\hypertarget{control-stream}{% -\chapter{NONMEM 모델 종류 별 제어구문 소개}\label{control-stream}} +\chapter{NONMEM 모델 종류 별 제어구문 소개}\label{control-stream} \Large\hfill @@ -841,8 +859,7 @@ \chapter{NONMEM 모델 종류 별 제어구문 소개}\label{control-stream}} 이 장에서는 NONMEM을 구동하기 위한 주요 요소들에 대하여 설명하고, 모델의 종류와 그에 따른 NM-TRAN 제어구문에 대하여 소개한다. NONMEM 시스템은 크게 NM-TRAN (NonMem TRANslator), PREDPP (PREDiction of Population Pharmacokinetic models), NONMEM (NONlinear Mixed Effect Models)의 3가지의 요소로 이루어져 있다. PREDPP는 집단약동학 모델링을 통한 특정 파라미터 추정을 위한 서브루틴이며, FORTRAN 서브루틴으로 구성되어 있다. NM-TRAN은 데이터셋과 적절한 FORTRAN을 차례로 호출하여 특정 모델을 실행시켜, 제어구문에 명시된 방법으로 다양한 결과를 출력할 수 있도록 해준다. NONMEM은 파라미터 추정을 위해 사용되는 비선형 혼합효과 모델을 일컫는다. NONMEM 실행을 위해서는 사용자가 직접 작성한 NM-TRAN 제어구문과 문법과 형식에 맞추어 작성된 데이터셋 파일이 필요하다.\index{NM-TRAN 제어구문 / NM-TRAN control stream}\index{NM-TRAN control stream / NM-TRAN 제어구문}\index{NM-TRAN control stream / NM-TRAN 제어구문}\index{FO}\index{NM-TRAN}\index{PRED}\index{PREDPP} -\hypertarget{uxc81cuxc5b4uxad6cuxbb38uxc758-uxad6cuxc131}{% -\section{제어구문의 구성}\label{uxc81cuxc5b4uxad6cuxbb38uxc758-uxad6cuxc131}} +\section{제어구문의 구성}\label{uxc81cuxc5b4uxad6cuxbb38uxc758-uxad6cuxc131} NM-TRAN 제어구문(이하 제어구문)은 내장된 레코드와 일련의 코드 블록으로 이루어져 있다. 블록의 첫 시작은 \texttt{\$}기호를 사용하여 사용할 레코드를 명시하고, 그와 관련된 코드를 나열하면 된다. 레코드의 명칭은 최소 세글자 이상이면 사용할 수 있다. 예를 들어, \$PROBLEM은 \$PROB, \$PRO로 줄여서 사용할 수 있다. 또한, NONMEM 7.2 이전 버전에서는 제어구문의 모든 부분을 대문자로 작성해야만 했으나, 7.2 이상 버전에서는 대문자와 소문자를 혼용하여 작성이 가능하다. 제어구문 내에서 세미콜론을 사용하여, 부연 설명을 작성할 수 있다. 세미콜론을 사용한 행은 텍스트로 간주되어, 모델 실행시 NM-TRAN이 읽어들이지 않는다.\index{NM-TRAN 제어구문 / NM-TRAN control stream}\index{NM-TRAN control stream / NM-TRAN 제어구문}\index{NM-TRAN control stream / NM-TRAN 제어구문}\index{\$PROBLEM}\index{NM-TRAN} @@ -859,8 +876,7 @@ \section{제어구문의 구성}\label{uxc81cuxc5b4uxad6cuxbb38uxc758-uxad6cuxc1 -\hypertarget{predppuxc640-pred}{% -\section{PREDPP와 PRED}\label{predppuxc640-pred}} +\section{PREDPP와 PRED}\label{predppuxc640-pred} \index{PRED}\index{PREDPP} @@ -868,19 +884,19 @@ \section{PREDPP와 PRED}\label{predppuxc640-pred}} PRED는 NONMEM 내에 구축되어 있는 모델이나 시간 또는 구획에 대한 약속된 처리 구문이 정해져 있지 않기 때문에, 모델의 유연성(flexibility)이 높으며, 사용자가 원하는 식을 이용하여 원하는 파라미터의 값을 추정할 수 있다. PREDPP는 PRED for population pharmacokinetics의 줄임말로 집단 약동학 분석을 위한 PRED 서브루틴으로 NONMEM에 내장되어 있다. PREDPP를 사용하여 모델 파라미터를 추정할 경우 \$SUBROUTINE과 사용하고자 하는 ADVAN과 TRANS(사용하는 ADVAN에 따라 필수적으로 사용하거나 사용하지 않을 수 있다)를 결정하여야 하며, 사용하고자 하는 ADVAN에 따라 \$MODEL, \$PK, \$ERROR의 레코드를 함께 사용하여야 한다. 반면, PRED 서브루틴을 사용하는 경우에는 \$PRED를 이용하여 모델을 정의할 수 있다. 자세한 내용은 다음 장에서부터 차례로 다루기로 한다.\index{\$ERROR}\index{\$MODEL}\index{\$PK}\index{\$PRED}\index{\$SUBROUTINE}\index{PRED}\index{PREDPP}\index{TRANS} -\hypertarget{control-record}{% -\section{제어구문에 쓰이는 레코드}\label{control-record}} +\section{제어구문에 쓰이는 레코드}\label{control-record} 코드 \ref{exm:one-comp}은 1구획 약동학 모델 분석을 위한 제어구문의 예이다. 위의 제어구문은 각 레코드의 정의와 사용 규칙을 이해하는데 도움이 될 것이다. \begin{example} -\protect\hypertarget{exm:one-comp}{}{\label{exm:one-comp} }1구획 약동학 모델의 제어구문 +\protect\hypertarget{exm:one-comp}{}\label{exm:one-comp}1구획 약동학 모델의 제어구문 \end{example} + \vspace{-5ex} \begin{Shaded} \begin{Highlighting}[] -\DataTypeTok{$PROB} \DecValTok{1}\NormalTok{{-}compartment model} +\DataTypeTok{$PROB} \DecValTok{1}\OtherTok{{-}c}\NormalTok{ompartment model} \DataTypeTok{$INPUT}\NormalTok{ ID TIME AMT RATE DUR DV MDV WT AGE SEX HT RF ALB CLCR} \DataTypeTok{$DATA}\NormalTok{ test.csv IGNORE=@} \DataTypeTok{$SUBR}\NormalTok{ ADVAN1 TRANS2} @@ -890,10 +906,10 @@ \section{제어구문에 쓰이는 레코드}\label{control-record}} \NormalTok{ S1 = V} \DataTypeTok{$ERROR} \NormalTok{ IPRED = F} -\NormalTok{ W = SQRT(THETA(}\DecValTok{3}\NormalTok{)**}\DecValTok{2}\NormalTok{ + THETA(}\DecValTok{4}\NormalTok{)**}\DecValTok{2} \KeywordTok{*}\NormalTok{ IPRED**}\DecValTok{2}\NormalTok{)} +\NormalTok{ W = SQRT(THETA(}\DecValTok{3}\NormalTok{)**}\DecValTok{2}\NormalTok{ + THETA(}\DecValTok{4}\NormalTok{)**}\DecValTok{2} \OtherTok{*}\NormalTok{ IPRED**}\DecValTok{2}\NormalTok{)} \NormalTok{ IRES = DV {-} IPRED} \NormalTok{ IWRES = IRES / W} -\NormalTok{ Y = IPRED + W }\KeywordTok{*}\NormalTok{ EPS(}\DecValTok{1}\NormalTok{)} +\NormalTok{ Y = IPRED + W }\OtherTok{*}\NormalTok{ EPS(}\DecValTok{1}\NormalTok{)} \DataTypeTok{$THETA} \NormalTok{ (}\DecValTok{0}\NormalTok{, }\DecValTok{400}\NormalTok{)} \NormalTok{ (}\DecValTok{0}\NormalTok{, }\DecValTok{100}\NormalTok{)} @@ -918,8 +934,7 @@ \section{제어구문에 쓰이는 레코드}\label{control-record}} \index{conditional weighted residuals / 조건부 가중 잔차} -\hypertarget{problem-data-input}{% -\subsection{\$PROBLEM, \$DATA, \$INPUT}\label{problem-data-input}} +\subsection{\$PROBLEM, \$DATA, \$INPUT}\label{problem-data-input} \index{\$DATA}\index{\$INPUT}\index{\$PROBLEM} @@ -962,15 +977,13 @@ \subsection{\$PROBLEM, \$DATA, \$INPUT}\label{problem-data-input}} \$INPUT은 데이터셋의 변수를 순서대로 명시하여 데이터 파일을 읽어들이도록 한다. 변수 목록은 50개를 넘을 수 없으며, 특정 변수는 NONMEM에서 지정한 변수명을 사용하여야 한다. 대표적인 변수명들은 ID, TIME, AMT, DV, MDV, ADDL, II, RATE, CMT, SS 등이 있다. \texttt{=DROP}구문을 사용하여 NONMEM 분석에 사용되지 않을 변수를 제외시킬 수 있으며, 지정된 변수명으로 작성되어 있지 않은 변수는 지정변수명=사용변수명으로 사용할 수 있다. 예를 들어, 혈중약물농도값을 데이터셋에서 CON으로 변수명을 지정하였다면, \$INPUT에서 변수명을 \texttt{CON=DV} 또는 DV로\index{dependent variable(DV) / 종속변수(DV)}\index{\$INPUT}\index{ADDL}\index{AMT}\index{CMT}\index{DROP}\index{ID}\index{MDV}\index{RATE}\index{SS}\index{TIME} 작성하여야 한다. -\hypertarget{subroutine-model-pk-des}{% -\subsection{\$SUBROUTINE, \$MODEL, \$PK, \$DES}\label{subroutine-model-pk-des}} +\subsection{\$SUBROUTINE, \$MODEL, \$PK, \$DES}\label{subroutine-model-pk-des} \index{\$DES}\index{\$MODEL}\index{\$PK}\index{\$SUBROUTINE} \$SUBROUTINE은 PREDPP에 내장되어 있는 ADVAN 루틴을 선택하여 원하는 모델과 파라미터를 추정할 수 있게 한다. ADVAN 서브루틴은 특수 ADVAN과 일반 ADVAN으로 구성되어 있으며, ADVAN의 선택에 따라 \$MODEL, \$DES를 사용해야 하거나 그렇지 않을 수 있다.\index{특수 ADVAN / specific ADVANs}\index{specific ADVANs / 특수 ADVAN}\index{specific ADVANs / 특수 ADVAN}\index{\$DES}\index{\$MODEL}\index{\$SUBROUTINE}\index{PRED}\index{PREDPP} -\hypertarget{uxd2b9uxc218-advan}{% -\subsubsection{특수 ADVAN}\label{uxd2b9uxc218-advan}} +\subsubsection{특수 ADVAN}\label{uxd2b9uxc218-advan} \index{특수 ADVAN / specific ADVANs}\index{specific ADVANs / 특수 ADVAN}\index{specific ADVANs / 특수 ADVAN} @@ -1035,8 +1048,9 @@ \subsubsection{특수 ADVAN}\label{uxd2b9uxc218-advan}} 특수 ADVAN과 그에 따른 TRAN를 선택을 통해 이미 분석하고자 하는 모델과 파라미터를 결정하였기 때문에, \$MODEL과 \$DES 레코드는 사용하지 않으며, \$PK를 통해 각 파라미터의 대표값과 개인간 변이, 그리고 각 파라미터와 관계있는 공변량을 정의한다. \$PK는 코드 \ref{exm:two-comp-pk}과 같이 작성한다.\index{개인간 변이 / between-subject variability, initerindividual variability(IIV)}\index{between-subject variability, initerindividual variability(IIV) / 개인간 변이}\index{특수 ADVAN / specific ADVANs}\index{specific ADVANs / 특수 ADVAN}\index{specific ADVANs / 특수 ADVAN}\index{\$DES}\index{\$MODEL}\index{\$PK} \begin{example} -\protect\hypertarget{exm:two-comp-pk}{}{\label{exm:two-comp-pk} }2구획 경구 약동학 모델의 \$PK 레코드 +\protect\hypertarget{exm:two-comp-pk}{}\label{exm:two-comp-pk}2구획 경구 약동학 모델의 \$PK 레코드 \end{example} + \vspace{-5ex} \begin{Shaded} @@ -1044,11 +1058,11 @@ \subsubsection{특수 ADVAN}\label{uxd2b9uxc218-advan}} \DataTypeTok{$SUBROUTINE}\NormalTok{ ADVAN4 TRANS4} \DataTypeTok{$PK} -\NormalTok{ CL = THETA(}\DecValTok{1}\NormalTok{) }\KeywordTok{*}\NormalTok{ EXP(ETA(}\DecValTok{1}\NormalTok{))} -\NormalTok{ V2 = THETA(}\DecValTok{2}\NormalTok{) }\KeywordTok{*}\NormalTok{ EXP(ETA(}\DecValTok{2}\NormalTok{))} -\NormalTok{ V3 = THETA(}\DecValTok{3}\NormalTok{) }\KeywordTok{*}\NormalTok{ EXP(ETA(}\DecValTok{3}\NormalTok{))} -\NormalTok{ Q = THETA(}\DecValTok{4}\NormalTok{) }\KeywordTok{*}\NormalTok{ EXP(ETA(}\DecValTok{4}\NormalTok{))} -\NormalTok{ KA = THETA(}\DecValTok{5}\NormalTok{) }\KeywordTok{*}\NormalTok{ EXP(ETA(}\DecValTok{5}\NormalTok{))} +\NormalTok{ CL = THETA(}\DecValTok{1}\NormalTok{) }\OtherTok{*}\NormalTok{ EXP(ETA(}\DecValTok{1}\NormalTok{))} +\NormalTok{ V2 = THETA(}\DecValTok{2}\NormalTok{) }\OtherTok{*}\NormalTok{ EXP(ETA(}\DecValTok{2}\NormalTok{))} +\NormalTok{ V3 = THETA(}\DecValTok{3}\NormalTok{) }\OtherTok{*}\NormalTok{ EXP(ETA(}\DecValTok{3}\NormalTok{))} +\NormalTok{ Q = THETA(}\DecValTok{4}\NormalTok{) }\OtherTok{*}\NormalTok{ EXP(ETA(}\DecValTok{4}\NormalTok{))} +\NormalTok{ KA = THETA(}\DecValTok{5}\NormalTok{) }\OtherTok{*}\NormalTok{ EXP(ETA(}\DecValTok{5}\NormalTok{))} \NormalTok{ S2 = V2/}\DecValTok{1000} @@ -1074,25 +1088,23 @@ \subsubsection{특수 ADVAN}\label{uxd2b9uxc218-advan}} \toprule Parameters* & Descriptions\\ \midrule -\rowcolor{gray!6} S1 & Scale for the first compartment\\ +\cellcolor{gray!6}{S1} & \cellcolor{gray!6}{Scale for the first compartment}\\ F1 & Bioavailability for the first compartment\\ -\rowcolor{gray!6} R1 & Rate for the first compartment\\ +\cellcolor{gray!6}{R1} & \cellcolor{gray!6}{Rate for the first compartment}\\ D1 & Duration for the first compartment\\ -\rowcolor{gray!6} ALAG1 & Absorption lag parameter\\ +\cellcolor{gray!6}{ALAG1} & \cellcolor{gray!6}{Absorption lag parameter}\\ \bottomrule -\multicolumn{2}{l}{\textsuperscript{*} 각 파라미터 뒤의 숫자는 컴파트먼트 번호를 뜻한다.}\\ +\multicolumn{2}{l}{\rule{0pt}{1em}\textsuperscript{*} 각 파라미터 뒤의 숫자는 컴파트먼트 번호를 뜻한다.}\\ \end{tabular} \end{table} \index{특수 ADVAN / specific ADVANs}\index{specific ADVANs / 특수 ADVAN}\index{specific ADVANs / 특수 ADVAN} -\hypertarget{uxc77cuxbc18-advan}{% -\subsubsection{일반 ADVAN}\label{uxc77cuxbc18-advan}} +\subsubsection{일반 ADVAN}\label{uxc77cuxbc18-advan} 일반 ADVAN은 사용자가 직접 모델을 제시할 수 있는 서브루틴이다. 구획의 수와 흡수 및 제거 모델을 사용자가 결정하여 \$MODEL과 \$DES에 정의할 수 있다. 주로, 복잡한 흡수모델, 비선형 약동학, 장간순환, 모약물--대사체 동시 분석, 그리고 PD 데이터 분석을 위해 사용된다. 선형 또는 비선형 모델과 파라미터 추정 계산 방식에 따라 ADVAN 5,6,7,8,9,13,14,15 (NONMEM 7.4 기준)로 나뉘며, 특히, 선형모델인 ADVAN5와 ADVAN7은 구획간 물질이동과 구획으로의 흡수와 제거를 1차 이동속도로 정의하기 때문에, \$PK에서 구획간 약물의 이동에 대한 속도상수를 정의하고 \$DES 블록을 사용하지 않는다. ADVAN5와 ADVAN7을 제외한 일반 비선형 ADVAN은 \$DES 레코드를 사용하여 각 구획간의 이동에 대한 관계를 미분방정식을 사용하여 기술하여야 한다.\index{\$DES}\index{\$MODEL}\index{\$PK}\index{ADVAN5}\index{ADVAN7} -\hypertarget{theta-omega-sigma}{% -\subsection{\$THETA, \$OMEGA, \$SIGMA}\label{theta-omega-sigma}} +\subsection{\$THETA, \$OMEGA, \$SIGMA}\label{theta-omega-sigma} \index{\$OMEGA}\index{\$SIGMA}\index{\$THETA} @@ -1102,11 +1114,11 @@ \subsection{\$THETA, \$OMEGA, \$SIGMA}\label{theta-omega-sigma}} \begin{Highlighting}[] \DataTypeTok{$PK} \NormalTok{TVCL = THETA(}\DecValTok{1}\NormalTok{) } -\NormalTok{CL = TVCL }\KeywordTok{*}\NormalTok{ EXP(ETA(}\DecValTok{1}\NormalTok{)) } +\NormalTok{CL = TVCL }\OtherTok{*}\NormalTok{ EXP(ETA(}\DecValTok{1}\NormalTok{)) } \NormalTok{TVV = THETA(}\DecValTok{2}\NormalTok{) } -\NormalTok{V = TVV }\KeywordTok{*}\NormalTok{ EXP(ETA(}\DecValTok{2}\NormalTok{)) } +\NormalTok{V = TVV }\OtherTok{*}\NormalTok{ EXP(ETA(}\DecValTok{2}\NormalTok{)) } \NormalTok{TVKA = THETA(}\DecValTok{3}\NormalTok{) } -\NormalTok{KA = TVKA }\KeywordTok{*}\NormalTok{ EXP(ETA(}\DecValTok{3}\NormalTok{))} +\NormalTok{KA = TVKA }\OtherTok{*}\NormalTok{ EXP(ETA(}\DecValTok{3}\NormalTok{))} \end{Highlighting} \end{Shaded} @@ -1181,7 +1193,7 @@ \subsection{\$THETA, \$OMEGA, \$SIGMA}\label{theta-omega-sigma}} \NormalTok{W = SQRT(THETA(}\DecValTok{4}\NormalTok{)**}\DecValTok{2}\NormalTok{ + THETA(}\DecValTok{5}\NormalTok{)**}\DecValTok{2} \DataTypeTok{*IPRED}\NormalTok{**}\DecValTok{2}\NormalTok{) } \NormalTok{IRES = DV{-}IPRED } \NormalTok{IWRES = IRES/W } -\NormalTok{Y = IPRED + W }\KeywordTok{*}\NormalTok{ EPS(}\DecValTok{1}\NormalTok{)} +\NormalTok{Y = IPRED + W }\OtherTok{*}\NormalTok{ EPS(}\DecValTok{1}\NormalTok{)} \NormalTok{...} \DataTypeTok{$THETA}\NormalTok{ (}\DecValTok{0}\NormalTok{, }\DecValTok{100}\NormalTok{) (}\DecValTok{0}\NormalTok{, }\DecValTok{30}\NormalTok{) (}\DecValTok{0}\NormalTok{, }\FloatTok{0.7}\NormalTok{) }\DecValTok{10} \FloatTok{0.2} \NormalTok{...} @@ -1191,12 +1203,11 @@ \subsection{\$THETA, \$OMEGA, \$SIGMA}\label{theta-omega-sigma}} 여기서 THETA(4)는 가법변동값을, THETA(5)는 고정변동계수값을 의미한다. 위의 \$ERROR 레코드에서 사용한 EPS(1)은 \$SIGMA 에서 1로 FIX하여 W식을 통해 잔차의 분포를 추정할 수 있도록 하여야 하며, 주의할 점은 \$THETA를 통해 추정된 잔차변이는 분산값이 아니라 표준편차(σ) 값이다.\index{고정변동계수(CCV) / constant coefficient of variation(CCV)}\index{constant coefficient of variation(CCV) / 고정변동계수(CCV)}\index{잔차 / residual error}\index{residual error / 잔차}\index{\$ERROR}\index{\$SIGMA}\index{\$THETA} -\hypertarget{estimation-simulation}{% -\subsection{\$ESTIMATION, \$SIMULATION}\label{estimation-simulation}} +\subsection{\$ESTIMATION, \$SIMULATION}\label{estimation-simulation} \index{\$ESTIMATION (\$EST)}\index{\$SIMULATION (\$SIM)} -\$ESTIMATION은 파라미터 추정을 위한 추정방법을 선택하고 추정결과를 어떻게 출력할 것인지를 명시하는 레코드이다.\index{\$ESTIMATION (\$EST)} 추정방법에는 1차추정법(first order, FO), 1차 조건부 추정법 (first-order conditional estimation, FOCE), 라플라시안 추정법 등을 비롯하여 다양한 방법들이 있다. 추정방법에 대한 이론적인 설명은 \protect\hyperlink{estimation-methods}{9장 파라미터 추정 방법 및 세팅}에서 자세히 다루기로 하고 여기서는 제어구문에 사용하는 기본적인 코드와 용어에 대해서 설명한다. +\$ESTIMATION은 파라미터 추정을 위한 추정방법을 선택하고 추정결과를 어떻게 출력할 것인지를 명시하는 레코드이다.\index{\$ESTIMATION (\$EST)} 추정방법에는 1차추정법(first order, FO), 1차 조건부 추정법 (first-order conditional estimation, FOCE), 라플라시안 추정법 등을 비롯하여 다양한 방법들이 있다. 추정방법에 대한 이론적인 설명은 \hyperref[estimation-methods]{9장 파라미터 추정 방법 및 세팅}에서 자세히 다루기로 하고 여기서는 제어구문에 사용하는 기본적인 코드와 용어에 대해서 설명한다. \index{1차 조건부 추정방법(FOCE) / first-order conditional estimation method(FOCE)}\index{first-order conditional estimation method(FOCE) / 1차 조건부 추정방법(FOCE)}\index{first-order conditional estimation method(FOCE) / 1차 조건부 추정방법(FOCE)}\index{FOCE}\index{FO} \index{조건부 추정법 / conditional estimation method}\index{conditional estimation method / 조건부 추정법}\index{1차추정법 / first-order method(FO)}\index{first-order method(FO) / 1차추정법}\index{first-order method(FO) / 1차추정법}\index{FO} @@ -1221,8 +1232,7 @@ \subsection{\$ESTIMATION, \$SIMULATION}\label{estimation-simulation}} `NSUB='으로 시뮬레이션 하고자 하는 대상자 수(시뮬레이션 횟수)를 정하고, 이를 통해 얻은 결과를 정리하여 예측구간을 설정하여 관찰값과 비교할 수 있다. (seed)는 임의 수를 발생하기 위한 시작점이며, 임의의 숫자를 입력하면 된다. \$SIMULATION을 사용 시 \$ESTIMATION과 \$COVARIANCE는 함께 사용할 수 없다.\index{시뮬레이션 / simulation}\index{simulation / 시뮬레이션}\index{\$COVARIANCE (\$COV, \$COVAR)}\index{\$ESTIMATION (\$EST)}\index{\$SIMULATION (\$SIM)}\index{NSUB} -\hypertarget{covariance-table}{% -\subsection{\$COVARIANCE, \$TABLE}\label{covariance-table}} +\subsection{\$COVARIANCE, \$TABLE}\label{covariance-table} \index{\$COVARIANCE (\$COV, \$COVAR)}\index{\$TABLE} @@ -1236,7 +1246,7 @@ \subsection{\$COVARIANCE, \$TABLE}\label{covariance-table}} PRINT=E 옵션을 사용하면 분산-공분산 행렬의 고유값(eigenvalue)를 결과파일에 출력해준다. 이를 이용하여 조건수(condition number)를 계산할 수 있는데, 고유값 중 가장 큰 값을 가장 작은 값으로 나누어 얻는다. 조건수의 값을 통해 모델의 안정성(stability)을 판단할 수 있으며, 경우에 따라 모델러는 모델을 단순화 시키거나, 추정해야 할 파라미터의 수를 줄여 모델을 안정화 시킬 수 있다. 공분산 계산 시 R\textsubscript{-1}SR\textsubscript{-1} 행렬이 기본계산에 사용되는데, \texttt{MATRIX=S} 또는 \texttt{MATRIX=R} 옵션을 사용하여 공분산 계산 과정에서 S 행렬이나 R 행렬을 사용할 수 있다. \texttt{UNCONDITIONAL} 옵션은 추정 단계의 성공여부와 관계없이 늘 공분산 단계를 출력해 준다.\index{고유값 / eigenvalues}\index{공분산 / covariance}\index{분산-공분산 행렬 / variance-covariance matrix}\index{covariance / 공분산}\index{eigenvalues / 고유값}\index{variance-covariance matrix / 분산-공분산 행렬}\index{조건수 / condition number}\index{condition number / 조건수}\index{R matrix / R 행렬}\index{S matrix / S 행렬}\index{R matrix / R 행렬}\index{S matrix / S 행렬}\index{PRINT=E} -\$TABLE은 추정결과의 출력을 제어하는데 사용되는 레코드이다. 출력할 변수명을 코드 \ref{exm:table-record}처럼 \$TABLE에 순서대로 나열할 수 있으며, ONEHEADER는 결과표에 변수 제목행을 출력하라는 옵션(출력하지 않으려면 NOHEADER)이고, NOPRINT와 FILE = sdtab1 은 결과를 NONMEM 보고파일 내에 출력하지 말고 sdtab1이라는 별도의 파일명으로 출력해 달라는 옵션이다. NOAPPEND 옵션을 쓰지 않으면, 결과 파일에 DV, PRED, RES, WRES 변수 결과값들이 자동으로 함께 출력된다. 또한, FILE 명의 sdtab, patab, catab, cotab은 각각 xpose4에서 standard table, parameter table, categorical covariate table, continuous covariate table을 의미하는 용어이므로 특성에 맞게 각 변수들을 배치하면, R의 xpose4를 통해 결과를 확인하는데 편리하다. (Hooker et al. (\protect\hyperlink{ref-R-xpose4}{2020})) 다만, 뒤의 숫자(예에서는 1)는 동일하게 지정해주어야 정확한 결과 분석이 가능하다.\index{dependent variable(DV) / 종속변수(DV)}\index{\$TABLE}\index{NOAPPEND}\index{NOHEADER}\index{NOPRINT}\index{ONEHEADER}\index{PRED}\index{RES}\index{WRES} +\$TABLE은 추정결과의 출력을 제어하는데 사용되는 레코드이다. 출력할 변수명을 코드 \ref{exm:table-record}처럼 \$TABLE에 순서대로 나열할 수 있으며, ONEHEADER는 결과표에 변수 제목행을 출력하라는 옵션(출력하지 않으려면 NOHEADER)이고, NOPRINT와 FILE = sdtab1 은 결과를 NONMEM 보고파일 내에 출력하지 말고 sdtab1이라는 별도의 파일명으로 출력해 달라는 옵션이다. NOAPPEND 옵션을 쓰지 않으면, 결과 파일에 DV, PRED, RES, WRES 변수 결과값들이 자동으로 함께 출력된다. 또한, FILE 명의 sdtab, patab, catab, cotab은 각각 xpose4에서 standard table, parameter table, categorical covariate table, continuous covariate table을 의미하는 용어이므로 특성에 맞게 각 변수들을 배치하면, R의 xpose4를 통해 결과를 확인하는데 편리하다. (Hooker et al. (\citeproc{ref-R-xpose4}{2020})) 다만, 뒤의 숫자(예에서는 1)는 동일하게 지정해주어야 정확한 결과 분석이 가능하다.\index{dependent variable(DV) / 종속변수(DV)}\index{\$TABLE}\index{NOAPPEND}\index{NOHEADER}\index{NOPRINT}\index{ONEHEADER}\index{PRED}\index{RES}\index{WRES} \index{\$TABLE}\index{AMT}\index{CWRES}\index{ID}\index{IPRED}\index{IWRES}\index{MDV}\index{PRED}\index{RES}\index{TIME}\index{WRES} \index{\$TABLE}\index{ID} @@ -1245,8 +1255,9 @@ \subsection{\$COVARIANCE, \$TABLE}\label{covariance-table}} \index{conditional weighted residuals / 조건부 가중 잔차}\index{\$THETA}\index{\$OMEGA}\index{\$SIGMA} \begin{example} -\protect\hypertarget{exm:table-record}{}{\label{exm:table-record} }\$TABLE 레코드의 예 +\protect\hypertarget{exm:table-record}{}\label{exm:table-record}\$TABLE 레코드의 예 \end{example} + \vspace{-5ex} \begin{Shaded} @@ -1280,21 +1291,20 @@ \subsection{\$COVARIANCE, \$TABLE}\label{covariance-table}} \end{Highlighting} \end{Shaded} -\hypertarget{uxbaa8uxb378-uxc885uxb958uxbcc4-uxc81cuxc5b4uxad6cuxbb38}{% -\section{모델 종류별 제어구문}\label{uxbaa8uxb378-uxc885uxb958uxbcc4-uxc81cuxc5b4uxad6cuxbb38}} +\section{모델 종류별 제어구문}\label{uxbaa8uxb378-uxc885uxb958uxbcc4-uxc81cuxc5b4uxad6cuxbb38} 앞 단원에서는 NONMEM 실행에 필요한 제어구문의 각 레코드에 대하여 알아보았다. 이 단원에서는 모델 종류에 따른 제어구문의 예를 살펴보기로 한다. -\hypertarget{uxd2b9uxc218-advanuxacfc-uxc77cuxbc18-advan}{% -\subsection{특수 ADVAN과 일반 ADVAN}\label{uxd2b9uxc218-advanuxacfc-uxc77cuxbc18-advan}} +\subsection{특수 ADVAN과 일반 ADVAN}\label{uxd2b9uxc218-advanuxacfc-uxc77cuxbc18-advan} \index{특수 ADVAN / specific ADVANs}\index{specific ADVANs / 특수 ADVAN}\index{specific ADVANs / 특수 ADVAN} 2구획 경구 약동학 데이터를 각각 특수 ADVAN과 일반 ADVAN을 사용하여 분석해보자. 특수 ADVAN을 사용할 경우 \$SUBROUTINE에서 ADVAN4와 그에 따른 TRANS 서브루틴을 선택하고, \$PK에서 추정하고자 하는 각 파라미터의 대표값과 개인간 변이 모델을 결정하면 된다. ADVAN4를 선택함으로써, 이미 모델을 결정하였기 때문에 \$MODEL과 \$DES 레코드는 사용할 필요가 없다. (코드 \ref{exm:advan4})\index{개인간 변이 / between-subject variability, initerindividual variability(IIV)}\index{between-subject variability, initerindividual variability(IIV) / 개인간 변이}\index{특수 ADVAN / specific ADVANs}\index{specific ADVANs / 특수 ADVAN}\index{specific ADVANs / 특수 ADVAN}\index{\$DES}\index{\$MODEL}\index{\$PK}\index{\$SUBROUTINE}\index{ADVAN4}\index{TRANS} \begin{example} -\protect\hypertarget{exm:advan4}{}{\label{exm:advan4} }2구획 경구 약동학 모델의 제어구문의 예. ADVAN4 +\protect\hypertarget{exm:advan4}{}\label{exm:advan4}2구획 경구 약동학 모델의 제어구문의 예. ADVAN4 \end{example} + \vspace{-5ex} \begin{Shaded} @@ -1302,11 +1312,11 @@ \subsection{특수 ADVAN과 일반 ADVAN}\label{uxd2b9uxc218-advanuxacfc-uxc77cu \DataTypeTok{$SUBROUTINE}\NormalTok{ ADVAN4 TRANS4} \DataTypeTok{$PK} -\NormalTok{ CL = THETA(}\DecValTok{1}\NormalTok{) }\KeywordTok{*}\NormalTok{ EXP(ETA(}\DecValTok{1}\NormalTok{))} -\NormalTok{ V2 = THETA(}\DecValTok{2}\NormalTok{) }\KeywordTok{*}\NormalTok{ EXP(ETA(}\DecValTok{2}\NormalTok{))} -\NormalTok{ V3 = THETA(}\DecValTok{3}\NormalTok{) }\KeywordTok{*}\NormalTok{ EXP(ETA(}\DecValTok{3}\NormalTok{))} -\NormalTok{ Q = THETA(}\DecValTok{4}\NormalTok{) }\KeywordTok{*}\NormalTok{ EXP(ETA(}\DecValTok{4}\NormalTok{))} -\NormalTok{ KA = THETA(}\DecValTok{5}\NormalTok{) }\KeywordTok{*}\NormalTok{ EXP(ETA(}\DecValTok{5}\NormalTok{))} +\NormalTok{ CL = THETA(}\DecValTok{1}\NormalTok{) }\OtherTok{*}\NormalTok{ EXP(ETA(}\DecValTok{1}\NormalTok{))} +\NormalTok{ V2 = THETA(}\DecValTok{2}\NormalTok{) }\OtherTok{*}\NormalTok{ EXP(ETA(}\DecValTok{2}\NormalTok{))} +\NormalTok{ V3 = THETA(}\DecValTok{3}\NormalTok{) }\OtherTok{*}\NormalTok{ EXP(ETA(}\DecValTok{3}\NormalTok{))} +\NormalTok{ Q = THETA(}\DecValTok{4}\NormalTok{) }\OtherTok{*}\NormalTok{ EXP(ETA(}\DecValTok{4}\NormalTok{))} +\NormalTok{ KA = THETA(}\DecValTok{5}\NormalTok{) }\OtherTok{*}\NormalTok{ EXP(ETA(}\DecValTok{5}\NormalTok{))} \NormalTok{ S2 = V2/}\DecValTok{1000} @@ -1316,10 +1326,10 @@ \subsection{특수 ADVAN과 일반 ADVAN}\label{uxd2b9uxc218-advanuxacfc-uxc77cu \DataTypeTok{$ERROR} \NormalTok{ IPRED = F} -\NormalTok{ W = SQRT(THETA(}\DecValTok{6}\NormalTok{))**}\DecValTok{2}\NormalTok{ + THETA(}\DecValTok{7}\NormalTok{)**}\DecValTok{2} \KeywordTok{*}\NormalTok{ IPRED**}\DecValTok{2}\NormalTok{)} +\NormalTok{ W = SQRT(THETA(}\DecValTok{6}\NormalTok{))**}\DecValTok{2}\NormalTok{ + THETA(}\DecValTok{7}\NormalTok{)**}\DecValTok{2} \OtherTok{*}\NormalTok{ IPRED**}\DecValTok{2}\NormalTok{)} \NormalTok{ IRES = DV {-} IPRED} \NormalTok{ IWRES = IRES / W} -\NormalTok{ Y = IPRED + W }\KeywordTok{*}\NormalTok{ EPS(}\DecValTok{1}\NormalTok{) } +\NormalTok{ Y = IPRED + W }\OtherTok{*}\NormalTok{ EPS(}\DecValTok{1}\NormalTok{) } \DataTypeTok{$THETA} \NormalTok{ (}\DecValTok{0}\NormalTok{, }\DecValTok{10}\NormalTok{, }\DecValTok{30}\NormalTok{)} @@ -1346,8 +1356,9 @@ \subsection{특수 ADVAN과 일반 ADVAN}\label{uxd2b9uxc218-advanuxacfc-uxc77cu 동일한 데이터를 일반 ADVAN을 사용하여 분석할 경우, 일반 선형 ADVAN 또는 비선형 ADVAN을 선택할 수 있다. 선형 ADVAN인 ADVAN5를 사용할 경우, \$MODEL 레코드에서 모델 분석에 사용할 구획의 수와 각 구획의 역할에 대하여 결정하여야 한다. (코드 \ref{exm:advan5}) DEFDOSE와 DEFOBS는 NONMEM에 내장되어 있는 옵션으로 각각 용량 구획과 관찰값 구획을 지정할 때 사용한다. 각 구획의 물질 이동은 1차 이동속도를 따르는 선형 ADVAN이므로, \$DES를 사용하지 않아도 된다.\index{\$DES}\index{\$MODEL}\index{ADVAN5}\index{DEFDOS}\index{DEFOBS}\index{FO} \begin{example} -\protect\hypertarget{exm:advan5}{}{\label{exm:advan5} }2구획 경구 약동학 모델의 제어구문의 예. ADVAN5 +\protect\hypertarget{exm:advan5}{}\label{exm:advan5}2구획 경구 약동학 모델의 제어구문의 예. ADVAN5 \end{example} + \vspace{-5ex} \begin{Shaded} @@ -1360,11 +1371,11 @@ \subsection{특수 ADVAN과 일반 ADVAN}\label{uxd2b9uxc218-advanuxacfc-uxc77cu \NormalTok{ COMP(PERI)} \DataTypeTok{$PK} -\NormalTok{ CL = THETA(}\DecValTok{1}\NormalTok{) }\KeywordTok{*}\NormalTok{ EXP(ETA(}\DecValTok{1}\NormalTok{))} -\NormalTok{ V2 = THETA(}\DecValTok{2}\NormalTok{) }\KeywordTok{*}\NormalTok{ EXP(ETA(}\DecValTok{2}\NormalTok{))} -\NormalTok{ V3 = THETA(}\DecValTok{3}\NormalTok{) }\KeywordTok{*}\NormalTok{ EXP(ETA(}\DecValTok{3}\NormalTok{))} -\NormalTok{ Q = THETA(}\DecValTok{4}\NormalTok{) }\KeywordTok{*}\NormalTok{ EXP(ETA(}\DecValTok{4}\NormalTok{))} -\NormalTok{ KA = THETA(}\DecValTok{5}\NormalTok{) }\KeywordTok{*}\NormalTok{ EXP(ETA(}\DecValTok{5}\NormalTok{))} +\NormalTok{ CL = THETA(}\DecValTok{1}\NormalTok{) }\OtherTok{*}\NormalTok{ EXP(ETA(}\DecValTok{1}\NormalTok{))} +\NormalTok{ V2 = THETA(}\DecValTok{2}\NormalTok{) }\OtherTok{*}\NormalTok{ EXP(ETA(}\DecValTok{2}\NormalTok{))} +\NormalTok{ V3 = THETA(}\DecValTok{3}\NormalTok{) }\OtherTok{*}\NormalTok{ EXP(ETA(}\DecValTok{3}\NormalTok{))} +\NormalTok{ Q = THETA(}\DecValTok{4}\NormalTok{) }\OtherTok{*}\NormalTok{ EXP(ETA(}\DecValTok{4}\NormalTok{))} +\NormalTok{ KA = THETA(}\DecValTok{5}\NormalTok{) }\OtherTok{*}\NormalTok{ EXP(ETA(}\DecValTok{5}\NormalTok{))} \NormalTok{ S2 = V2/}\DecValTok{1000} @@ -1375,18 +1386,19 @@ \subsection{특수 ADVAN과 일반 ADVAN}\label{uxd2b9uxc218-advanuxacfc-uxc77cu \DataTypeTok{$ERROR} \NormalTok{ IPRED = F} -\NormalTok{ W = SQRT(THETA(}\DecValTok{6}\NormalTok{))**}\DecValTok{2}\NormalTok{ + THETA(}\DecValTok{7}\NormalTok{)**}\DecValTok{2} \KeywordTok{*}\NormalTok{ IPRED**}\DecValTok{2}\NormalTok{)} +\NormalTok{ W = SQRT(THETA(}\DecValTok{6}\NormalTok{))**}\DecValTok{2}\NormalTok{ + THETA(}\DecValTok{7}\NormalTok{)**}\DecValTok{2} \OtherTok{*}\NormalTok{ IPRED**}\DecValTok{2}\NormalTok{)} \NormalTok{ IRES = DV {-} IPRED} \NormalTok{ IWRES = IRES / W} -\NormalTok{ Y = IPRED + W }\KeywordTok{*}\NormalTok{ EPS(}\DecValTok{1}\NormalTok{) } +\NormalTok{ Y = IPRED + W }\OtherTok{*}\NormalTok{ EPS(}\DecValTok{1}\NormalTok{) } \end{Highlighting} \end{Shaded} 2구획 경구 악동학 데이터를 일반 비선형 ADVAN인 ADVAN6를 이용하여 분석해보자. 선형 모델에서부터 다양한 흡수모델 또는 비선형 제거모델까지 최종 모델 선정을 위해 다양한 모델 분석을 시행하는 단계에서 모델의 유연성과 모델 수정의 편리성 때문에 비선형 ADVAN을 이용하는 경우가 많다. 코드 \ref{exm:advan6}처럼, \$MODEL을 이용하여 구획을 정의하고, \$PK에서 각 파라미터를 정의하는 것은 선형 ADVAN을 사용하는 경우와 같다. 하지만, 각 구획 간의 이동속도가 비선형을 따를수 있으므로, \$DES를 이용하여 각 구획 간의 이동속도상수를 정의해야 한다. 또한, \$SUBROUTINE에서 \texttt{TOL=}을 정의하지 않으면, 모델 실행이 되지 않음을 주의해야 한다.\index{\$DES}\index{\$MODEL}\index{\$PK}\index{\$SUBROUTINE}\index{ADVAN6}\index{TOL} \begin{example} -\protect\hypertarget{exm:advan6}{}{\label{exm:advan6} }2구획 경구 약동학 모델의 제어구문의 예. ADVAN6 +\protect\hypertarget{exm:advan6}{}\label{exm:advan6}2구획 경구 약동학 모델의 제어구문의 예. ADVAN6 \end{example} + \vspace{-5ex} \begin{Shaded} @@ -1399,11 +1411,11 @@ \subsection{특수 ADVAN과 일반 ADVAN}\label{uxd2b9uxc218-advanuxacfc-uxc77cu \NormalTok{ COMP(PERIPH)} \DataTypeTok{$PK} -\NormalTok{ CL = THETA(}\DecValTok{1}\NormalTok{) }\KeywordTok{*}\NormalTok{ EXP(ETA(}\DecValTok{1}\NormalTok{))} -\NormalTok{ V2 = THETA(}\DecValTok{2}\NormalTok{) }\KeywordTok{*}\NormalTok{ EXP(ETA(}\DecValTok{2}\NormalTok{))} -\NormalTok{ V3 = THETA(}\DecValTok{3}\NormalTok{) }\KeywordTok{*}\NormalTok{ EXP(ETA(}\DecValTok{3}\NormalTok{))} -\NormalTok{ Q = THETA(}\DecValTok{4}\NormalTok{) }\KeywordTok{*}\NormalTok{ EXP(ETA(}\DecValTok{4}\NormalTok{))} -\NormalTok{ KA = THETA(}\DecValTok{5}\NormalTok{) }\KeywordTok{*}\NormalTok{ EXP(ETA(}\DecValTok{5}\NormalTok{))} +\NormalTok{ CL = THETA(}\DecValTok{1}\NormalTok{) }\OtherTok{*}\NormalTok{ EXP(ETA(}\DecValTok{1}\NormalTok{))} +\NormalTok{ V2 = THETA(}\DecValTok{2}\NormalTok{) }\OtherTok{*}\NormalTok{ EXP(ETA(}\DecValTok{2}\NormalTok{))} +\NormalTok{ V3 = THETA(}\DecValTok{3}\NormalTok{) }\OtherTok{*}\NormalTok{ EXP(ETA(}\DecValTok{3}\NormalTok{))} +\NormalTok{ Q = THETA(}\DecValTok{4}\NormalTok{) }\OtherTok{*}\NormalTok{ EXP(ETA(}\DecValTok{4}\NormalTok{))} +\NormalTok{ KA = THETA(}\DecValTok{5}\NormalTok{) }\OtherTok{*}\NormalTok{ EXP(ETA(}\DecValTok{5}\NormalTok{))} \NormalTok{ S2 = V2/}\DecValTok{1000} @@ -1418,15 +1430,14 @@ \subsection{특수 ADVAN과 일반 ADVAN}\label{uxd2b9uxc218-advanuxacfc-uxc77cu \DataTypeTok{$ERROR} \NormalTok{ IPRED = F} -\NormalTok{ W = SQRT(THETA(}\DecValTok{6}\NormalTok{))**}\DecValTok{2}\NormalTok{ + THETA(}\DecValTok{7}\NormalTok{)**}\DecValTok{2} \KeywordTok{*}\NormalTok{ IPRED**}\DecValTok{2}\NormalTok{)} +\NormalTok{ W = SQRT(THETA(}\DecValTok{6}\NormalTok{))**}\DecValTok{2}\NormalTok{ + THETA(}\DecValTok{7}\NormalTok{)**}\DecValTok{2} \OtherTok{*}\NormalTok{ IPRED**}\DecValTok{2}\NormalTok{)} \NormalTok{ IRES = DV {-} IPRED} \NormalTok{ IWRES = IRES / W} -\NormalTok{ Y = IPRED + W }\KeywordTok{*}\NormalTok{ EPS(}\DecValTok{1}\NormalTok{) } +\NormalTok{ Y = IPRED + W }\OtherTok{*}\NormalTok{ EPS(}\DecValTok{1}\NormalTok{) } \end{Highlighting} \end{Shaded} -\hypertarget{uxc77cuxbc18-uxbe44uxc120uxd615-uxbaa8uxb378}{% -\subsection{일반 비선형 모델}\label{uxc77cuxbc18-uxbe44uxc120uxd615-uxbaa8uxb378}} +\subsection{일반 비선형 모델}\label{uxc77cuxbc18-uxbe44uxc120uxd615-uxbaa8uxb378} 코드 \ref{exm:advan6}처럼 일반 비선형 모델은 미분방정식을 사용하여 각 구획의 이동을 시간에 따른 구획의 질량변화로 표현한다. 미분방정식을 계산하는 방법에 따라 다양한 ADVAN을 선택할 수 있다. 일반 비선형 모델을 이용한 약동학 분석 모델의 예를 모약물과 대사체의 약동학을 동시에 분석하는 모델을 통해 살펴보자. 개발 중인 약이 주대사체로 많이 대사되며, 그 대사체도 약효를 나타내는 경우에는 대사체와 모약물의 약동학을 동시에 분석하는 모델이 필요하다. 그림 \ref{fig:model-parent-metabolite}과 같이 대사체의 생성은 비선형 모델(Michaelis--Menten 모델)을 따른다고 가정하였다. @@ -1455,13 +1466,14 @@ \subsection{일반 비선형 모델}\label{uxc77cuxbc18-uxbe44uxc120uxd615-uxbaa 여기서 MPR은 대사체와 모약물의 분자량의 비(metabolite-to-parent ratio)를 의미하며, Vmax는 대사체가 생성되는 최대반응속도이며, Km은 대사체 생성 최대반응속도가 절반일때의 두번째 구획의 양을 뜻한다. 이 모델을 제어구문으로 나타내면 코드 \ref{exm:parent-metabolite}와 같다. 모약물과 대사체의 농도 데이터(DV)를 전부 사용하여 파라미터를 추정하였고, 데이터셋에서 모약물의 농도는 CMT=2 대사체의 농도는 CMT=3이다. \$DES에서 각 구획의 이동을 정의하였으며, \$ERROR에서 모약물과 대사체의 관찰값의 변이를 각각 추정하였다. (코드 \ref{exm:parent-metabolite})\index{\$DES}\index{\$ERROR}\index{CMT} \begin{example} -\protect\hypertarget{exm:parent-metabolite}{}{\label{exm:parent-metabolite} }모약물과 대사체의 약동학 동시 분석 모델의 제어구문 +\protect\hypertarget{exm:parent-metabolite}{}\label{exm:parent-metabolite}모약물과 대사체의 약동학 동시 분석 모델의 제어구문 \end{example} + \vspace{-5ex} \begin{Shaded} \begin{Highlighting}[] -\DataTypeTok{$PROBLEM}\NormalTok{ Model of Parent }\KeywordTok{and}\NormalTok{ Metabolite Concentrations} +\DataTypeTok{$PROBLEM}\NormalTok{ Model of Parent }\OtherTok{and}\NormalTok{ Metabolite Concentrations} \DataTypeTok{$INPUT}\NormalTok{ ID TIME DV AMT EVID MDV CMT} \DataTypeTok{$DATA}\NormalTok{ filename} \DataTypeTok{$SUBROUTINE}\NormalTok{ ADVAN6 TOL=}\DecValTok{4} @@ -1470,8 +1482,8 @@ \subsection{일반 비선형 모델}\label{uxc77cuxbc18-uxbe44uxc120uxd615-uxbaa \NormalTok{ COMP (CENTPRNT, DEFOBS)} \NormalTok{ COMP (CENTMETB)} \DataTypeTok{$PK} -\NormalTok{ K20 = THETA(}\DecValTok{1}\NormalTok{) }\KeywordTok{*}\NormalTok{ EXP(ETA(}\DecValTok{1}\NormalTok{))} -\NormalTok{ V2 = THETA(}\DecValTok{2}\NormalTok{) }\KeywordTok{*}\NormalTok{ EXP(ETA(}\DecValTok{2}\NormalTok{))} +\NormalTok{ K20 = THETA(}\DecValTok{1}\NormalTok{) }\OtherTok{*}\NormalTok{ EXP(ETA(}\DecValTok{1}\NormalTok{))} +\NormalTok{ V2 = THETA(}\DecValTok{2}\NormalTok{) }\OtherTok{*}\NormalTok{ EXP(ETA(}\DecValTok{2}\NormalTok{))} \NormalTok{ KA = THETA(}\DecValTok{3}\NormalTok{)} \NormalTok{ VMAX= THETA(}\DecValTok{4}\NormalTok{)} \NormalTok{ KM = THETA(}\DecValTok{5}\NormalTok{)} @@ -1486,20 +1498,20 @@ \subsection{일반 비선형 모델}\label{uxc77cuxbc18-uxbe44uxc120uxd615-uxbaa \DataTypeTok{$ERROR} \NormalTok{ IF (CMT.EQ.}\DecValTok{2}\NormalTok{) TYPE=}\DecValTok{0}\NormalTok{ ;Parent concentration} \NormalTok{ IF (CMT.EQ.}\DecValTok{3}\NormalTok{) TYPE=}\DecValTok{1}\NormalTok{ ;Metabolite concentration} -\NormalTok{Y = F}\DataTypeTok{*EPS}\NormalTok{(}\DecValTok{1}\NormalTok{) }\KeywordTok{*}\NormalTok{ (}\DecValTok{1}\NormalTok{{-}TYPE)} +\NormalTok{Y = F}\DataTypeTok{*EPS}\NormalTok{(}\DecValTok{1}\NormalTok{) }\OtherTok{*}\NormalTok{ (}\DecValTok{1}\OtherTok{{-}T}\NormalTok{YPE)} \end{Highlighting} \end{Shaded} -\hypertarget{pred-uxbaa8uxb378}{% -\subsection{PRED 모델}\label{pred-uxbaa8uxb378}} +\subsection{PRED 모델}\label{pred-uxbaa8uxb378} \index{PRED} \$PRED를 사용한 모델을 살펴보자. 코드 \ref{exm:linear-model}는 C\textsubscript{max}와 약효(부작용)와의 관계를 y=ax+b라는 일차식으로 정의한 모델의 제어구문이다. 제어구문을 살펴보면, \$PRED 레코드를 사용하여 각 파라미터와 추정식과 변이모델을 정의하였다. \$PRED에는 사전에 약속된 구문이나 옵션이 없기 때문에 추정하고자 하는 파라미터와 관련 추정식, 그리고 변이 모델을 정의하여야 할 경우에는 사용자가 자유롭게 정의해야 하며, 따로 \$ERROR 레코드를 사용하지 않는다. 이와 같이, 상대적으로 간단한 모델을 구축하는데는 \$PRED를 사용하는 것이 효율적이다.\index{\$ERROR}\index{\$PRED}\index{PRED} \begin{example} -\protect\hypertarget{exm:linear-model}{}{\label{exm:linear-model} }\$PRED를 이용한 간단한 선형 모델 +\protect\hypertarget{exm:linear-model}{}\label{exm:linear-model}\$PRED를 이용한 간단한 선형 모델 \end{example} + \vspace{-5ex} \begin{Shaded} @@ -1525,10 +1537,9 @@ \subsection{PRED 모델}\label{pred-uxbaa8uxb378}} \begin{center}\rule{0.5\linewidth}{0.5pt}\end{center} -3장은 다음 문헌을 전반적으로 참고하여 작성되었다. (Owen \protect\hyperlink{ref-kelly}{2014}; Beal \protect\hyperlink{ref-nonmem}{2018}) +3장은 다음 문헌을 전반적으로 참고하여 작성되었다. (\citeproc{ref-kelly}{Owen 2014}; \citeproc{ref-nonmem}{Beal 2018}) -\hypertarget{specific-advan}{% -\chapter{특수 ADVAN을 이용한 제어구문의 코딩}\label{specific-advan}} +\chapter{특수 ADVAN을 이용한 제어구문의 코딩}\label{specific-advan} \index{특수 ADVAN / specific ADVANs}\index{specific ADVANs / 특수 ADVAN}\index{specific ADVANs / 특수 ADVAN} @@ -1543,18 +1554,19 @@ \chapter{특수 ADVAN을 이용한 제어구문의 코딩}\label{specific-advan} \begin{longtable}[]{@{}ccc@{}} \caption{\label{tab:specific-advan} 구획 모델별 특정 ADVAN의 종류}\tabularnewline -\toprule -& \textbf{IV} & \textbf{Extravascular}\tabularnewline -\midrule +\toprule\noalign{} +& \textbf{IV} & \textbf{Extravascular} \\ +\midrule\noalign{} \endfirsthead -\toprule -& \textbf{IV} & \textbf{Extravascular}\tabularnewline -\midrule +\toprule\noalign{} +& \textbf{IV} & \textbf{Extravascular} \\ +\midrule\noalign{} \endhead -1-Compartment & ADVAN1 & ADVAN2\tabularnewline -2-Compartment & ADVAN3 & ADVAN4\tabularnewline -3-Compartment & ADVAN11 & ADVAN12\tabularnewline -\bottomrule +\bottomrule\noalign{} +\endlastfoot +1-Compartment & ADVAN1 & ADVAN2 \\ +2-Compartment & ADVAN3 & ADVAN4 \\ +3-Compartment & ADVAN11 & ADVAN12 \\ \end{longtable} @@ -1579,7 +1591,7 @@ \chapter{특수 ADVAN을 이용한 제어구문의 코딩}\label{specific-advan} -TRANS는 각 모델에 상응하는 특정 파라미터를 알려주는 서브루틴인데, ADVAN1 TRANS1은 정맥투여 1구획 모델의 구조를 설명하기 위해, 파라미터 K를 사용하겠다는 의미이고, ADVAN1 TRANS2는 같은 모델 구조에 K대신 CL, V의 파라미터를 사용하여 설명하겠다는 의미이다. 1구획 모델(ADVAN 1, 2)에서는 TRANS2를, 2구획 모델(ADVAN 3, 4)에서는 TRANS4를 주로 사용하며, ADVAN 1\textasciitilde4에서 사용하는 TRANS 서브루틴을 표 \ref{tab:required-param-subroutine}에서 확인할 수 있다. 추가로, 각 ADVAN에서 필수적인 파라미터들과 TRANS와의 관계는 NONMEM User Guide - Part V의 Appendix 1, 2에 잘 설명되어 있고, 그중 ADVAN 1\textasciitilde4 까지의 내용을 표 \ref{tab:standard-pk-models}에서 확인할 수 있다. (Beal \protect\hyperlink{ref-nonmem}{2018})\index{ADVAN1}\index{S1}\index{TRANS}\index{TRANS2} +TRANS는 각 모델에 상응하는 특정 파라미터를 알려주는 서브루틴인데, ADVAN1 TRANS1은 정맥투여 1구획 모델의 구조를 설명하기 위해, 파라미터 K를 사용하겠다는 의미이고, ADVAN1 TRANS2는 같은 모델 구조에 K대신 CL, V의 파라미터를 사용하여 설명하겠다는 의미이다. 1구획 모델(ADVAN 1, 2)에서는 TRANS2를, 2구획 모델(ADVAN 3, 4)에서는 TRANS4를 주로 사용하며, ADVAN 1\textasciitilde4에서 사용하는 TRANS 서브루틴을 표 \ref{tab:required-param-subroutine}에서 확인할 수 있다. 추가로, 각 ADVAN에서 필수적인 파라미터들과 TRANS와의 관계는 NONMEM User Guide - Part V의 Appendix 1, 2에 잘 설명되어 있고, 그중 ADVAN 1\textasciitilde4 까지의 내용을 표 \ref{tab:standard-pk-models}에서 확인할 수 있다. (\citeproc{ref-nonmem}{Beal 2018})\index{ADVAN1}\index{S1}\index{TRANS}\index{TRANS2} \index{ADVAN1} \index{ADVAN2} @@ -1591,17 +1603,17 @@ \chapter{특수 ADVAN을 이용한 제어구문의 코딩}\label{specific-advan} \caption{\label{tab:required-param-subroutine}ADVAN과 TRANS 서브루틴 조합에 따른 필수 파라미터} \centering -\begin{tabular}[t]{>{\bfseries}lll} +\begin{tabular}[t]{>{}lll} \toprule ADVAN subroutine & TRANS subroutine & Required parameters\\ \midrule & TRANS1 & K\\ -\multirow[t]{-2}{*}{\raggedright\arraybackslash ADVAN1} & TRANS2 & CL, V\\ +\multirow[t]{-2}{*}{\raggedright\arraybackslash \textbf{ADVAN1}} & TRANS2 & CL, V\\ \cmidrule{1-3} & TRANS1 & K, KA\\ -\multirow[t]{-2}{*}{\raggedright\arraybackslash ADVAN2} & TRANS2 & CL, V, KA\\ +\multirow[t]{-2}{*}{\raggedright\arraybackslash \textbf{ADVAN2}} & TRANS2 & CL, V, KA\\ \cmidrule{1-3} & TRANS1 & K, K12, K21\\ @@ -1611,7 +1623,7 @@ \chapter{특수 ADVAN을 이용한 제어구문의 코딩}\label{specific-advan} & TRANS5 & AOB, ALPHA, BETA\\ -\multirow[t]{-5}{*}{\raggedright\arraybackslash ADVAN3} & TRANS6 & ALPHA, BETA, K21\\ +\multirow[t]{-5}{*}{\raggedright\arraybackslash \textbf{ADVAN3}} & TRANS6 & ALPHA, BETA, K21\\ \cmidrule{1-3} & TRANS1 & K, K23, K32, KA\\ @@ -1621,7 +1633,7 @@ \chapter{특수 ADVAN을 이용한 제어구문의 코딩}\label{specific-advan} & TRANS5 & AOB, ALPHA, BETA, KA\\ -\multirow[t]{-5}{*}{\raggedright\arraybackslash ADVAN4} & TRANS6 & ALPHA, BETA, K32, KA\\ +\multirow[t]{-5}{*}{\raggedright\arraybackslash \textbf{ADVAN4}} & TRANS6 & ALPHA, BETA, K32, KA\\ \bottomrule \end{tabular} \end{table} @@ -1697,7 +1709,7 @@ \chapter{특수 ADVAN을 이용한 제어구문의 코딩}\label{specific-advan} \end{tabular} \end{table} -ADVAN과 TRANS 서브루틴 조합에서 상기에 설명한 필수 파라미터 외에 다양한 부가적인 파라미터를 정의할 수 있는데, 여기에는 흡수지연시간, 생체이용률, 0차흡수의 속도, 기간 등이 있다. 모든 부가 파라미터에는 파라미터 이름 뒤에 숫자가 나오며, 이는 그 파라미터가 적용되는 구획을 표시한다. 해당 내용은 표 \ref{tab:additional-param}에 간략히 설명하였으며 NONMEM User Guide - Part V의 Appendix 1 및 Part VI - Chapter VII에 자세히 설명되어 있다. (Beal \protect\hyperlink{ref-nonmem}{2018})\index{TRANS} +ADVAN과 TRANS 서브루틴 조합에서 상기에 설명한 필수 파라미터 외에 다양한 부가적인 파라미터를 정의할 수 있는데, 여기에는 흡수지연시간, 생체이용률, 0차흡수의 속도, 기간 등이 있다. 모든 부가 파라미터에는 파라미터 이름 뒤에 숫자가 나오며, 이는 그 파라미터가 적용되는 구획을 표시한다. 해당 내용은 표 \ref{tab:additional-param}에 간략히 설명하였으며 NONMEM User Guide - Part V의 Appendix 1 및 Part VI - Chapter VII에 자세히 설명되어 있다. (\citeproc{ref-nonmem}{Beal 2018})\index{TRANS} \index{ALAG} \begin{table} @@ -1717,11 +1729,12 @@ \chapter{특수 ADVAN을 이용한 제어구문의 코딩}\label{specific-advan} \end{tabular} \end{table} -앞서 언급된 ADVAN \& TRANS 서브루틴 및 필수/부가 파라미터를 실제 제어구문의 예를 들어 간략히 설명하고자 한다. \$SUBROUTINES 문법은 아래 예시와 같이 쓸 수 있는데 이는 정맥 외 투여 1차 흡수, 2구획 모델이며 CL, V2, V3, Q, Ka의 파라미터를 사용하여 설명하겠다는 의미이다. \$PK block에는 \$SUBROUTINES에서 사용하고자 하는 약동학 파라미터들을 정의하는 곳으로 \texttt{CL\ =\ THETA(1)\ *\ EXP(ETA(1))} 와 같은 형식으로 표기할 수도 있고, 아래 예시와 같이 표기할 수도 있다. 아래 예시처럼 표기하게 되면 추후 공변량에 대한 수식을 만들게 될 때, 보다 수월하게 작성할 수 있는데, 공변량은 THETA에 수식을 붙이는 형태이기 때문이다. 이는 \protect\hyperlink{covariate-analysis}{11장 공변량 분석}에서 다뤄진다.\index{\$PK}\index{\$SUBROUTINE}\index{TRANS} +앞서 언급된 ADVAN \& TRANS 서브루틴 및 필수/부가 파라미터를 실제 제어구문의 예를 들어 간략히 설명하고자 한다. \$SUBROUTINES 문법은 아래 예시와 같이 쓸 수 있는데 이는 정맥 외 투여 1차 흡수, 2구획 모델이며 CL, V2, V3, Q, Ka의 파라미터를 사용하여 설명하겠다는 의미이다. \$PK block에는 \$SUBROUTINES에서 사용하고자 하는 약동학 파라미터들을 정의하는 곳으로 \texttt{CL\ =\ THETA(1)\ *\ EXP(ETA(1))} 와 같은 형식으로 표기할 수도 있고, 아래 예시와 같이 표기할 수도 있다. 아래 예시처럼 표기하게 되면 추후 공변량에 대한 수식을 만들게 될 때, 보다 수월하게 작성할 수 있는데, 공변량은 THETA에 수식을 붙이는 형태이기 때문이다. 이는 \hyperref[covariate-analysis]{11장 공변량 분석}에서 다뤄진다.\index{\$PK}\index{\$SUBROUTINE}\index{TRANS} \begin{example} -\protect\hypertarget{exm:code-example-advan4}{}{\label{exm:code-example-advan4} }공변량 수식 작성에 수월한 제어구문 +\protect\hypertarget{exm:code-example-advan4}{}\label{exm:code-example-advan4}공변량 수식 작성에 수월한 제어구문 \end{example} + \vspace{-5ex} \begin{Shaded} @@ -1733,13 +1746,13 @@ \chapter{특수 ADVAN을 이용한 제어구문의 코딩}\label{specific-advan} \NormalTok{ TVV3 = THETA(}\DecValTok{3}\NormalTok{)} \NormalTok{ TVQ = THETA(}\DecValTok{4}\NormalTok{)} \NormalTok{ TVKA = THETA(}\DecValTok{5}\NormalTok{)} -\NormalTok{ CL = TVCL }\KeywordTok{*}\NormalTok{ EXP(ETA(}\DecValTok{1}\NormalTok{))} -\NormalTok{ V2 = TVV2 }\KeywordTok{*}\NormalTok{ EXP(ETA(}\DecValTok{2}\NormalTok{))} -\NormalTok{ V3 = TVV3 }\KeywordTok{*}\NormalTok{ EXP(ETA(}\DecValTok{3}\NormalTok{))} -\NormalTok{ Q = TVQ }\KeywordTok{*}\NormalTok{ EXP(ETA(}\DecValTok{4}\NormalTok{))} -\NormalTok{ KA = TVKA }\KeywordTok{*}\NormalTok{ EXP(ETA(}\DecValTok{5}\NormalTok{))} +\NormalTok{ CL = TVCL }\OtherTok{*}\NormalTok{ EXP(ETA(}\DecValTok{1}\NormalTok{))} +\NormalTok{ V2 = TVV2 }\OtherTok{*}\NormalTok{ EXP(ETA(}\DecValTok{2}\NormalTok{))} +\NormalTok{ V3 = TVV3 }\OtherTok{*}\NormalTok{ EXP(ETA(}\DecValTok{3}\NormalTok{))} +\NormalTok{ Q = TVQ }\OtherTok{*}\NormalTok{ EXP(ETA(}\DecValTok{4}\NormalTok{))} +\NormalTok{ KA = TVKA }\OtherTok{*}\NormalTok{ EXP(ETA(}\DecValTok{5}\NormalTok{))} -\NormalTok{ ALAG1= THETA(}\DecValTok{6}\NormalTok{) }\KeywordTok{*}\NormalTok{ EXP(ETA(}\DecValTok{6}\NormalTok{))} +\NormalTok{ ALAG1= THETA(}\DecValTok{6}\NormalTok{) }\OtherTok{*}\NormalTok{ EXP(ETA(}\DecValTok{6}\NormalTok{))} \NormalTok{ S2 = V2 / }\DecValTok{1000} \end{Highlighting} \end{Shaded} @@ -1767,8 +1780,9 @@ \chapter{특수 ADVAN을 이용한 제어구문의 코딩}\label{specific-advan} EXP(ETA(7)) 이와 같이 표기하면 된다. F 뒤에는 보통 저장구획의 번호를 붙이는데, 여기서는 저장구획이 1구획이니 F1을 사용하면 된다. IV 데이터는 없고 PO 데이터의 용량군이 여러 개라면 아래처럼 하나의 용량군을 1로 고정하고, 다른 용량군의 THETA를 다르게 주어 상대생체이용률을 구할 수 있다. (코드 \ref{exm:code-if})\index{저장구획 / depot compartment}\index{depot compartment / 저장구획}\index{F1} \begin{example} -\protect\hypertarget{exm:code-if}{}{\label{exm:code-if} }상대생체이용률을 위한 제어구문 +\protect\hypertarget{exm:code-if}{}\label{exm:code-if}상대생체이용률을 위한 제어구문 \end{example} + \vspace{-5ex} \begin{Shaded} @@ -1779,7 +1793,7 @@ \chapter{특수 ADVAN을 이용한 제어구문의 코딩}\label{specific-advan} \end{Highlighting} \end{Shaded} -척도 파라미터(S)는, 쉽게 얘기하면 투여한 용량과 약물농도 사이의 단위를 통일시켜주는 파라미터로, 일반적으로 S 뒤에 약물농도가 관찰되는 구획(일반적으로는 중심구획)의 번호를 써주게 되며, ADVAN1, 3에서는 S1을 ADVAN2, 4에서는 S2를 사용하면 된다. 기본적으로 NONMEM에서 분포용적의 단위는 L, 투여 용량의 단위는 mg인데, 투여 용량의 단위가 mg이고 관찰된 농도의 단위가 mg/L인 경우 S2 = V2 라고 표기하면 된다. 하지만, 농도의 단위가 μg/L (= ng/mL)인 경우 투여 용량의 단위(mg)와 농도에서 용량의 단위(μg)가 불일치하게 된다. Concentration (μg/L) = Amount (mg) / Volume(L) 의 식에서 생각해 볼 때, 양의 단위를 μg으로 변환하면 단위가 일치하게 되는데, 이렇게 하기 위해서는 데이터셋의 AMT 에 1,000을 곱해주면 된다. 같은 맥락으로 분포용적(여기서는 V2)을 1,000으로 나누면 동일한 상황이 되는데, 이를 적용하려면, 제어구문에서 위의 예시와 같이 S2 = V2 / 1000을 써주면 된다. ADVAN별 부가 파라미터에 대한 구체적인 설명은 NONMEM User Guide - Part VI 및 표 \ref{tab:basic-additional}를 참고하도록 하자. (Beal \protect\hyperlink{ref-nonmem}{2018})\index{척도 파라미터 / scaling parameter}\index{scaling parameter / 척도 파라미터}\index{scaling parameter / 척도 파라미터}\index{ADVAN1}\index{ADVAN2}\index{AMT}\index{S1} +척도 파라미터(S)는, 쉽게 얘기하면 투여한 용량과 약물농도 사이의 단위를 통일시켜주는 파라미터로, 일반적으로 S 뒤에 약물농도가 관찰되는 구획(일반적으로는 중심구획)의 번호를 써주게 되며, ADVAN1, 3에서는 S1을 ADVAN2, 4에서는 S2를 사용하면 된다. 기본적으로 NONMEM에서 분포용적의 단위는 L, 투여 용량의 단위는 mg인데, 투여 용량의 단위가 mg이고 관찰된 농도의 단위가 mg/L인 경우 S2 = V2 라고 표기하면 된다. 하지만, 농도의 단위가 μg/L (= ng/mL)인 경우 투여 용량의 단위(mg)와 농도에서 용량의 단위(μg)가 불일치하게 된다. Concentration (μg/L) = Amount (mg) / Volume(L) 의 식에서 생각해 볼 때, 양의 단위를 μg으로 변환하면 단위가 일치하게 되는데, 이렇게 하기 위해서는 데이터셋의 AMT 에 1,000을 곱해주면 된다. 같은 맥락으로 분포용적(여기서는 V2)을 1,000으로 나누면 동일한 상황이 되는데, 이를 적용하려면, 제어구문에서 위의 예시와 같이 S2 = V2 / 1000을 써주면 된다. ADVAN별 부가 파라미터에 대한 구체적인 설명은 NONMEM User Guide - Part VI 및 표 \ref{tab:basic-additional}를 참고하도록 하자. (\citeproc{ref-nonmem}{Beal 2018})\index{척도 파라미터 / scaling parameter}\index{scaling parameter / 척도 파라미터}\index{scaling parameter / 척도 파라미터}\index{ADVAN1}\index{ADVAN2}\index{AMT}\index{S1} \footnotesize @@ -1866,8 +1880,7 @@ \chapter{특수 ADVAN을 이용한 제어구문의 코딩}\label{specific-advan} \normalsize -\hypertarget{general-advan}{% -\chapter{일반 ADVAN을 이용한 제어구문의 코딩}\label{general-advan}} +\chapter{일반 ADVAN을 이용한 제어구문의 코딩}\label{general-advan} \Large\hfill @@ -1897,8 +1910,7 @@ \chapter{일반 ADVAN을 이용한 제어구문의 코딩}\label{general-advan}} \end{tabular} \end{table} -\hypertarget{uxc77cuxbc18-uxc120uxd615-advan}{% -\section{일반 선형 ADVAN}\label{uxc77cuxbc18-uxc120uxd615-advan}} +\section{일반 선형 ADVAN}\label{uxc77cuxbc18-uxc120uxd615-advan} @@ -1917,7 +1929,7 @@ \section{일반 선형 ADVAN}\label{uxc77cuxbc18-uxc120uxd615-advan}} \begin{table} -\caption{\label{tab:advan-lin-property}일반 선형 ADVAN 의 종류 및 특징 (Beal \protect\hyperlink{ref-nonmem}{2018})} +\caption{\label{tab:advan-lin-property}일반 선형 ADVAN 의 종류 및 특징 (\citeproc{ref-nonmem}{Beal 2018})} \centering \begin{tabular}[t]{>{\raggedright\arraybackslash}p{2cm}>{\raggedright\arraybackslash}p{5cm}>{\raggedright\arraybackslash}p{5cm}} \toprule @@ -1947,8 +1959,7 @@ \section{일반 선형 ADVAN}\label{uxc77cuxbc18-uxc120uxd615-advan}} 일반 선형 ADVAN의 코드를 보면 \$SUBROUTINE 구문을 통해 어떤 ADVAN을 사용할 지 설정한 후, \$MODEL 구문에서 모델에서 사용할 구획의 수와 특성을 정의한다. 특수 ADVAN 과 달리 999개까지 사용자가 원하는 만큼 구획의 수를 설정할 수 있다. \$PK구문을 이용하여 각 구획 간 물질의 이동 관계를 설정하고 약동학 파라미터(ex CL, V)와의 관계도 정의할 수 있다.\index{특수 ADVAN / specific ADVANs}\index{specific ADVANs / 특수 ADVAN}\index{specific ADVANs / 특수 ADVAN}\index{\$MODEL}\index{\$PK}\index{\$SUBROUTINE} -\hypertarget{uxc77cuxbc18-uxbe44uxc120uxd615-advan}{% -\section{일반 비선형 ADVAN}\label{uxc77cuxbc18-uxbe44uxc120uxd615-advan}} +\section{일반 비선형 ADVAN}\label{uxc77cuxbc18-uxbe44uxc120uxd615-advan} @@ -1965,7 +1976,7 @@ \section{일반 비선형 ADVAN}\label{uxc77cuxbc18-uxbe44uxc120uxd615-advan}} \begin{table} -\caption{\label{tab:advan-6-8}일반 비선형 ADVAN 의 종류 및 특징 (Bonate \protect\hyperlink{ref-bonate}{2011})} +\caption{\label{tab:advan-6-8}일반 비선형 ADVAN 의 종류 및 특징 (\citeproc{ref-bonate}{Bonate 2011})} \centering \begin{tabular}[t]{>{\raggedright\arraybackslash}p{1.5cm}>{\raggedright\arraybackslash}p{5cm}>{\raggedright\arraybackslash}p{5cm}} \toprule @@ -1996,7 +2007,7 @@ \section{일반 비선형 ADVAN}\label{uxc77cuxbc18-uxbe44uxc120uxd615-advan}} 비선형 ADVAN을 사용할 경우, \$SUBROUTINE 구문에 적용할 ADVAN(ex. ADVAN 6 or 8)을 지정한 후, \texttt{TOL} 이라는 명령어를 추가해야 한다. \texttt{TOL} 은 tolerance 의 약자로, 각 구획의 내부값(질량, 농도, 효과) 계산에 필요한 숫자의 정확한 자릿수(NRD, number of required digits)를 의미하며, 일반적으로 \$ESTIMATION 구문에 설정하는 SIG 값보다 1 또는 2 큰 숫자로 설정한다.\index{tolerance / 허용치}\index{tolerance / 허용치}\index{\$ESTIMATION (\$EST)}\index{\$SUBROUTINE}\index{TOL} -\$MODEL 구문에서는 일반 선형 ADVAN 과 동일하게 모델에서 사용할 구획의 수와 특성을 정의한다. DEPOT, CENTRAL, PERI 는 사용자가 임의로 써주는 명칭인 반면, default name 이라고 불리는 DEFDOSE, DEFOBS 는 NONMEM 에 정의되어 있는 특정한 의미를 지닌 용어이다. DEFDOSE 와 DEFOBS 는 각각 용량과 관찰값을 배정한 기본구획으로 정의한다. 구획을 정의하는 데이터 항목(CMT)이 데이터셋에 포함되어 있지 않을 때 이러한 기본구획들을 정의할 필요가 있으며, 데이터셋의 CMT 를 사용할 경우에는 생략할 수 있다. DEFDOSE 를 입력하지 않을 경우, ``DEPOT'' 으로 지정된 첫째 구획에 용량이 투여된 것으로 NONMEM 이 인식하며, ``DEPOT''을 지정하지 않는 다면, 여러 구획 중 첫째 구획에 용량이 투여된 것으로 인식한다. 마찬가지로 DEFOBS 를 입력하지 않을 경우 ``CENTRAL'' 로 지정된 첫째 구획에 관찰값이 배정된 것으로 NONMEM 이 인식을 하며, ``CENTRAL'' 을 지정하지 않는 다면, 여러 구획 중 첫째 구획에 관찰값이 배정된 것으로 인식한다 (Beal \protect\hyperlink{ref-nonmem}{2018}). 데이터셋에 CMT 항목을 만들고, DEFDOSE 와 DEFOBS 를 데이터셋과 반대로 설정하더라도, NONMEM 은 데이터셋에 지정된 대로, 용량과 관찰값을 인식한다. 따라서 데이터셋에 정확히 용량과 관찰값의 구획을 지정해주는 것이 중요하다.\index{\$MODEL}\index{CMT}\index{DEFDOS}\index{DEFOBS}\index{FO} +\$MODEL 구문에서는 일반 선형 ADVAN 과 동일하게 모델에서 사용할 구획의 수와 특성을 정의한다. DEPOT, CENTRAL, PERI 는 사용자가 임의로 써주는 명칭인 반면, default name 이라고 불리는 DEFDOSE, DEFOBS 는 NONMEM 에 정의되어 있는 특정한 의미를 지닌 용어이다. DEFDOSE 와 DEFOBS 는 각각 용량과 관찰값을 배정한 기본구획으로 정의한다. 구획을 정의하는 데이터 항목(CMT)이 데이터셋에 포함되어 있지 않을 때 이러한 기본구획들을 정의할 필요가 있으며, 데이터셋의 CMT 를 사용할 경우에는 생략할 수 있다. DEFDOSE 를 입력하지 않을 경우, ``DEPOT'' 으로 지정된 첫째 구획에 용량이 투여된 것으로 NONMEM 이 인식하며, ``DEPOT''을 지정하지 않는 다면, 여러 구획 중 첫째 구획에 용량이 투여된 것으로 인식한다. 마찬가지로 DEFOBS 를 입력하지 않을 경우 ``CENTRAL'' 로 지정된 첫째 구획에 관찰값이 배정된 것으로 NONMEM 이 인식을 하며, ``CENTRAL'' 을 지정하지 않는 다면, 여러 구획 중 첫째 구획에 관찰값이 배정된 것으로 인식한다 (\citeproc{ref-nonmem}{Beal 2018}). 데이터셋에 CMT 항목을 만들고, DEFDOSE 와 DEFOBS 를 데이터셋과 반대로 설정하더라도, NONMEM 은 데이터셋에 지정된 대로, 용량과 관찰값을 인식한다. 따라서 데이터셋에 정확히 용량과 관찰값의 구획을 지정해주는 것이 중요하다.\index{\$MODEL}\index{CMT}\index{DEFDOS}\index{DEFOBS}\index{FO} 마지막으로, 사용자가 의도한 각 구획 간의 물질 이동 상태에 맞게 \$DES에 미분 방정식을 작성하면 된다. 미분 방정식의 각 식은 DADT(i)로 나타내며, 여기서 i는 해당 구획의 번호이다. 예를 들어 1번 구획에서 약이 1차 속도로 제거되는 것은 \texttt{DADT(1)=\ -KA\ *\ A(1)}으로 나타낼 수 있다. 여기에서 A(1)은 구획 1에서의 시간에 따라 변한다고 가정한 내부값(약의 양)을 의미한다. \$DES 구문 안에서 시간 의존적인 파라미터를 추정할 경우, 시간 변수는 \texttt{T} 로 표현하여야 하며 이는 데이터셋에 주어진 이산형의 시간(TIME)과 다른 연속변수를 의미한다.\index{\$DES}\index{DADT(i)}\index{TIME} \begin{equation} @@ -2029,8 +2040,9 @@ \section{일반 비선형 ADVAN}\label{uxc77cuxbc18-uxbe44uxc120uxd615-advan}} \end{figure} \begin{example} -\protect\hypertarget{exm:advan5-example}{}{\label{exm:advan5-example} }2구획 경구모델을 ADVAN5로 구현한 코드 예시\index{ADVAN5} +\protect\hypertarget{exm:advan5-example}{}\label{exm:advan5-example}2구획 경구모델을 ADVAN5로 구현한 코드 예시\index{ADVAN5} \end{example} + \vspace{-5ex} \begin{Shaded} @@ -2060,8 +2072,9 @@ \section{일반 비선형 ADVAN}\label{uxc77cuxbc18-uxbe44uxc120uxd615-advan}} 동일한 2구획 경구모델(그림 \ref{fig:2comp-oral})을 일반 선형(ADVAN5, 코드 \ref{exm:advan5-example}) 및 비선형(ADVAN6, 코드 \ref{exm:advan6-example}) ADVAN 코드를 이용하여 추정할 수 있다. 일반 선형 ADVAN은 비선형 ADVAN에 비하여 더 간단하게 코드를 작성할 수 있으며, 비선형 ADVAN은 좀 더 다양한 형태의 약물 동태에 적용할 수 있는 장점이 있으나, \$SUBROUTINE 구문에 TOL 명령어를 작성하고 \$DES에 각 구획의 물질 이동을 설명하는 미분방정식을 작성하여야 한다.\index{\$DES}\index{\$SUBROUTINE}\index{ADVAN5}\index{ADVAN6}\index{TOL} \begin{example} -\protect\hypertarget{exm:advan6-example}{}{\label{exm:advan6-example} }2구획 경구모델을 ADVAN6로 구현한 코드 예시\index{ADVAN6} +\protect\hypertarget{exm:advan6-example}{}\label{exm:advan6-example}2구획 경구모델을 ADVAN6로 구현한 코드 예시\index{ADVAN6} \end{example} + \vspace{-5ex} \begin{Shaded} @@ -2083,7 +2096,7 @@ \section{일반 비선형 ADVAN}\label{uxc77cuxbc18-uxbe44uxc120uxd615-advan}} \NormalTok{ K23= Q/V2} \NormalTok{ K32= Q/V3} \DataTypeTok{$DES}\NormalTok{ ; Define differential equations} -\NormalTok{ DADT(}\DecValTok{1}\NormalTok{) = }\KeywordTok{{-}A}\NormalTok{(}\DecValTok{1}\NormalTok{)}\DataTypeTok{*KA} +\NormalTok{ DADT(}\DecValTok{1}\NormalTok{) = }\OtherTok{{-}A}\NormalTok{(}\DecValTok{1}\NormalTok{)}\DataTypeTok{*KA} \NormalTok{ DADT(}\DecValTok{2}\NormalTok{) = A(}\DecValTok{1}\NormalTok{)}\DataTypeTok{*KA}\NormalTok{ {-} A(}\DecValTok{2}\NormalTok{)*(K23+K20) + A(}\DecValTok{3}\NormalTok{)}\DataTypeTok{*K32} \NormalTok{ DADT(}\DecValTok{3}\NormalTok{) = A(}\DecValTok{2}\NormalTok{)}\DataTypeTok{*K23}\NormalTok{ {-} A(}\DecValTok{3}\NormalTok{)}\DataTypeTok{*K32} \DataTypeTok{$ERROR} @@ -2091,30 +2104,26 @@ \section{일반 비선형 ADVAN}\label{uxc77cuxbc18-uxbe44uxc120uxd615-advan}} \end{Highlighting} \end{Shaded} -\hypertarget{newer-advan}{% -\chapter{기타 ADVAN}\label{newer-advan}} +\chapter{기타 ADVAN}\label{newer-advan} \Large\hfill 임동석 \normalsize -\hypertarget{advan9---general-nonlinear-model-with-equilibrium-compartments}{% -\section{ADVAN9 - General Nonlinear Model with Equilibrium Compartments}\label{advan9---general-nonlinear-model-with-equilibrium-compartments}} +\section{ADVAN9 - General Nonlinear Model with Equilibrium Compartments}\label{advan9---general-nonlinear-model-with-equilibrium-compartments} \index{ADVAN9} -ADVAN9는 ADVAN6와 같은 상황에서 쓸 수 있는 또 다른 ADVAN으로 ADVAN6보다 좀 더 robust 한 방법으로 주장되고 있으나 이는 상황 별로 달라서 어떤 것이 낫다고 할 수는 없다. Holford가 제안한 하나의 방법은 \$EST 에서 MAXEVAL=0로 한 후 ADVAN6와 9을 각기 돌려보고 둘 중 소요시간이 짧은 것을 선택하여 쓰는 것이다. (Holford \protect\hyperlink{ref-nickholford}{2010})\index{\$ESTIMATION (\$EST)}\index{ADVAN6}\index{ADVAN9}\index{MAXEVAL}\index{MAXEVAL=0} +ADVAN9는 ADVAN6와 같은 상황에서 쓸 수 있는 또 다른 ADVAN으로 ADVAN6보다 좀 더 robust 한 방법으로 주장되고 있으나 이는 상황 별로 달라서 어떤 것이 낫다고 할 수는 없다. Holford가 제안한 하나의 방법은 \$EST 에서 MAXEVAL=0로 한 후 ADVAN6와 9을 각기 돌려보고 둘 중 소요시간이 짧은 것을 선택하여 쓰는 것이다. (\citeproc{ref-nickholford}{Holford 2010})\index{\$ESTIMATION (\$EST)}\index{ADVAN6}\index{ADVAN9}\index{MAXEVAL}\index{MAXEVAL=0} -\hypertarget{advan10---one-compartment-model-with-michaelis-menten-elimination}{% -\section{ADVAN10 - One Compartment Model with Michaelis-Menten Elimination}\label{advan10---one-compartment-model-with-michaelis-menten-elimination}} +\section{ADVAN10 - One Compartment Model with Michaelis-Menten Elimination}\label{advan10---one-compartment-model-with-michaelis-menten-elimination} \index{ADVAN1}\index{ADVAN10} 1분획 모델로서 정맥주입하는 약물의 Michaelis-Menten 제거 모델을 사용할 경우 ADVAN10을 쓰면 되는데, 실제 모델링에서 쓰이는 사례는 매우 드물다. Michaelis-Menten 과 같은 제거 모델이 필요할 경우 ADVAN6에서 수식으로 구현하는 것이 다른 제거모델과의 비교나 분포분획의 숫자,흡수 모델 등에 있어서 훨씬 유연한 방법이기 때문이다.\index{ADVAN1}\index{ADVAN6}\index{ADVAN10} -\hypertarget{advan11uxacfc-12---three-compartment-linear-model-iv-and-first-order-absorption}{% -\section{ADVAN11과 12 - Three Compartment Linear Model (IV and First Order Absorption)}\label{advan11uxacfc-12---three-compartment-linear-model-iv-and-first-order-absorption}} +\section{ADVAN11과 12 - Three Compartment Linear Model (IV and First Order Absorption)}\label{advan11uxacfc-12---three-compartment-linear-model-iv-and-first-order-absorption} \index{ADVAN1}\index{ADVAN11} @@ -2133,15 +2142,13 @@ \section{ADVAN11과 12 - Three Compartment Linear Model (IV and First Order Abso \caption{ADVAN11(위)과 ADVAN12(아래)의 모델 구조와 micro constants의 이름들}\label{fig:advan1112} \end{figure} -\hypertarget{advan13---general-nonlinear-model-using-lsoda}{% -\section{ADVAN13 - General Nonlinear Model using LSODA}\label{advan13---general-nonlinear-model-using-lsoda}} +\section{ADVAN13 - General Nonlinear Model using LSODA}\label{advan13---general-nonlinear-model-using-lsoda} \index{ADVAN1}\index{ADVAN13} NONMEM 7.12 버전에 추가된 SUBROUTINE으로서 LSODA라는 기법을 사용하여 stiff, nonstiff 미분방정식을 풀어준다. 보통의 ESTIMATION 방식에서는 별 이점이 없으나 좀 더 많은 계산을 필요로 하는 방식들(MCMC, BAYESIAN, IMP MAP)을 쓸 때 속도가 빨라진다고 알려져 있다.\index{BAYES} -\hypertarget{PRED}{% -\chapter{\$PRED: ADVAN을 쓰지 않는 코딩}\label{PRED}} +\chapter{\$PRED: ADVAN을 쓰지 않는 코딩}\label{PRED} \index{\$PRED}\index{PRED} @@ -2150,8 +2157,7 @@ \chapter{\$PRED: ADVAN을 쓰지 않는 코딩}\label{PRED}} 임동석 \normalsize -\hypertarget{preduxc640-predpp-libraryuxc0acuxc6a9uxd560-uxb54cuxc758-uxcc28uxc774}{% -\section{\$PRED와 PREDPP library사용할 때의 차이}\label{preduxc640-predpp-libraryuxc0acuxc6a9uxd560-uxb54cuxc758-uxcc28uxc774}} +\section{\$PRED와 PREDPP library사용할 때의 차이}\label{preduxc640-predpp-libraryuxc0acuxc6a9uxd560-uxb54cuxc758-uxcc28uxc774} \index{\$PRED}\index{PRED}\index{PREDPP} @@ -2185,39 +2191,38 @@ \section{\$PRED와 PREDPP library사용할 때의 차이}\label{preduxc640-predp 미분방정식으로 각 분획간의 물질이동의 식만 주면 알아서 각 분획 별 물질의 양을 구해주는 \$DES와는 달리 \$PRED를 쓸 경우 우리가 얻고자 하는 값(예컨데 특정 분획에서의 약물 농도)을 라플라스 변환을 이용하든지 하여 수식으로 풀어서 넣어 주어야 한다.\index{\$DES}\index{\$PRED}\index{PRED} -\hypertarget{preduxb97c-uxc368uxc57c-uxd558uxb294-uxacbduxc6b0}{% -\section{\$PRED를 써야 하는 경우}\label{preduxb97c-uxc368uxc57c-uxd558uxb294-uxacbduxc6b0}} +\section{\$PRED를 써야 하는 경우}\label{preduxb97c-uxc368uxc57c-uxd558uxb294-uxacbduxc6b0} \index{\$PRED}\index{PRED} 편리한 ADVAN들이 이미 여러 가지가 나와 있는데 똑같은 모델을 굳이 복잡한 수식을 풀어서 열거하는 \$PRED로 처리해야 할 필요는 없다. 그러나 지금까지 나와 있는 PREDPP의 ADVAN들 만으로 표현할 수 없는 모델을 써야 할 경우는 자주 있다. PK/PD 모델들 역시 ADVAN만으로 처리할 수 있는 것들도 있으나 그 성격이 다양하여 연구자가 직접 모델을 만들어 테스트해야 하는 경우도 많다. (코드 \ref{exm:formula})\index{\$PRED}\index{PRED}\index{PREDPP} \begin{example} -\protect\hypertarget{exm:formula}{}{\label{exm:formula} }약력학 모델과 같이 다양한 수식들을 써야 하는 경우 ADVAN 보다는 \$PRED 블록 안에서 수식을 직접 적어주는 것이 편리하다.\index{\$PRED}\index{PRED} +\protect\hypertarget{exm:formula}{}\label{exm:formula}약력학 모델과 같이 다양한 수식들을 써야 하는 경우 ADVAN 보다는 \$PRED 블록 안에서 수식을 직접 적어주는 것이 편리하다.\index{\$PRED}\index{PRED} \end{example} + \vspace{-5ex} \begin{Shaded} \begin{Highlighting}[] \DataTypeTok{$PROB}\NormalTok{ Sigmoidal PD Model} -\DataTypeTok{$DATA}\NormalTok{ ..}\KeywordTok{/}\OtherTok{sigmoidal\_effect.csv IGNORE=@} +\DataTypeTok{$DATA}\NormalTok{ ..}\OtherTok{/sigmoidal\_effect.csv IGNORE=@} \DataTypeTok{$INPUT}\OtherTok{ ID CP RESP=DV} \DataTypeTok{$PRED} -\NormalTok{ E0=THETA(}\DecValTok{1}\NormalTok{) ; Baseline} -\NormalTok{ EMAX=THETA(}\DecValTok{2}\NormalTok{) ; Max Effect} -\NormalTok{ C50=THETA(}\DecValTok{3}\NormalTok{)}\DataTypeTok{*EXP}\NormalTok{(ETA(}\DecValTok{1}\NormalTok{)) ; C50} -\NormalTok{ ; only parameter with interindividual variability} -\NormalTok{ GAM=THETA(}\DecValTok{4}\NormalTok{) ; Gamma} -\NormalTok{ ; }\KeywordTok{do} \KeywordTok{not}\NormalTok{ add an ETA to this {-} very hard to fit} -\NormalTok{ IPRD=E0+(EMAX{-}E0)}\DataTypeTok{*CP}\NormalTok{*}\DataTypeTok{*GAM}\NormalTok{/(CP*}\DataTypeTok{*GAM}\NormalTok{+C50*}\DataTypeTok{*GAM}\NormalTok{)} +\OtherTok{ E0=THETA}\CharTok{(}\OtherTok{1}\CharTok{)}\OtherTok{ ; Baseline} +\OtherTok{ EMAX=THETA}\CharTok{(}\OtherTok{2}\CharTok{)}\OtherTok{ ; Max Effect} +\OtherTok{ C50=THETA}\CharTok{(}\OtherTok{3}\CharTok{)*}\OtherTok{EXP}\CharTok{(}\OtherTok{ETA}\CharTok{(}\OtherTok{1}\CharTok{))}\OtherTok{ ; C50} +\OtherTok{ ; only parameter with interindividual variability} +\OtherTok{ GAM=THETA}\CharTok{(}\OtherTok{4}\CharTok{)}\OtherTok{ ; Gamma} +\OtherTok{ ; do not add an ETA to this {-} very hard to fit} +\OtherTok{ IPRD=E0}\CharTok{+(}\OtherTok{EMAX{-}E0}\CharTok{)*}\OtherTok{CP}\CharTok{**}\OtherTok{GAM/}\NormalTok{(CP*}\DataTypeTok{*GAM}\NormalTok{+C50*}\DataTypeTok{*GAM}\NormalTok{)} \NormalTok{ Y=IPRD+EPS(}\DecValTok{1}\NormalTok{)} \DataTypeTok{$THETA} \NormalTok{...} \end{Highlighting} \end{Shaded} -\hypertarget{IE}{% -\chapter{초기추정값}\label{IE}} +\chapter{초기추정값}\label{IE} \Large\hfill @@ -2230,10 +2235,9 @@ \chapter{초기추정값}\label{IE}} IE은 단순한 값들의 집합(파라미터의 개수에 대응하는)이 아니라 모델의 구조와 그러한 구조를 구성하는 요소인 파라미터의 값의 추정을 위해 반드시 요구되는 출발점이다. 그러기에 IE을 적절히 선택하기 위해서는 NONMEM의 추정 알고리즘에 대한 지식과 함께 모델을 해석할 수 있는 수준의 약동-약력학 지식이 필수적으로 요구된다. 실제로 초보자가 이러한 모든 지식을 온전히 이해하고 IE을 적용하는 것은 거의 불가능하지만, 본 문서에서 다루는 내용 정도에 준해 IE의 기본적인 사항을 이해한다면, IE을 무작위로 혹은 부적절하게 선택함으로 인해 발생하는 FPE의 오류를 어느 정도 피할 수 있을 것으로 생각되며, 이를 통해 불필요한 시간 낭비를 줄일 수 있을 것이다. -\hypertarget{IE-role}{% -\section{초기 추정값의 의미와 역할}\label{IE-role}} +\section{초기 추정값의 의미와 역할}\label{IE-role} -NM-TRAN 제어구문을 작성할 때에는 여러 파라미터에 대한 IE을 반드시 선택하여 입력하여야 한다. 여기에서 파라미터라 함은 일반적인 약동-약력학 파라미터와는 다른 모델의 파라미터를 의미하는데, 제어구문의 기초적 내용에서 다뤄지는 THETA(\emph{θ}), OMEGA(\emph{ω}), SIGMA(\emph{σ})가 그것이다. 모델의 구조에 따라, 하나의 약동-약력학 파라미터는 각각 1개의 \emph{θ}, \emph{ω}에 대응될 수도 있고, 2개 이상의 모델 파라미터를 이용하여 표현될 수도 있다. 또한, 잔차 모델의 특성에 따라 1개 혹은 2개 이상의 \emph{σ}가 필요할 수도 있다. 중요한 것은 IE이 `약동-약력학 파라미터 별'로 결정되는 것이 아니라 `모델 파라미터 별'로 결정되어야 한다는 것이다. 따라서, 제어구문 작성 시에는 모델에 포함된 \emph{θ}, \emph{ω}, \emph{σ}의 개수 총합에 해당하는 수의 IE이 필요하게 된다.\index{잔차 / residual error}\index{residual error / 잔차}\index{NM-TRAN 제어구문 / NM-TRAN control stream}\index{NM-TRAN control stream / NM-TRAN 제어구문}\index{NM-TRAN control stream / NM-TRAN 제어구문}\index{NM-TRAN} +NM-TRAN 제어구문을 작성할 때에는 여러 파라미터에 대한 IE을 반드시 선택하여 입력하여야 한다. 여기에서 파라미터라 함은 일반적인 약동-약력학 파라미터와는 다른 모델의 파라미터를 의미하는데, 제어구문의 기초적 내용에서 다뤄지는 THETA(\emph{θ}), OMEGA(\emph{ω}), SIGMA(\emph{σ})가 그것이다. 모델의 구조에 따라, 하나의 약동-약력학 파라미터는 각각 1개의 \emph{θ}, \emph{ω}에 대응될 수도 있고, 2개 이상의 모델 파라미터를 이용하여 표현될 수도 있다. 또한, 잔차 모델의 특성에 따라 1개 혹은 2개 이상의 \emph{σ}가 필요할 수도 있다. 중요한 것은 IE이 '약동-약력학 파라미터 별'로 결정되는 것이 아니라 '모델 파라미터 별'로 결정되어야 한다는 것이다. 따라서, 제어구문 작성 시에는 모델에 포함된 \emph{θ}, \emph{ω}, \emph{σ}의 개수 총합에 해당하는 수의 IE이 필요하게 된다.\index{잔차 / residual error}\index{residual error / 잔차}\index{NM-TRAN 제어구문 / NM-TRAN control stream}\index{NM-TRAN control stream / NM-TRAN 제어구문}\index{NM-TRAN control stream / NM-TRAN 제어구문}\index{NM-TRAN} IE이 필요한 이유는 NONMEM이 파라미터 추정을 위해 Newton-Raphson 방법과 유사한 접근 방식(quasi-Newton-type minimization algorithm)을 사용한다는 것이다. 이 방법의 구체적인 내용을 여기에 다루지 않으나, 이것이 특정한 출발점에서부터 시작하여 NONMEM의 목적함수 값을 최소화(관측값의 발생가능성을 최대로 한다는 것과 동일한 의미임 - NONMEM의 추정 방법 관련 내용 참고)하는 파라미터 값들의 조합을 찾아가는 방법이라는 것만은 이해하여야 한다. 다시 말해, NONMEM의 추정이라는 것은 목적함수값을 최소화하는 파라미터 값들의 조합을 찾는 것이며, 이 때의 파라미터 값을 FPE을 최소화된 목적함수값과 함께 보고해 주는 것이다. 따라서, NONMEM은 각각의 파라미터에 대해 추정을 시작할 수 있는 시작점을 필요로 하게 되고, 이것이 사용자가 제어구문에 각 파라미터 별로 IE을 입력해 주어야 하는 유일하면서도 불가피한 이유인 것이다.\index{목적함수 / objective function}\index{objective function / 목적함수} @@ -2272,8 +2276,7 @@ \section{초기 추정값의 의미와 역할}\label{IE-role}} 이러한 과정의 핵심은 파라미터 값의 업데이트이며, 이러한 업데이트 과정을 1회 거치는 것을 1회의 iteration이라고 지칭한다. 물론 NONMEM의 목적함수는 파라미터가 여러 개이며, 함수의 형태 자체도 복잡하므로, 실제 추정작업을 이처럼 단순한 함수 관계로 나타내기는 어렵다. 그러나 기본적인 원리는 이와 유사하기 때문에 이 정도 이해만으로도 충분히 초기값이 파라미터 추정에서 어떠한 역할을 하는지는 파악할 수 있을 것이다.\index{목적함수 / objective function}\index{iteration / 되풀이}\index{objective function / 목적함수} -\hypertarget{uxc65c-uxc88buxc740-uxcd08uxae30uxcd94uxc815uxac12uxc744-uxc120uxd0dduxd574uxc57c-uxd558uxb294uxac00}{% -\section{왜 좋은 초기추정값을 선택해야 하는가?}\label{uxc65c-uxc88buxc740-uxcd08uxae30uxcd94uxc815uxac12uxc744-uxc120uxd0dduxd574uxc57c-uxd558uxb294uxac00}} +\section{왜 좋은 초기추정값을 선택해야 하는가?}\label{uxc65c-uxc88buxc740-uxcd08uxae30uxcd94uxc815uxac12uxc744-uxc120uxd0dduxd574uxc57c-uxd558uxb294uxac00} \ref{IE-role}에서 다룬 바만으로도 IE을 실제 최종 추정값으로부터 먼 값으로 줄수록 추정에 시간이 더 많이 걸릴 것이라는 정도는 이해할 수 있다. 보다 더 여러 번의 iteration이 필요할 것이기 때문이다. 그러나 이는 잘못된 IE이 발생시킬 수 있는 사소한 문제에 지나지 않는다. 더욱 중요한 문제는 IE을 잘못 선택했을 때, 잘못된 최종 추정값을 얻을 수 있다는 것이다. \ref{IE-role}의 내용을 제대로 이해한 독자라면 Newton-Raphson 방법이나 그 유사 방법이 찾는 것은 ``극값''이라는 점을 알 수 있을 것이다. 엄밀히 말하면 제시한 IE으로부터 가장 가까운 곳에 있는 극값을 의미한다. 문제는 대부분의 약동-약력학 데이터 분석의 상황에서 목적함수의 형태가 단순한 형태가 아니며 따라서 그러한 함수가 여러 개의 극값을 가질 수 있다는 것이다. 아래의 단순화된 사례를 확인해 보자. 이 사례는 Peter L. Bonate가 지은 Pharmacokinetic-pharmacodynamic modeling and simulation 중 Nonlinear models and regression 절에 소개되어 있다.\index{목적함수 / objective function}\index{iteration / 되풀이}\index{objective function / 목적함수}\index{simulation / 시뮬레이션} \begin{equation} @@ -2294,7 +2297,7 @@ \section{왜 좋은 초기추정값을 선택해야 하는가?}\label{uxc65c-uxc \begin{table} -\caption{\label{tab:final-destination}초기값에 따른 최종 도달지점의 변화 (Han, Jeon, and Yim \protect\hyperlink{ref-han2016tips}{2016})} +\caption{\label{tab:final-destination}초기값에 따른 최종 도달지점의 변화 (\citeproc{ref-han2016tips}{Han, Jeon, and Yim 2016})} \centering \begin{tabular}[t]{llrrr} \toprule @@ -2328,17 +2331,15 @@ \section{왜 좋은 초기추정값을 선택해야 하는가?}\label{uxc65c-uxc 이 사례에서 초기값을 0.70으로 선택하면 Newton--Raphson 방법에 의해 추정되는 극값은 x가 1.00일 때이다. 그러나 이 값은 전체 함수의 실제 최소값이 아닌 극값(local minima)이므로, 극값의 위치를 찾았다 하더라고 실제 최소값을 찾는 데에는 실패한 것이다. 최소값에 해당하는 극값의 위치를 정확히 추정하기 위해서는 그러한 위치에 보다 가까운 초기값을 선택해야 한다. 이에 따라, 초기값을 1.60으로 잡았을 때, 그 최종 추정 지점이 3.00으로서 실제 최소값에 해당하는 극값의 위치(global minima)가 된다. 많은 PK-PD 모델링 시에도 마찬가지로, 각 파라미터가 가질 수 있는 타당한 값에 가까운 값을 초기값으로 선택하여야 적절한 FPE를 얻을 수 있을 것이다. 모델이 간단하거나, 모델을 지지하는 데이터의 양이 많은 경우에는, 비교적 덜 정확한 IE 값을 지정하더라도 안정적으로 최적의 FPE를 찾을 수 있는 경우가 있지만, 이러한 경우라도 모델링을 수행하는 전문가는 각 파라미터의 의미와 설명하려고 하는 데이터의 관계를 정확하게 파악하여 가급적 예상되는 FPE에 근접한 값을 사용하는 것이 추천된다. -\hypertarget{fixed-random-meaning}{% -\section{고정효과, 임의효과 파라미터의 의미와 초기추정값의 지정}\label{fixed-random-meaning}} +\section{고정효과, 임의효과 파라미터의 의미와 초기추정값의 지정}\label{fixed-random-meaning} \index{임의효과 / random-effect}\index{random-effect / 임의효과} 집단 내 약동-약력학 파라미터의 분포를 설명할 때에는, 각 파라미터 별로 두 개의 특성을 제시해야 한다. 하나는 집단의 대표값이며, 다른 하나는 그러한 대표값과 각 개인 파라미터의 차이(변이)가 얼마나 큰가를 나타내는 값(분산, 표준편차 등)이다. 집단의 대표값은 THETA (\emph{θ})를 사용하여 정의되며, 이는 해당 인구집단에 속한 개인이라면 이 대표값과 유사한 파라미터 값을 가져야 함을 의미한다. 따라서, 이 값은 고정효과(각 개인 혹은 측정값에 따라 달라지지 않는 값)로 처리된다. \emph{θ}에 대한 IE는 \$THETA 블록에 제시하며, \emph{θ}의 개수보다 적은 수의 값을 지정하면 NONMEM은 에러 메시지를 출력하고 실행되지 않는다. 각 파라미터의 개인 간 변이(between-subject variability, BSV)의 크기를 설명하는 값은 ω\textsuperscript{2}을 이용하여 표현된다. BSV와 관련된 내용은 제어구문을 처음 배우는 사람이 가장 혼란스러워 하는 부분이기도 한데, 이는 THETA와 달리 ω\textsuperscript{2}이라는 용어가 모델의 구조를 표현하는 부분에서는 전혀 등장하지 않기 때문이다. 모델의 구조에서는 하나의 파라미터에 대해 집단의 대표값과 각 개인 값 간의 편차를 ETA (\emph{η})를 이용하여 표현한다. 예를 들면, \emph{P}\textsubscript{ij} = \emph{θ}\textsubscript{i} + \emph{η}\textsubscript{ij} (\emph{P}\textsubscript{ij}는 j번째 개인의 파라미터 값)와 같은 형태이다. 즉, 대상자 별로 다른 \emph{η} 값을 부여함으로써, 개인 별로 서로 다른 파라미터 값을 만들어 내는 것이다. 중요한 것은 이러한 편차의 원인이 모델에 제시되지 않기 때문에 이 \emph{η}는 임의효과로 처리된다는 것이다. NONMEM에서 임의효과를 나타내는 값들은 공통적으로 특정한 분포를 갖는다. 임의효과는 말 그대로 임의적 효과이며, 따라서, 한 집단에서 이러한 효과가 어느 한 방향(양 또는 음)으로 치우쳐 나타나지 않는다.(특정한 방향으로 치우치는 변인이 있다면 이는 임의효과로 처리할 수 없음) 따라서, 모든 \emph{η}의 평균은 0이다. 이 원리를 이용해 \emph{P}\textsubscript{ij} = \emph{θ}\textsubscript{i} + \emph{η}\textsubscript{ij}와 같은 구조에서 집단의 대표값이 \emph{θ}값이 될 수 있는 것이다. 또한, \emph{θ}값은 단순히 하나의 값이기 때문에, 결국 \emph{η}\textsubscript{ij}의 변이가 \emph{P}\textsubscript{ij}의 변이를 대변하게 된다. 이러한 상황에서 사용자가 지정할 수 있는 초기값은 이 변이의 크기를 나타내는 값이며, 이 값이 바로 \emph{ω}\textsubscript{i}\textsuperscript{2}으로 \emph{η\textsubscript{ij}}의 분산을 뜻한다. 즉, \emph{η}\textsubscript{ij} \textasciitilde{} N(0, \emph{ω}\textsubscript{i2})이며, 모델 구조를 표현할 때는 \emph{η}\textsubscript{ij}를 사용하여 관계를 정의하지만, 이에 대해 실제로 지정해야 하는 IE는 \emph{η}\textsubscript{ij}에 해당하는 \emph{ω}\textsubscript{i}\textsuperscript{2}인 것이다. 이 값은 \$OMEGA 블록에 제시하며, 사용된 \emph{η}의 개수보다 적은 수의 값을 지정하면 NONMEM은 에러 메시지를 출력하고 실행되지 않는다.\index{임의효과 / random-effect}\index{random-effect / 임의효과}\index{\$OMEGA}\index{\$THETA} -이상의 내용에서 각 개인에서 표준적인 시간-농도 또는 시간-효과 관계(모델 예측값)를 만들어 내기 위한 두 개의 파라미터를 살펴보았다. 구조 모델은 한 집단 내에서 모든 대상자에게 공통으로 적용되는 사항이므로, 이 구조 모델을 구성하는 파라미터의 값들을 개인 별로 다르게 지정함으로써, 각 개인마다 다른 모델 예측값을 얻을 수 있는 것이다. 그러나 아직 해결되지 않은 문제는 각 시간에 얻어진 모델의 예측값과 관측값 간의 편차를 어떻게 정의할 것인가이다. 위의 내용을 잘 이해한 독자라면, 이를 임의효과로 처리해야 한다는 것 역시 알 수 있을 것이다. 이 편차 역시 측정 오류, 분석 기기의 정밀도 한계 또는 일시적인 신체의 변화 등 예측 불가능한 원인으로 발생하는 것이기 때문이다. 일반적으로 `잔차(residual error)'라는 용어가 이를 뜻하며, 개인 간 변이와 마찬가지로 모델 자체에서는 EPSILON (EPS, \emph{ε})을 이용하여 모델의 예측값과 관측값 간의 관계를 정의하고, IE로서는 그 분산인 σ\textsuperscript{2}의 값을 제시한다. 구조 모델과는 달리, 이러한 잔차 모델은 \$ERROR 블록 내에 Y = F + \emph{ε}\textsubscript{1} (Y는 관측값, F는 모델 예측값) 등의 형태로 제시하고, IE는 \$SIGMA block에 제시한다. 앞의 식에서 보이는 바와 같이, 이 잔차 모델은 개인 별로 다르게 적용되는 것이 아니며, 집단의 모든 관측값에 대해 공통적으로 적용되는 사항이다. 즉, 모든 관측값은 각각의 \emph{ε} 값을 가지게 되면, σ\textsuperscript{2}값은 모든 관측값에서 확인된 잔차의 분산이 된다. 경우에 따라서는 Y = F · (1 + \emph{ε}\textsubscript{1}) + \emph{ε}\textsubscript{2}와 같이 두 개 이상의 \emph{ε} 을 사용할 수도 있다.\index{임의효과 / random-effect}\index{random-effect / 임의효과}\index{잔차 / residual error}\index{residual error / 잔차}\index{\$ERROR}\index{\$SIGMA} +이상의 내용에서 각 개인에서 표준적인 시간-농도 또는 시간-효과 관계(모델 예측값)를 만들어 내기 위한 두 개의 파라미터를 살펴보았다. 구조 모델은 한 집단 내에서 모든 대상자에게 공통으로 적용되는 사항이므로, 이 구조 모델을 구성하는 파라미터의 값들을 개인 별로 다르게 지정함으로써, 각 개인마다 다른 모델 예측값을 얻을 수 있는 것이다. 그러나 아직 해결되지 않은 문제는 각 시간에 얻어진 모델의 예측값과 관측값 간의 편차를 어떻게 정의할 것인가이다. 위의 내용을 잘 이해한 독자라면, 이를 임의효과로 처리해야 한다는 것 역시 알 수 있을 것이다. 이 편차 역시 측정 오류, 분석 기기의 정밀도 한계 또는 일시적인 신체의 변화 등 예측 불가능한 원인으로 발생하는 것이기 때문이다. 일반적으로 '잔차(residual error)'라는 용어가 이를 뜻하며, 개인 간 변이와 마찬가지로 모델 자체에서는 EPSILON (EPS, \emph{ε})을 이용하여 모델의 예측값과 관측값 간의 관계를 정의하고, IE로서는 그 분산인 σ\textsuperscript{2}의 값을 제시한다. 구조 모델과는 달리, 이러한 잔차 모델은 \$ERROR 블록 내에 Y = F + \emph{ε}\textsubscript{1} (Y는 관측값, F는 모델 예측값) 등의 형태로 제시하고, IE는 \$SIGMA block에 제시한다. 앞의 식에서 보이는 바와 같이, 이 잔차 모델은 개인 별로 다르게 적용되는 것이 아니며, 집단의 모든 관측값에 대해 공통적으로 적용되는 사항이다. 즉, 모든 관측값은 각각의 \emph{ε} 값을 가지게 되면, σ\textsuperscript{2}값은 모든 관측값에서 확인된 잔차의 분산이 된다. 경우에 따라서는 Y = F · (1 + \emph{ε}\textsubscript{1}) + \emph{ε}\textsubscript{2}와 같이 두 개 이상의 \emph{ε} 을 사용할 수도 있다.\index{임의효과 / random-effect}\index{random-effect / 임의효과}\index{잔차 / residual error}\index{residual error / 잔차}\index{\$ERROR}\index{\$SIGMA} -\hypertarget{thetauxc758-uxcd08uxae30uxcd94uxc815uxac12-uxc9c0uxc815}{% -\section{THETA의 초기추정값 지정}\label{thetauxc758-uxcd08uxae30uxcd94uxc815uxac12-uxc9c0uxc815}} +\section{THETA의 초기추정값 지정}\label{thetauxc758-uxcd08uxae30uxcd94uxc815uxac12-uxc9c0uxc815} 일반적으로 IE 정확성이 문제가 되는 것은 주로 고정효과 파라미터(\emph{θ})이다. 집단 약동-약력학 분석에서 1차적인 관심사는 집단의 대표적인 약동-약력학 파라미터 값을 추정하는 것이기 때문이다. 또한, 임의효과 파라미터에 대해 IE를 제시하는 것은 추정의 시작점을 제시한다기보다는 해당 파라미터의 추정을 허용한다는 의미가 더 큰 것이며(뒤에 추가로 설명함), 실제로는 고정효과 파라미터의 IE가 이러한 시작점 역할을 하기에 IE가 적절치 않을 때 위 \ref{fixed-random-meaning}에서 제시한 문제를 유발하는 것도 고정효과 파라미터라고 보는 것이 옳다.\index{임의효과 / random-effect}\index{random-effect / 임의효과} @@ -2372,32 +2373,28 @@ \section{THETA의 초기추정값 지정}\label{thetauxc758-uxcd08uxae30uxcd94ux \label{eq:twocompmodel} \end{equation} -많은 약동-약력학 모델에 대해 유사한 방법으로 IE 값을 얻는 전략이 Gabrielsson과 Weiner의 Pharmacokinetic and Pharmacodynamic Data Analysis, 5th ed.~중 `Chapter 2. Pharmacokinetic Concepts', `Chapter 3. Pharmacodynamic Concepts'에 잘 정리되어 있으므로 이를 읽어보기를 추천한다. (Gabrielsson \protect\hyperlink{ref-gabrielsson}{2006}) +많은 약동-약력학 모델에 대해 유사한 방법으로 IE 값을 얻는 전략이 Gabrielsson과 Weiner의 Pharmacokinetic and Pharmacodynamic Data Analysis, 5th ed.~중 `Chapter 2. Pharmacokinetic Concepts', 'Chapter 3. Pharmacodynamic Concepts'에 잘 정리되어 있으므로 이를 읽어보기를 추천한다. (\citeproc{ref-gabrielsson}{Gabrielsson 2006}) 또한, 집단의 대표값과 각 개인 파라미터 값의 관계를 어떻게 설정했는가에 따라 \emph{θ}의 값은 약간씩 달라질 수 있는데, 예를 들어 개인 간 변이를 가법적으로 설정한 경우(\emph{P}\textsubscript{ij} = \emph{θ}\textsubscript{i} + \emph{η}\textsubscript{ij})에 \emph{θ} 값은 해당 파라미터의 집단 평균값에 가까워질 것이며, 이를 지수적으로 설정했다면(\emph{P}\textsubscript{ij} = \emph{θ}\textsubscript{i} · EXP(\emph{η}\textsubscript{ij})), \emph{θ} 값은 중앙값에 가까워질 것이다. 이러한 맥락에서 모델링을 수행하는 사람이라면 본인이 작성한 제어구문의 구조가 파라미터 추정값에 어떠한 영향을 미치는가를 이해할 수 있어야 한다고 하겠다. 특히, 공변량 관계가 적용된 모델에서는 공변량 효과 역시 고정 효과로써 반영이 되므로 공변량이 적용되는 파라미터에는 1개 이상의 \emph{θ}가 추가되며, 이는 기존에 THETA 하나를 이용하여 집단의 대표값을 설명하는 경우와는 다른 고려가 필요하다. 예를 들어, 집단의 분포용적 대표값이 100 L일 때, 이를 \emph{θ} 하나로 표현하면 그 값이 그대로 100 L/hr이겠으나, V = \emph{θ}\textsubscript{1}*WT + \emph{θ}\textsubscript{2} (WT는 체중)라는 구조로 표현한다면, \emph{θ}\textsubscript{1}의 값은 100을 WT의 평균으로 나눈 값과 유사한 값이 될 것이므로, 이를 반영하여 IE를 설정해 주어야 할 것이다. -\hypertarget{omegauxc758-uxcd08uxae30uxcd94uxc815uxac12-uxc9c0uxc815}{% -\section{OMEGA의 초기추정값 지정}\label{omegauxc758-uxcd08uxae30uxcd94uxc815uxac12-uxc9c0uxc815}} +\section{OMEGA의 초기추정값 지정}\label{omegauxc758-uxcd08uxae30uxcd94uxc815uxac12-uxc9c0uxc815} 파라미터의 개인 간 변이의 크기는 NONMEM을 이용하여 추정을 수행하기 전에는 정확히 어느 정도인지를 가늠해 보기가 쉽지 않다. 또한, ω\textsuperscript{2}와 같은 임의효과의 IE를 조금 부정확하게 지정했다고 해서 \emph{θ}에서와 같이 시작점이 크게 어긋나는 문제가 발생할 가능성은 적기 때문에, FPE와 근접한 IE 값을 설정하기 위해서 two-stage method와 같은 다른 집단분석방법을 별도로 수행하는 것 역시 효율적이지는 않다. 따라서, 실제 모델링 과정에서는 ω\textsuperscript{2}의 IE는 어느 정도 타당한 값(지수적 관계의 개인 간 변이 구조에서는 0.01-0.1 정도)으로서 일괄 지정하는 경우가 많다. 그리고 IE 값 자체의 중요성이 상대적으로 떨어지기 때문에, 오히려 IE를 지정했는가 아니면 이를 0으로 고정하였는가의 여부가 더 중요하게 생각된다. 모델링 초기에는 \emph{θ}의 추정에 집중하는 경향이 있기 때문에 IE를 지정하지 않고, 대부분의 ω\textsuperscript{2}를 0으로 고정한 상태로 모델링이 진행되며, 이후 중요성이 높은 ETA에 대해 IE를 지정하여 ω\textsuperscript{2}를 추정하거나, 모든 ω\textsuperscript{2}의 추정을 동시에 허용한 후 ω\textsuperscript{2}가 잘 추정되지 않는 ETA에 대해서는 이를 다시 0으로 고정하는 방법을 사용하기도 한다.\index{임의효과 / random-effect}\index{random-effect / 임의효과} 특정한 run에서 신뢰성 있게 추정된 ω\textsuperscript{2} 값이 있다면, 이 값을 다음 run의 IE로 사용하는 것도 좋은 접근일 수 있다. 앞서 언급한 바(0.01-0.1)와 같이 정보가 부족한 IE를 주기보다는, 이미 추정된 값을 IE로 제시하는 것이 NONMEM 실행에 훨씬 도움이 되기 때문이다. 다만, 추정을 허용하는 ω\textsuperscript{2}의 개수가 증가할수록 관찰값의 개인 간 변이를 설명할 수 있는 방법이 많아지는 것이기 때문에 일반적으로 이전에 추정되었던 ω\textsuperscript{2}의 값이 감소하는 경향을 보인다는 점은 이 과정에서 고려해야 할 요소이다. 또한, 특정한 경우에는 상대적으로 큰 값의 IE를 제시하거나, 그러한 정도 FPE가 출력되었을 때에도 그것이 타당하다고 보아야 하는 때가 있는데, 흡수속도상수나 약력학 파라미터와 같이 일반적인 disposition 파라미터에 비해 그 생리적인 변이 정도가 본래 큰 파라미터에 대한 ω\textsuperscript{2}이거나, 대상자 수가 적어 개인 간 변이의 정도가 과장되는 상황이 이에 속한다. 이와 더불어, 신장으로 제거되는 약물의 청소율과 분포용적 등 생리학적으로 비례 관계를 가질 수 있는 파라미터들에 대해서는 사전에 OMEGA BLOCK 등을 이용해 상관성을 반영해야 할 가능성을 염두에 두고 공분산에 대한 IE를 허용하는 것도 고려하며 모델링을 수행하는 것이 추천된다.\index{공분산 / covariance}\index{covariance / 공분산} -\hypertarget{sigmauxc758-uxcd08uxae30uxcd94uxc815uxac12-uxc9c0uxc815}{% -\section{SIGMA의 초기추정값 지정}\label{sigmauxc758-uxcd08uxae30uxcd94uxc815uxac12-uxc9c0uxc815}} +\section{SIGMA의 초기추정값 지정}\label{sigmauxc758-uxcd08uxae30uxcd94uxc815uxac12-uxc9c0uxc815} 각 파라미터에 대한 ω\textsuperscript{2}과는 달리 1개 이상의 σ\textsuperscript{2}에 대한 IE는 반드시 지정해야 한다. 개인 간 변이가 없는 모델은 있을 수 있지만 잔차가 없는 모델은 있을 수 없기 때문이다. ω\textsuperscript{2}에 대해서도 마찬가지이겠지만, σ\textsuperscript{2}의 IE를 지정할 때 반드시 고려해야 하는 것은 특정 σ\textsuperscript{2}에 상응하는 \emph{ε}이 어떻게 구조화되어 있는지이다. 만약, 잔차 모델이 Y = F + \emph{ε}\textsubscript{1}의 구조를 가진다면 잔차는 관측값에 가법적인 관계가 있으므로, 어느 정도 관측값의 크기를 고려하여 그 IE를 정해야 할 것이다. 만약, 관측값이 100-10,000, 정도의 값을 가진다면, σ\textsuperscript{2}의 값은 최소한 1,000 정도에서 시작하는 것이 옳을 것이다. 그러나, 관측값이 1-100 정도의 값을 가질 때, IE를 1,000으로 지정했다면, 잔차의 크기를 너무 크게 가정한 것이 되며, 이 경우 NONMEM은 잔차의 크기를 최대한 크게 만들면서, 각 파라미터의 값들을 정확하게 추정하지 못하는 방식으로 실행을 멈출 가능성이 크다. 또한, Y = F · (1 + \emph{ε}\textsubscript{1})의 형태로 잔차 모델을 정했다면, 이 경우 적절한 σ\textsuperscript{2}의 IE는 1 미만의 값이라고 볼 수 있다. 이 모델에서는 잔차가 예측값의 크기에 비례하여 정해지기 때문에, 관측값의 크기는 고려할 필요가 없다. Y = F · (1 + \emph{ε}\textsubscript{1}) + \emph{ε}\textsubscript{2}와 같이 잔차의 유형 두 가지를 동시에 쓰는 경우에도, 개별 \emph{ε}들은 동일한 특성을 유지한다. 따라서, \emph{ε}\textsubscript{1}은 비례적 잔차에 준해 IE를 제시해야 하며, \emph{ε}\textsubscript{2}는 가법적 잔차에 준해 IE를 제시하는 것이 바람직하다. 너무 큰 값의 IE를 허용하는 것은 앞서 언급한 이유로 추천되지는 않지만, 많은 전문가의 의견에 따르면, σ\textsuperscript{2}에 대해서는 상대적으로 작은 값의 IE로 추정을 시작하는 것보다, 비교적 큰 값의 IE로 추정을 시작할 때, NONMEM이 보다 쉽게 추정을 마무리하는 경향이 있다. 따라서, 타당성을 확보한 범위 내에서 가급적 큰 값의 IE를 허용하여 추정을 시작하는 것이 보다 효율적인 방법으로 생각된다.\index{잔차 / residual error}\index{residual error / 잔차} -\hypertarget{estimation-methods}{% -\chapter{파라미터 추정 방법 및 세팅}\label{estimation-methods}} +\chapter{파라미터 추정 방법 및 세팅}\label{estimation-methods} \Large\hfill 김정렬 \normalsize -\hypertarget{uxcd94uxc815-uxbc29uxbc95-uxbc0f-uxad00uxb828-uxc635uxc158}{% -\section{추정 방법 및 관련 옵션}\label{uxcd94uxc815-uxbc29uxbc95-uxbc0f-uxad00uxb828-uxc635uxc158}} +\section{추정 방법 및 관련 옵션}\label{uxcd94uxc815-uxbc29uxbc95-uxbc0f-uxad00uxb828-uxc635uxc158} \index{\$ESTIMATION (\$EST)}\index{MAXEVAL}\index{NOABORT}\index{SIGDIGITS (SIGDIG)} @@ -2409,22 +2406,19 @@ \section{추정 방법 및 관련 옵션}\label{uxcd94uxc815-uxbc29uxbc95-uxbc0f \$ESTIMATION 레코드에는 종종 위와 유사한 구문을 쓰게 되고, 이는 NONMEM으로 하여금 어떤 방식으로 파라미터를 추정하고 그 결과를 출력할 것인지에 대한 옵션을 제시하는 것이다. 이중에는 NONMEM이 실행되기 위해 반드시 정의되어야 하는 옵션이 있는 반면, 일부는 생략하더라도 사전에 정해진 값이 적용되어 아무런 문제없이 NONMEM을 실행할 수 있다.\index{\$ESTIMATION (\$EST)} -\hypertarget{noabort}{% -\subsection{NOABORT}\label{noabort}} +\subsection{NOABORT}\label{noabort} \index{NOABORT} NONMEM이 파라미터를 추정하는 동안 함수 계산을 하다 보면 계산이 불가능한 상황이 발생하기도 하며 이 경우 NONMEM은 더 이상 추정 과정을 실행하지 않고 그 상태로 중단된다. 지나치게 크거나 작은 값과 같이 적절하지 않은 초기 추정값이 지정되었거나 주어진 정보의 양에 비해 추정하고자 하는 파라미터가 지나치게 많을 때 종종 발생한다. 이때 NOABORT 옵션을 주면 NONMEM 자체의 기능을 통해 적절하게 값을 복구(recovery)함으로써 추정 과정을 계속하게 됨으로써 이런 상황을 일부 회피할 수 있다. 그러나 이 옵션만으로 모든 문제를 완벽하게 해결할 수 있는 것은 아니며, 개발한 모델 구조가 자료를 제대로 설명하지 못한다면 이 옵션을 사용했음에도 중단되는 경우가 많다.\index{NOABORT} -\hypertarget{maxeval}{% -\subsection{MAXEVAL}\label{maxeval}} +\subsection{MAXEVAL}\label{maxeval} \index{MAXEVAL} NONMEM이 목적함수 값(objective function value)을 계산하기 위해 지나치게 많은 추정을 반복하다 보면, 실행 속도가 느려질 뿐만 아니라 추정된 최종 파라미터가 지나치게 크거나 작은 값으로 나오는 등 부적절한 경우가 있다. 이때 목적함수 계산이 적절한 수준에 이르면 그만해도 좋다는 옵션을 MAXEVAL 값으로 줄 수 있다. 예를 들어 \texttt{MAXEVAL=10000}으로 정의하면, 10,000번 까지만 계산하고 더 이상 진행하지 않고 마지막 계산된 파라미터를 최종 값으로 확정하라는 의미이다. 통상의 NONMEM 결과에서 MAXEVAL 값은 자료량이 충분해 파라미터가 잘 추정되면 10번 이내인 경우도 있고, 추정 파라미터가 많고 모델이 복잡한 경우라도 100을 넘지 않기 경우가 많다. 따라서 10,000번 이상 계산해야 한다는 것은 부적절할 수 있으니 불필요한 계산을 지속하지 않도록 하는 것이다. 물론 자료가 매우 많고 파라미터 추정이 쉽지 않은 복잡한 모델이라면 계산을 지속할 수 있으니 지나치게 낮은 값으로 설정할 필요는 없다. 컴퓨터 성능이 떨어져 NONMEM 실행에 오랜 시간이 걸리던 과거에는 프로그램 실행 시간을 줄이고 효율적인 작업을 위해 해당 옵션이 필요했을 것으로 생각되지만, 현재 컴퓨터 성능이라면 시간이 오래 걸리지 않기 때문에 해당 옵션은 설정하지 않아도 될 것이다.\index{목적함수 / objective function}\index{objective function / 목적함수}\index{MAXEVAL} -\hypertarget{method}{% -\subsection{METHOD}\label{method}} +\subsection{METHOD}\label{method} NONMEM이 파라미터를 추정하는 방법은 METHOD 옵션으로 설정한다. 이중 First Order (FO) 방식은 \texttt{METHOD\ =\ FO} 또는 \texttt{METHOD\ =\ 0} 같이 설정하며, 이 값이 기본(default) 설정이므로 FO 방식을 적용하고자 한다면 생략해도 무방하다. 이 방식은 NONMEM이 파라미터를 추정할 때 근사하는 Taylor series 식에 이용되는 개별 η 값의 합을 0으로 가정하여 계산하는 방식을 말하며, 복잡한 계산식이 단순하게 되어 파라미터 추정을 빠르게 할 수 있는 장점이 있다. 그런데 계산이 빨라지는 대신 추정 파라미터에 비뚤림(bias)이 발생하게 되므로, 각 파라미터의 대략의 값을 추정하고자 한다면 FO 방식을 이용할 수 있다.\index{1차추정법 / first-order method(FO)}\index{first-order method(FO) / 1차추정법}\index{first-order method(FO) / 1차추정법}\index{FO} @@ -2449,20 +2443,17 @@ \subsection{METHOD}\label{method}} \index{1차 조건부 추정방법(FOCE) / first-order conditional estimation method(FOCE)}\index{first-order conditional estimation method(FOCE) / 1차 조건부 추정방법(FOCE)}\index{first-order conditional estimation method(FOCE) / 1차 조건부 추정방법(FOCE)}\index{FOCE}\index{FO} -\hypertarget{interaction}{% -\subsection{INTERACTION}\label{interaction}} +\subsection{INTERACTION}\label{interaction} \index{INTERACTION} 파라미터 추정 시 η와 ε 사이의 상호작용을 가정할 때 해당 옵션을 설정한다. 개체간 차이를 의미하는 η와 잔차인 ε 사이의 예상되는 상호작용을 무시하면 파라미터 추정 시 비뚤림이 발생하게 된다. 특히 Y = F * (1 + ε) 또는 Y = F * (1 + ε\textsubscript{1}) + ε\textsubscript{2} 같은 잔차 모델을 사용하는 경우 상호작용을 고려하는 것이 통계학적으로 적절하며, Y = F + ε와 같이 표현되는 잔차 모델에서는 이런 상호작용 설정이 파라미터 추정 결과와 무관한 것으로 알려져 있다.\index{잔차 / residual error}\index{residual error / 잔차} -\hypertarget{print}{% -\subsection{PRINT}\label{print}} +\subsection{PRINT}\label{print} NONMEM이 실행되면 파라미터를 추정하기 위해 되풀이(iteration)를 반복하게 되는데 그 중간 과정을 보여달라는 옵션이다. 이 옵션을 설정하지 않으면 처음에 시작한다는 문구가 뜬 후 바로 이어 최종 결과가 제시된다. 즉 중간에 어떤 과정으로 진행되었는지 알 수 없으며, 추정하는데 시간이 오래 걸리는 경우 제대로 실행되고 있는지 확인하기 어렵다. 그래서 중간중간 진행 과정을 확인하기 위해 해당 옵션을 이용할 수 있다. 예를 들어 10으로 설정하면 되풀이를 10번 할 때마다 중간 과정을 보여주기 때문에 이를 통해 각 파라미터가 어떤 값으로 수렴하는지 확인할 수 있다. 그런데 최근 컴퓨터는 계산을 빠르게 처리하기 때문에 중간 과정이 순식간에 지나가 실제 값을 확인하기 어려워 설정하는 의미가 없는 경우도 있다.\index{되풀이 / iteration}\index{iteration / 되풀이} -\hypertarget{nonmem-uxcd94uxc815}{% -\section{NONMEM 추정}\label{nonmem-uxcd94uxc815}} +\section{NONMEM 추정}\label{nonmem-uxcd94uxc815} NONMEM은 목적함수(objective function)를 최적화하는 방식으로 파라미터를 추정하게 되고, 이때 최적화된 목적함수 값(Objective Function Value, OFV)이 산출된다. 개발한 모델로부터 산출된 OFV는 가능도비 검정(Likelihood Ratio Test, LRT) 방법을 이용함으로써 보다 적절한 모델을 선정할 수도 있다. 여기 제시된 내용은 수학자가 아닌 이상 정확하게 이해하기는 쉽지 않지만, 개념적으로 간단히 도식화하면 그림 \ref{fig:obj}과 같다.\index{가능도 / likelihood}\index{가능도비 검정 / likelihood ratio test}\index{목적함수 / objective function}\index{likelihood / 가능도}\index{likelihood ratio test / 가능도비 검정}\index{objective function / 목적함수} @@ -2477,8 +2468,7 @@ \section{NONMEM 추정}\label{nonmem-uxcd94uxc815}} 일반적으로 우리는 주어진 자료를 설명하기 위해 다양한 파라미터가 포함된 모델을 개발하게 되고 이를 NONMEM으로 실행하게 될 것이다. 이때 NONMEM은 목적함수를 계산하게 되고 이 값이 최소화되는 파라미터 조합을 output 파일을 통해 제시한다. 어떤 형태로 목적함수를 설정하느냐에 따라 OLS, WLS, ELS 방법 여러 가지 방식들이 이용된다.\index{목적함수 / objective function}\index{objective function / 목적함수} -\hypertarget{ols-uxbc29uxc2dd}{% -\subsection{OLS 방식}\label{ols-uxbc29uxc2dd}} +\subsection{OLS 방식}\label{ols-uxbc29uxc2dd} OLS (ordinary least square) 방식은 단순 선형회귀(linear regression)를 하는 걸 말하며, 흔하게 사용된다. 이는 SAS, SPSS 등 통계 프로그램에서 사용하는 선형회귀 방식과 동일하다. 예를 들어 용량에\index{SS} @@ -2501,8 +2491,7 @@ \subsection{OLS 방식}\label{ols-uxbc29uxc2dd}} 그림 \ref{fig:OLS}에서와 같이 직선 형태의 1차 함수로 자료를 설명하는 경우, 모델은 기울기 및 y 절편의 두 개 파라미터를 갖게 되고 이 두 개 파라미터의 조합으로 다양한 직선이 그려지며 그로부터 각각 잔차제곱합이 산출될 것이다. 이중 기울기가 2.114이고 y 절편은 0.934인 파라미터 조합일 때 잔차제곱합이 가장 작게 되고, 이 값을 모델의 파라미터로 추정하는 방식이 OLS 방식이다.\index{기울기 / gradient}\index{gradient / 기울기}\index{잔차 / residual error}\index{residual error / 잔차} -\hypertarget{wls-uxbc29uxc2dd}{% -\subsection{WLS 방식}\label{wls-uxbc29uxc2dd}} +\subsection{WLS 방식}\label{wls-uxbc29uxc2dd} WLS (weighted least square) 방식은 관찰값별로 정해진 가중요소(weighting factor)를 주어\index{가중요소 / weighting factor(W)}\index{weighting factor(W) / 가중요소} 선형회귀를 한다는 점이 OLS와 다른 점이다. @@ -2515,8 +2504,7 @@ \subsection{WLS 방식}\label{wls-uxbc29uxc2dd}} 그런데 예측값이 아닌 관찰값 변이를 가중요소로 이용하면 관찰 자체에 따른 변이도 포함되어 가중요소 설정이 부정확할 수 있다. 모든 시점의 관찰값 변이가 유사하면서 작을 경우 파라미터 추정을 신뢰할 수 있지만, 관찰값 변이가 균등하지 않거나 전반적으로 크다면 일부 가중요소는 부적절하게 설정되며 이를 활용하여 산출한 파라미터의 신뢰도에 문제가 제기될 수 있다.\index{가중요소 / weighting factor(W)}\index{weighting factor(W) / 가중요소} -\hypertarget{els-uxbc29uxc2dd}{% -\subsection{ELS 방식}\label{els-uxbc29uxc2dd}} +\subsection{ELS 방식}\label{els-uxbc29uxc2dd} 관찰값 변이를 이용한 WLS 방식에서의 가중요소 설정 한계를 보완하기 위해 예측값 변이를 고려하는 것이 ELS (extended least square) 방식이다. 이 방식은 NONMEM에서 실제 활용하고 있는 것으로, 실행 시간은 오래 걸리지만 보다 정확한 값을 추정할 수 있는 것으로 알려져 있다.\index{가중요소 / weighting factor(W)}\index{weighting factor(W) / 가중요소} \begin{equation} @@ -2524,8 +2512,7 @@ \subsection{ELS 방식}\label{els-uxbc29uxc2dd}} \label{eq:els} \end{equation} -\hypertarget{likelihood}{% -\section{Likelihood}\label{likelihood}} +\section{Likelihood}\label{likelihood} 가능도(likelihood) 개념은 확률(probability)과 함께 이해하는 것이 좋다. 확률이라는 것은 파라미터 값이 주어졌을 때 아직 관찰되지 않은 결과를 예상할 때 사용한다. 즉, 앞면이 나올 가능성이 ½인 동전을 10번 던졌을 때 앞면이 몇 번 나올 것인지와 같은 물음에서 확률의 개념을 이해할 수 있다. 반면 가능도라는 것은 관찰된 결과를 알고 있는 상태에서 그런 결과가 예상되는 가능한 파라미터를 추정하는 것과 관련이 깊다. 앞서 예시를 응용하면, 동전을 10번 던져 앞면이 5번 나왔다는 사실에 근거할 때 동전의 앞면이 나올 확률은 ½일 가능성이 가장 높다고 말할 수 있다. 다시 말해 확률이 파라미터가 주어졌을 때 관찰값에 대한 함수라면, 가능도는 관찰값이 주어졌을 때 파라미터에 대한 함수로 볼 수 있다. 이런 이유로 가능도는 여러 추정 가능한 파라미터에 대한 분포 형태로 표현되며, 앞서 예시에서 실제 확률은 ½이 아닐 수도 있지만 ½일 가능성이 가장 높은, 즉 최대가능도(maximum likelihood) 값을 갖는 파라미터는 ½이라고 할 수 있다.\index{가능도 / likelihood}\index{likelihood / 가능도} @@ -2560,8 +2547,7 @@ \section{Likelihood}\label{likelihood}} 이처럼 가능도 식을 로그변환하여 -2를 곱하면 목적함수 계산식을 얻을 수 있고, 가능도를 최대로 한다는 건 목적함수 값을 최소로 한다는 것과 같은 의미로 해석됨을 알 수 있다.\index{가능도 / likelihood}\index{목적함수 / objective function}\index{likelihood / 가능도}\index{objective function / 목적함수} -\hypertarget{taylor-uxc804uxac1cuxc2dd}{% -\section{Taylor 전개식}\label{taylor-uxc804uxac1cuxc2dd}} +\section{Taylor 전개식}\label{taylor-uxc804uxac1cuxc2dd} \begin{equation} f(x) = \sum_{n = 0}^{\infty}\frac{f^{\left( n \right)}\left( \alpha \right)}{n!}{(x - \alpha)}^{n} @@ -2570,13 +2556,11 @@ \section{Taylor 전개식}\label{taylor-uxc804uxac1cuxc2dd}} 위 식은 미분가능한 함수를 다항식 형태로 변환한 것으로, 이런 변환을 통해 참값에 근사한 해를 구할 수 있다. 엄밀한 해를 구하기 위해서는 무한대 차수까지 모든 도함수의 합을 활용해야 하지만, NONMEM에서 FO 및 FOCE 방법으로 파라미터를 산출하는 경우 첫 번째 도함수만 활용하고 이후 도함수는 모두 무시하여 근사한 해를 구하고 Laplacian 방법에서는 두 번째 도함수까지 활용하여 해를 구한다.\index{1차 조건부 추정방법(FOCE) / first-order conditional estimation method(FOCE)}\index{1차추정법 / first-order method(FO)}\index{first-order conditional estimation method(FOCE) / 1차 조건부 추정방법(FOCE)}\index{first-order method(FO) / 1차추정법}\index{first-order conditional estimation method(FOCE) / 1차 조건부 추정방법(FOCE)}\index{first-order method(FO) / 1차추정법}\index{FOCE}\index{FO} -\hypertarget{likelihood-ratio-test}{% -\section{Likelihood Ratio Test}\label{likelihood-ratio-test}} +\section{Likelihood Ratio Test}\label{likelihood-ratio-test} 단순한 모델에 파라미터를 추가해 보다 복잡하게 만드는 등 하나의 모델이 다른 모델의 특수 형태인 서로 관련된 모델간 적합도를 비교하기 위해 가능도비를 검정한다. 각 모델에서 산출된 목적함수 값의 차이는 모델에서 사용된 파라미터 개수 차이를 자유도로 갖는 \emph{Χ}\textsubscript{2} 분포를 따른다는 특성을 이용한다. 즉 가능도를 로그변환한 것이 목적함수 형태로 표현되므로, 모델간 가능도비를 로그변환한다는 것은 목적함수 값의 차이를 의미한다. 이 목적함수 값의 차이와 해당 자유도에서의 \emph{Χ}\textsubscript{2} 분포 값을 비교함으로써 통계적으로 우수한 모델을 판정할 수 있다. 이때 비교하고자 하는 목적함수 값은 동일한 자료를 이용하여 동일한 잔차 형태를 가정한 모델로부터 산출된 것이어야 한다.\index{가능도 / likelihood}\index{목적함수 / objective function}\index{likelihood / 가능도}\index{objective function / 목적함수}\index{잔차 / residual error}\index{적합도 / goodness of fit}\index{residual error / 잔차}\index{goodness of fit / 적합도} -\hypertarget{use-of-xpose4}{% -\chapter{NONMEM 실행결과 해석 및 Xpose4 사용법}\label{use-of-xpose4}} +\chapter{NONMEM 실행결과 해석 및 Xpose4 사용법}\label{use-of-xpose4} \Large\hfill @@ -2629,7 +2613,7 @@ \chapter{NONMEM 실행결과 해석 및 Xpose4 사용법}\label{use-of-xpose4}} \caption{실행결과 파일의 185행-212행}\label{fig:image-04} \end{figure} -185행부터는 모델의 구조(ADVAN4)와 그 구조를 설명하기 위해 사용된 파라미터(TRANS4)에 대해 나와있으며, 195\textasciitilde200행에는 현재 모델 구조에서의 각 구획 별 설명이 나와있다. ADVAN4에서 `DOSE'에 대한 구획은 1구획, `OBSERVATION'은 2구획이 기본값으로 되어있으며, 1\textasciitilde3구획까지 모두 `DOSE'가 허용된다고 되어 있다(DOSE ALLOWED: YES). 이 때문에 정맥투여와 경구투여 데이터가 같이 있는 2구획 모델의 경우 ADVAN4를 사용하여 하나의 모델로 설명할 수 있는데, 이 때는 투여 경로를 명시해주어야 하므로 CMT를 데이터셋에 추가해야 한다. 표 \ref{tab:basic-data-format}와 같이, 경구투여인 경우 CMT를 1로, 정맥투여인 경우 CMT를 2로 주면 된다.\index{ADVAN4}\index{CMT}\index{TRANS} +185행부터는 모델의 구조(ADVAN4)와 그 구조를 설명하기 위해 사용된 파라미터(TRANS4)에 대해 나와있으며, 195\textasciitilde200행에는 현재 모델 구조에서의 각 구획 별 설명이 나와있다. ADVAN4에서 'DOSE'에 대한 구획은 1구획, 'OBSERVATION'은 2구획이 기본값으로 되어있으며, 1\textasciitilde3구획까지 모두 'DOSE'가 허용된다고 되어 있다(DOSE ALLOWED: YES). 이 때문에 정맥투여와 경구투여 데이터가 같이 있는 2구획 모델의 경우 ADVAN4를 사용하여 하나의 모델로 설명할 수 있는데, 이 때는 투여 경로를 명시해주어야 하므로 CMT를 데이터셋에 추가해야 한다. 표 \ref{tab:basic-data-format}와 같이, 경구투여인 경우 CMT를 1로, 정맥투여인 경우 CMT를 2로 주면 된다.\index{ADVAN4}\index{CMT}\index{TRANS} \index{CMT} @@ -2717,14 +2701,15 @@ \chapter{NONMEM 실행결과 해석 및 Xpose4 사용법}\label{use-of-xpose4}} 345행부터는 목적함수(OFV)의 값과 THETA, ETA의 최종 파라미터 추정치를 확인할 수 있으며, TH1 (THETA 1)의 결과 1.02E+01 은 10.2 라고 생각하면 된다. ETA 부분에 주어지는 값들은 ω\textsuperscript{2} 값으로, 행렬 형태로 제시된다. 예시에서 ETA1은 CL의 ETA의 ω\textsuperscript{2}, ETA2는 V2의 ETA의 ω\textsuperscript{2} 값이며, 그 사이의 값은 두 파라미터의 공분산 값이다. 현재 모델에서는 공분산을 추정하지 않았기 때문에 0으로 나온 것이며, 두 파라미터 사이에 상관관계가 있다고 판단되면, \$OMEGA 부분에 0.04 0.02 0.04 이런 식으로 초기값을 주어 추정하게 하면 된다.\index{공분산 / covariance}\index{목적함수 / objective function}\index{covariance / 공분산}\index{objective function / 목적함수}\index{\$OMEGA} -다음으로, \$TABLE을 통해 생성된 표 파일들을 이용하여 진단 플롯을 그리는 방법을 알아보도록 하자. \$TABLE은 코드 \ref{exm:table-example}와 같이 많이 쓰는데, 이를 통해 생성되는 표 파일들과 R의 xpose4 package를 이용하여 진단 플롯을 그릴 수 있다. (Hooker et al. \protect\hyperlink{ref-R-xpose4}{2020})\index{\$TABLE} +다음으로, \$TABLE을 통해 생성된 표 파일들을 이용하여 진단 플롯을 그리는 방법을 알아보도록 하자. \$TABLE은 코드 \ref{exm:table-example}와 같이 많이 쓰는데, 이를 통해 생성되는 표 파일들과 R의 xpose4 package를 이용하여 진단 플롯을 그릴 수 있다. (\citeproc{ref-R-xpose4}{Hooker et al. 2020})\index{\$TABLE} \index{conditional weighted residuals / 조건부 가중 잔차} \begin{example} -\protect\hypertarget{exm:table-example}{}{\label{exm:table-example} }\$TABLE의 예\index{\$TABLE} +\protect\hypertarget{exm:table-example}{}\label{exm:table-example}\$TABLE의 예\index{\$TABLE} \end{example} -\vspace{-5ex} + +\vspace{-5ex} \small \begin{Shaded} @@ -2744,8 +2729,8 @@ \chapter{NONMEM 실행결과 해석 및 Xpose4 사용법}\label{use-of-xpose4}} \begin{Shaded} \begin{Highlighting}[] -\KeywordTok{library}\NormalTok{(xpose4)} -\KeywordTok{xpose4}\NormalTok{()} +\FunctionTok{library}\NormalTok{(xpose4)} +\FunctionTok{xpose4}\NormalTok{()} \CommentTok{\# Run number (3, in this case)} \CommentTok{\# Selection: 4} \CommentTok{\# Selection: 2 or 5} @@ -2803,8 +2788,7 @@ \chapter{NONMEM 실행결과 해석 및 Xpose4 사용법}\label{use-of-xpose4}} FOCE 방법(method=1)으로 시도해보기 전에 FO 방법(method=0)을 시도해 볼 것\index{1차 조건부 추정방법(FOCE) / first-order conditional estimation method(FOCE)}\index{1차추정법 / first-order method(FO)}\index{first-order conditional estimation method(FOCE) / 1차 조건부 추정방법(FOCE)}\index{first-order method(FO) / 1차추정법}\index{first-order conditional estimation method(FOCE) / 1차 조건부 추정방법(FOCE)}\index{first-order method(FO) / 1차추정법}\index{FOCE}\index{FO} \end{enumerate} -\hypertarget{covariate-analysis}{% -\chapter{공변량 분석}\label{covariate-analysis}} +\chapter{공변량 분석}\label{covariate-analysis} \Large\hfill @@ -2813,7 +2797,7 @@ \chapter{공변량 분석}\label{covariate-analysis}} \begin{center}\rule{0.5\linewidth}{0.5pt}\end{center} -모델링-시뮬레이션은 관찰한 현상을 일관된 모델로서 정립하여 현상 안에 담긴 의미를 일반화하는 것이며, 이렇게 일반화된 지식을 토대로 특정한 상황에서 약동-약력학적 결과를 예측하여, 의사 결정 등에 활용하고자 하는 것이다. 특히, 임상시험 수행 혹은 시판 후 상황 등에서 환자 요인, 약물 요인, 질병 요인에 따라 달라지는 약물의 치료 효과 등을 예측하는 것은 임상 개발 전략 또는 임상시험 설계 등을 결정하는 데에 핵심적인 정보가 된다. 예를 들어, 성인을 대상으로 수집한 약동-약력학 데이터로부터, 연령이 증가할수록 관심 대상 약물의 청소율이 감소하는 현상을 모델로서 구축할 수 있으며, 이러한 모델을 이용해 50세 이상 환자군과 50세 미만 환자군을 나누어 시뮬레이션함으로써, 특정 용량-용법 투여 시 약물 효과를 두 군에서 비교 예측해 볼 수 있다. 이 때, `연령'과 같이 약동-약력학 모델의 구조 또는 파라미터에 유의미한 영향을 끼치는 다양한 요인을 공변량(covariate)라 한다. 즉, 모델링-시뮬레이션의 작업 흐름(workflow) 속에서 공변량은 모델의 핵심적인 구성 요소 중 하나라 하겠다.\index{시뮬레이션 / simulation}\index{simulation / 시뮬레이션} +모델링-시뮬레이션은 관찰한 현상을 일관된 모델로서 정립하여 현상 안에 담긴 의미를 일반화하는 것이며, 이렇게 일반화된 지식을 토대로 특정한 상황에서 약동-약력학적 결과를 예측하여, 의사 결정 등에 활용하고자 하는 것이다. 특히, 임상시험 수행 혹은 시판 후 상황 등에서 환자 요인, 약물 요인, 질병 요인에 따라 달라지는 약물의 치료 효과 등을 예측하는 것은 임상 개발 전략 또는 임상시험 설계 등을 결정하는 데에 핵심적인 정보가 된다. 예를 들어, 성인을 대상으로 수집한 약동-약력학 데이터로부터, 연령이 증가할수록 관심 대상 약물의 청소율이 감소하는 현상을 모델로서 구축할 수 있으며, 이러한 모델을 이용해 50세 이상 환자군과 50세 미만 환자군을 나누어 시뮬레이션함으로써, 특정 용량-용법 투여 시 약물 효과를 두 군에서 비교 예측해 볼 수 있다. 이 때, '연령'과 같이 약동-약력학 모델의 구조 또는 파라미터에 유의미한 영향을 끼치는 다양한 요인을 공변량(covariate)라 한다. 즉, 모델링-시뮬레이션의 작업 흐름(workflow) 속에서 공변량은 모델의 핵심적인 구성 요소 중 하나라 하겠다.\index{시뮬레이션 / simulation}\index{simulation / 시뮬레이션} 공변량이라 함은 단순히 데이터 수집 단계에서 모아진 정보의 항목들을 의미하는 것이 아니라, 그러한 항목들 중 통계학적인 분석을 통해 모델에 반영하는 것이 적절하다고 입증된 것만을 의미한다. 수집된 데이터 중 약동-약력학 분석에 종속변수로서 사용되는 약물의 농도 또는 작용에 대한 측정값(바이오마커로서 측정되는 경우가 많음)을 제외한 데이터 항목들(인구학적 정보, 질환 특성 등)은 실제 모델에 반영된 공변량과 구분하여, 잠재적 공변량(potential covariate)이라 지칭한다. 즉, 공변량 분석(covariate analysis)이란 잠재적 공변량에 대한 적절한 통계분석을 통해 모델링의 대상이 되는 약물의 약동-약력학 모델에 유의미한 영향을 미치는 공변량을 찾아내는 과정이라 할 수 있으며, 여기에는 데이터 항목 평가(variable evaluation), 스크리닝(covariate screening), 전진선택(forward selection), 후진제거(backward elimination), 검증(validation)의 과정이 포함된다.\index{전진선택 / forward selection}\index{forward selection / 전진선택}\index{종속변수(DV) / dependent variable(DV)}\index{dependent variable(DV) / 종속변수(DV)}\index{후진제거 / backward elimination}\index{backward elimination / 후진제거}\index{backward elimination / 후진제거} @@ -2845,18 +2829,15 @@ \chapter{공변량 분석}\label{covariate-analysis}} 위 요건 중 어느 하나라도 간과한다면 적절한 공변량 분석이 이루어질 수 없으며, 이는 결과적으로 부적절한 공변량이 모델에 반영된다거나, 적절한 공변량이지만 잘못된 관계로 모델에 반영되는 결과를 초래한다. 이렇게 잘못 구축된 공변량 모델(covariate model, 공변량을 포함하는 약동-약력학 모델)은 비록 원래의 데이터를 잘 설명할 수 있다 하더라도, 시뮬레이션 과정에서 문제를 일으키므로 잘못된 의사 결정에 이르게 한다. (이후 절에서 구체적으로 설명) 따라서, 시뮬레이션에 활용하고자 하는 목적이 있는 모델링 과정에서는 특히 공변량 분석 과정에 주의를 기울어야 할 것이다.\index{시뮬레이션 / simulation}\index{simulation / 시뮬레이션} -\hypertarget{uxacf5uxbcc0uxb7c9-uxbd84uxc11duxc758-uxc77cuxbc18uxc801-uxc808uxcc28}{% -\section{공변량 분석의 일반적 절차}\label{uxacf5uxbcc0uxb7c9-uxbd84uxc11duxc758-uxc77cuxbc18uxc801-uxc808uxcc28}} +\section{공변량 분석의 일반적 절차}\label{uxacf5uxbcc0uxb7c9-uxbd84uxc11duxc758-uxc77cuxbc18uxc801-uxc808uxcc28} -\hypertarget{variable-eval}{% -\subsection{항목 평가 (variable evaluation)}\label{variable-eval}} +\subsection{항목 평가 (variable evaluation)}\label{variable-eval} 항목 평가란 약동-약력학 분석에 종속변수를 제외한 잠재적 공변량 항목 전체에 대하여 각 항목이 이후 공변량 분석 단계에 사용될 수 있을 것인가를 평가하는 과정이다. 모델링의 목적에 대한 고려 하에서 각 항목이 적절한 분포 특성을 보일 때 이를 적절한 항목이라 한다. 이 과정에서 적절하다고 판단된 데이터 항목만이 다음 단계인 \textbf{스크리닝}의 대상이 된다.\index{종속변수(DV) / dependent variable(DV)}\index{dependent variable(DV) / 종속변수(DV)} -\hypertarget{uxae30uxc220uxd1b5uxacc4uxbd84uxc11duxacfc-uxbd80uxc801uxc808uxd55c-uxd56duxbaa9-uxb610uxb294-uxc218uxc900uxc758-uxc81cuxac70}{% -\subsubsection{기술통계분석과 부적절한 항목 또는 수준의 제거}\label{uxae30uxc220uxd1b5uxacc4uxbd84uxc11duxacfc-uxbd80uxc801uxc808uxd55c-uxd56duxbaa9-uxb610uxb294-uxc218uxc900uxc758-uxc81cuxac70}} +\subsubsection{기술통계분석과 부적절한 항목 또는 수준의 제거}\label{uxae30uxc220uxd1b5uxacc4uxbd84uxc11duxacfc-uxbd80uxc801uxc808uxd55c-uxd56duxbaa9-uxb610uxb294-uxc218uxc900uxc758-uxc81cuxac70} -이 단계의 핵심적 절차는 각 항목이 어떠한 척도로 조사되었는가를 확인하고, 해당 척도에 적합한 방법으로 기술 통계 분석을 실시하는 것이다. 즉, 비척도로 조사된 항목은 평균, 표준편차, 분위 수 등의 값을 산출하여야 하고, 서열척도나 명목척도로 조사된 항목은 각 수준(level) 별로 빈도를 파악한다. 등간척도의 경우에는 상황에 따라 적절한 기술통계 방법을 선택한다. 실제 모델링 수행 시에는 완성된 기반 모델 (base model)의 제어구문 맨 뒤에 \$TABLE로서 잠재적 공변량의 상세 사항을 출력한 후, R package인 xpose4 (ver. 4.5.X 기준) (Hooker et al. \protect\hyperlink{ref-R-xpose4}{2020})를 사용하면, 6: Covariate model \textgreater{} 2. Numerically summarize the covariates 기능을 이용하여 이 과정을 간단히 수행할 수 있다. (구체적인 방법은 xpose4 매뉴얼\footnote{\url{https://cran.r-project.org/web/packages/xpose4/xpose4.pdf}} 참조) 이러한 분석의 결과로는 다음과 같은 표를 얻을 수 있다.\index{\$TABLE} +이 단계의 핵심적 절차는 각 항목이 어떠한 척도로 조사되었는가를 확인하고, 해당 척도에 적합한 방법으로 기술 통계 분석을 실시하는 것이다. 즉, 비척도로 조사된 항목은 평균, 표준편차, 분위 수 등의 값을 산출하여야 하고, 서열척도나 명목척도로 조사된 항목은 각 수준(level) 별로 빈도를 파악한다. 등간척도의 경우에는 상황에 따라 적절한 기술통계 방법을 선택한다. 실제 모델링 수행 시에는 완성된 기반 모델 (base model)의 제어구문 맨 뒤에 \$TABLE로서 잠재적 공변량의 상세 사항을 출력한 후, R package인 xpose4 (ver. 4.5.X 기준) (\citeproc{ref-R-xpose4}{Hooker et al. 2020})를 사용하면, 6: Covariate model \textgreater{} 2. Numerically summarize the covariates 기능을 이용하여 이 과정을 간단히 수행할 수 있다. (구체적인 방법은 xpose4 매뉴얼\footnote{\url{https://cran.r-project.org/web/packages/xpose4/xpose4.pdf}} 참조) 이러한 분석의 결과로는 다음과 같은 표를 얻을 수 있다.\index{\$TABLE} \begin{figure} @@ -2882,15 +2863,13 @@ \subsubsection{기술통계분석과 부적절한 항목 또는 수준의 제거 각각의 상황에서의 처리 방법은 이어지는 하위 절에서 다루도록 한다. -\hypertarget{uxacb0uxce21uxce58uxac00-uxb9ceuxc740-uxd56duxbaa9}{% -\paragraph{결측치가 많은 항목}\label{uxacb0uxce21uxce58uxac00-uxb9ceuxc740-uxd56duxbaa9}} +\paragraph{결측치가 많은 항목}\label{uxacb0uxce21uxce58uxac00-uxb9ceuxc740-uxd56duxbaa9} 결측치는 많은 임상연구에서 필연적으로 발생한다. 그러기에 결측치를 대체(imputation)하기 위한 다양한 방법들이 존재한다. 그럼에도 불구하고, 지나치게 결측치가 많은 경우, 약동-약력학 파라미터에 대한 해당 항목의 영향을 정확하게 평가하는 것이 불가능하므로 해당 항목을 분석에서 제외하는 것이 좋다. 특정 항목을 분석에서 제외하여야 하는 결측치 비율이 정확하게 정해져 있는 것은 아니므로, 결측치가 발생함으로써 나타난 항목 분포와 모델링의 목적 등 다양한 요소를 고려하여 제외 여부를 결정한다. 그렇기 때문에 결측치의 비율이 상당히 높은 항목이라 할지라도, 해당 항목의 중요성이 높고, 충분히 정당화 가능한 근거가 있다면, 이를 분석에 포함하기도 한다. 예를 들어, 신장으로 배설되는 약물에 대해 혈중 크레아티닌 수치의 결측치가 발생하였을 때, 그러한 결측치가 특정 연령 대에서 집중적으로 발생하였다면, 해당 연령 대를 제외한 공변량 분석에 활용할 수 있을 것이다.\index{대체 / imputation}\index{imputation / 대체} -\hypertarget{improper}{% -\paragraph{부적절한 분포를 보이는 항목}\label{improper}} +\paragraph{부적절한 분포를 보이는 항목}\label{improper} -공변량 분석은 물론, 모든 약동-약력학 모델링에서 비례적 관계를 다루는 경우에, 각 연구자는 그러한 비례적 관계가 독립변수의 어느 범위에서 유효한가를 먼저 고민해야 한다. 그러한 범위 이외에서 같은 관계를 외삽하는 경우, 실제 값과 다른 예측 결과를 보일 수 있기 때문이다. 공변량이라는 측면에서 이러한 문제를 보이는 대표적인 사례는 Cockcroft-Gault equation이다. 이 식은 토리여과율(GFR, glomerular filtration rate)을 다른 신체적 변수 간의 관계를 통해 추정하는데, 해당 관계식에 포함된 체중 또는 연령의 값이 인구 평균에서 멀어질수록 예측 값과 실제 토리여과율 간의 차이가 확대되는 양상을 보인다.\footnote{``Estimated glomerular filtration ratio is a better index than creatinine clearance (Cockcroft--Gault) for predicting the prevalence of atrial fibrillation in the general Japanese population''} (그림 \ref{fig:gfr}) \index{독립변수 / independent variable}\index{independent variable / 독립변수}\index{dependent variable(DV) / 종속변수(DV)} +공변량 분석은 물론, 모든 약동-약력학 모델링에서 비례적 관계를 다루는 경우에, 각 연구자는 그러한 비례적 관계가 독립변수의 어느 범위에서 유효한가를 먼저 고민해야 한다. 그러한 범위 이외에서 같은 관계를 외삽하는 경우, 실제 값과 다른 예측 결과를 보일 수 있기 때문이다. 공변량이라는 측면에서 이러한 문제를 보이는 대표적인 사례는 Cockcroft-Gault equation이다. 이 식은 토리여과율(GFR, glomerular filtration rate)을 다른 신체적 변수 간의 관계를 통해 추정하는데, 해당 관계식에 포함된 체중 또는 연령의 값이 인구 평균에서 멀어질수록 예측 값과 실제 토리여과율 간의 차이가 확대되는 양상을 보인다. \footnote{``Estimated glomerular filtration ratio is a better index than creatinine clearance (Cockcroft--Gault) for predicting the prevalence of atrial fibrillation in the general Japanese population''} (그림 \ref{fig:gfr}) \index{독립변수 / independent variable}\index{independent variable / 독립변수}\index{dependent variable(DV) / 종속변수(DV)} @@ -2931,8 +2910,7 @@ \subsubsection{기술통계분석과 부적절한 항목 또는 수준의 제거 2.의 경우는, 변수의 척도 특성과 상관 없이 해당 변수를 제외하는 것이 추천된다. 이는 첫번째로, 좁은 분포 범위로 인해 통계학적으로 유의한 상관관계를 얻기 힘들기 때문이며, 두번째로, 설혹 통계학적으로 유의한 상관관계를 보인다 할지라도, 임상적으로 유의한 범위의 상관성을 보여 주기 어렵기 때문이다. 대표적인 경우로는 건강인 대상자에서 얻은 인구학적 정보가 있다. 그러한 정보들 중 체중이나 연령 등이 분포용적 혹은 청소율과 선형적 비례 관계를 가지는 경우를 생각해 보자. 이 경우, 건강인 대상자의 특성으로 인해 체중이나 연령 등이 상당히 제한적인 범위에 머무를 가능성이 크며, 따라서 선형적 관계가 실제 관찰된 범위를 넘어 환자에게서도 동일하게 적용되리라는 가정을 하는 것은 상당히 위험하다. 따라서, 공변량 분석 자체가 의미 없는 상황이라고 할 수 있겠다. -\hypertarget{potential-cov}{% -\subsubsection{잠재적 공변량 간의 상관 관계 분석}\label{potential-cov}} +\subsubsection{잠재적 공변량 간의 상관 관계 분석}\label{potential-cov} 본 과정은 다음 \ref{colinearity}에서 소개할 공선성 분석을 위한 준비 단계로서, 각 대상자 별로 확보된 잠재적 공변량의 값들 간에 나타나는 비례관계 유무를 파악하는 것이다. 우선적으로는 시각적 방법이 활용되며, 통계적 방법을 통해 이를 보강할 수 있다. 이 과정의 핵심적 절차는 각 대상자에서 관찰된 잠재적 공변량 항목들의 값을 그림 \ref{fig:cov-scatter}와 같이 scatterplot matrix로 나타내는 것이다. \ref{variable-eval}에서 언급한 바와 마찬가지로, xpose4 (ver. 4.5.X 기준)의 6: Covariate model \textgreater{} 3. Scatterplot matrix of covariates 기능을 통해 간단히 수행할 수 있다. 그 수행 결과는 아래 그림 \ref{fig:cov-scatter}에 나타난 바와 같다. @@ -2951,13 +2929,11 @@ \subsubsection{잠재적 공변량 간의 상관 관계 분석}\label{potential- \ref{variable-eval}에서는 수행 결과에 따라 일부 잠재적 공변량들을 제외 또는 수정하였지만, 이 절에서 수행한 사항의 결과에 따라 그러한 작업을 수행하지는 않는다. 그러나 궁극적으로 정확한 공변량 모델을 구축하기 위해 매우 핵심적인 작업이 이루어지는데, 이는 어떠한 잠재적 공변량들이 비례 관계를 가지고 있는가의 결과를 요약하여 기록해 두는 것이다. 그리고, 그러한 비례 관계가 나타난 원인에 대해 생리적, 의학적인 근거를 파악하여야 한다. 만일, 두 공변량 간의 비례 관계를 기존의 지식으로 설명할 수 없다면, 그것은 정보 부족 또는 우연에 의한 결과일 수 있다. 이러한 요약 및 부가 정보 자료들은 \ref{cov-screening}의 수행 결과와 종합하여 실제 공변량 모델 구축을 위한 전략을 마련하는 데에 활용한다. -\hypertarget{cov-screening}{% -\subsection{공변량 스크리닝 (covariate screening)}\label{cov-screening}} +\subsection{공변량 스크리닝 (covariate screening)}\label{cov-screening} 개별 공변량을 약동-약력학 파라미터에 반영하여, 모델 개선에 대한 유의성 여부를 평가하는 작업이 공변량 분석의 핵심적인 단계이기는 하지만, 잠재적 공변량의 개수는 물론 약동-약력학 파라미터의 개수가 상당히 많은 경우가 대부분이므로 각 잠재적 공변량을 각 약동-약력학 파라미터에 대응시켜 하나하나 이 작업을 수행하는 것은 매우 비효율적일 수 있다. 예를 들어, 약동-약력학 파라미터(ETA가 추정된)의 개수가 8개이고, 잠재적 공변량의 개수가 10개라면 80개의 개별적 모델링 과정을 거쳐야만 모든 공변량 분석을 완료할 수 있으며, 그 결과에 따라 발생하는 다양한 조합을 함께 평가해 보아야 하는 문제도 생겨나게 된다. 이를 피하기 위해서는 대상자 별로 확보된 잠재적 공변량의 값과 각 파라미터의 ETA 값을 이용하여, 실제 모델링을 통해 평가해 볼 만한 가치가 있는 관계들을 사전에 파악하는 단계가 필요한데 이를 공변량 스크리닝이라 한다. 스크리닝은 시각적 방법과 수치적 방법으로 수행할 수 있으며, 두 방법 중 어느 하나에서라도 의미 있는 상관성을 보이는 잠재적 공변량과 파라미터 간의 관계가 있다면, 이를 실제 모델링하여 평가하는 것이 추천된다.\index{모든 공변량 / full covariate}\index{full covariate / 모든 공변량} -\hypertarget{uxc2dcuxac01uxc801-uxc2a4uxd06cuxb9acuxb2dd-visual-screening}{% -\subsubsection{시각적 스크리닝 (visual screening)}\label{uxc2dcuxac01uxc801-uxc2a4uxd06cuxb9acuxb2dd-visual-screening}} +\subsubsection{시각적 스크리닝 (visual screening)}\label{uxc2dcuxac01uxc801-uxc2a4uxd06cuxb9acuxb2dd-visual-screening} \index{xpose4} @@ -2982,15 +2958,14 @@ \subsubsection{시각적 스크리닝 (visual screening)}\label{uxc2dcuxac01uxc8 } -\caption{비선형적 상관관계를 가질 가능성이 있는 경우 (Owen \protect\hyperlink{ref-kelly}{2014})}\label{fig:nonlinear-rel} +\caption{비선형적 상관관계를 가질 가능성이 있는 경우 (\citeproc{ref-kelly}{Owen 2014})}\label{fig:nonlinear-rel} \end{figure} 이러한 잠재적 공변량들은 물론 다음 단계 평가에 포함하는 것이 바람직하며, 선형적 관계 이외의 구조로서 공변량-파라미터 관계를 설명하였을 때 더욱 좋은 결과를 얻을 수 있을 가능성을 반드시 염두에 두어 향후 과정에서 이에 대한 비교가 이루어질 수 있도록 해야 한다. 범주형 공변량에 대해서도 마찬가지 작업이 이루어져야 하며, 이는 이후 절에 공변량 모형의 구조와 관련하여 보다 구체적으로 설명하도록 한다. 이러한 절차 이외에 잠재적 공변량의 값에 따른 weighted residual 값의 분포 경향을 plot으로 보는 절차(xpose4의 6: Covariate model \textgreater{} 6. weighted residual vs covariates)도 있지만, 앞서 언급한 절차에 비해 중요성이 떨어지므로 여기에서는 구체적으로 다루지 않는다. -\hypertarget{uxc218uxce58uxc801-uxc2a4uxd06cuxb9acuxb2dd-numerical-screening}{% -\subsubsection{수치적 스크리닝 (numerical screening)}\label{uxc218uxce58uxc801-uxc2a4uxd06cuxb9acuxb2dd-numerical-screening}} +\subsubsection{수치적 스크리닝 (numerical screening)}\label{uxc218uxce58uxc801-uxc2a4uxd06cuxb9acuxb2dd-numerical-screening} \index{GAM, generalized additive modeling} \index{xpose4} @@ -3010,7 +2985,7 @@ \subsubsection{수치적 스크리닝 (numerical screening)}\label{uxc218uxce58u 2.에서 얻은 값 중, 가장 낮은 AIC 값을 보인 잠재적 공변량을 선택하고, 그 AIC 값이 1)에서 얻은 값보다 낮으면, 해당하는 잠재적 공변량을 유효한 것으로 판단한다. \end{enumerate} -이러한 3가지의 절차를 1개의 `step'이라 한다. 하나의 step이 수행된 결과는 아래와 같이 표시되며, 이 사례에서는 CLCR이 최선의 결과로 선택되었다. +이러한 3가지의 절차를 1개의 'step'이라 한다. 하나의 step이 수행된 결과는 아래와 같이 표시되며, 이 사례에서는 CLCR이 최선의 결과로 선택되었다. \begin{figure} @@ -3025,7 +3000,7 @@ \subsubsection{수치적 스크리닝 (numerical screening)}\label{uxc218uxce58u 만일, 3)의 조건을 만족하는 잠재적 공변량이 없다면, GAM은 step 1에서 종료되고, 유의한 잠재적 공변량이 없다고 보고한다. 그러나 3)의 조건을 만족하는 공변량이 하나라도 있다면, GAM은 다른 step을 개시하며, 같은 작업을 반복한다. 다만, 다음 step에서는 1)의 기준 AIC가 이전 step에서 선택한 최적 모델의 AIC가 되며, 2)에서는 이전 step에서 선택된 잠재적 공변량을 모델에 유지한 채, 또 하나의 잠재적 공변량을 선형적 구조로서 가법적으로 이어 붙여 해당 모델의 AIC를 평가하게 된다.(예를 들어 CLCR이 이전에 step에서 포함된 상황이라면, \texttt{ETA1\ \textasciitilde{}\ CLCR\ +\ SEX}와 같은 구조가 된다.) 이는 통계학적으로 다변량 선형회귀분석에서 사용하는 모델과 동일하다. 이 평가 과정 역시 모든 잠재적 공변량에 대해 이루어지며, 3)의 조건을 만족하는 잠재적 공변량이 없을 때까지 step이 반복된다. 중요한 것은 이미 모델에 포함되어 있는 잠재적 공변량일지라도, 각 step에서 한 번 더 평가가 이루어진다는 것이다.(e.g.~\texttt{ETA1\ \textasciitilde{}\ CLCR\ +\ CLCR}) 만일, 동일한 공변량이 두 번 이상 선택된다면, 이는 유의한 상관관계가 있지만, 잠재적 공변량과 파라미터 간의 상관 구조가 선형적이 아닐 수 있다는 것을 시사하는 것이므로, 앞서 그림 \ref{fig:nonlinear-rel}에서 언급한 경우와 같이 기록해 두고 다음 과정을 진행하여야 한다. -이제 GAM이라는 의미를 다시 살펴보면, `모든 잠재적 공변량에 대해(generalized), 가법적으로(additive), 모델을 수행(modeling)하여, 각 결과를 비교하는 것이다.'라는 것을 알 수 있다. 파라미터 별 GAM 수행 결과는 그림 \ref{fig:gam-step}\footnote{\url{https://uupharmacometrics.github.io/xpose4/reference/xpose.gam.html}}의 결과를 반복적으로 보여 주는 형태로 확인하기도 하지만, 다음의 그림과 같이 모델 구조에 따른 AIC의 변화를 도식적으로 나타내어 선택된 잠재적 공변량들을 한 눈에 확인하는 경우가 많다. +이제 GAM이라는 의미를 다시 살펴보면, '모든 잠재적 공변량에 대해(generalized), 가법적으로(additive), 모델을 수행(modeling)하여, 각 결과를 비교하는 것이다.'라는 것을 알 수 있다. 파라미터 별 GAM 수행 결과는 그림 \ref{fig:gam-step}\footnote{\url{https://uupharmacometrics.github.io/xpose4/reference/xpose.gam.html}}의 결과를 반복적으로 보여 주는 형태로 확인하기도 하지만, 다음의 그림과 같이 모델 구조에 따른 AIC의 변화를 도식적으로 나타내어 선택된 잠재적 공변량들을 한 눈에 확인하는 경우가 많다. \begin{figure} @@ -3038,10 +3013,9 @@ \subsubsection{수치적 스크리닝 (numerical screening)}\label{uxc218uxce58u -\hypertarget{colinearity}{% -\subsection{공선성(co-linearity)에 대한 고려}\label{colinearity}} +\subsection{공선성(co-linearity)에 대한 고려}\label{colinearity} -앞선 \ref{potential-cov}에서 잠재적 공변량 간의 상관 관계를 파악하는 작업에 대해 소개한 바 있다. 이는 이 절에서 논의하고자 하는 공선성에 대한 고려를 위한 준비 작업이라고 할 수 있다. 공선성이란 2개 이상의 잠재적 공변량이 서로 비례 관계를 가지는 상황에서, 그러한 잠재적 공변량들이 각각 하나의 약동-약력학 파라미터와 상관 관계를 가지는 경우를 나타내는 용어이다. 예를 들어, `공변량 스크리닝 결과 청소율에 체중과 신장이 동시에 가능성 있는 공변량으로 확인된 경우에 실제 공변량 평가 과정은 어떻게 이루어져야 하겠는가?'라는 질문이 발생할 수 있다. 이러한 질문에 대한 적절한 답을 얻기 위해서는 신장과 체중 간의 관계에 대한 파악이 우선되어야 하는 것이다. +앞선 \ref{potential-cov}에서 잠재적 공변량 간의 상관 관계를 파악하는 작업에 대해 소개한 바 있다. 이는 이 절에서 논의하고자 하는 공선성에 대한 고려를 위한 준비 작업이라고 할 수 있다. 공선성이란 2개 이상의 잠재적 공변량이 서로 비례 관계를 가지는 상황에서, 그러한 잠재적 공변량들이 각각 하나의 약동-약력학 파라미터와 상관 관계를 가지는 경우를 나타내는 용어이다. 예를 들어, '공변량 스크리닝 결과 청소율에 체중과 신장이 동시에 가능성 있는 공변량으로 확인된 경우에 실제 공변량 평가 과정은 어떻게 이루어져야 하겠는가?'라는 질문이 발생할 수 있다. 이러한 질문에 대한 적절한 답을 얻기 위해서는 신장과 체중 간의 관계에 대한 파악이 우선되어야 하는 것이다. 어떠한 경우에는 약동-약력학 파라미터 간에도 서로 간에 상관 관계를 가지는 경우가 있어 2개 이상의 약동-약력학 파라미터와 2개 이상의 잠재적 공변량이 모두 상관관계를 보이는 상황도 발생할 수 있다. 예를 들어, 체중과 신장은 서로 비례 관계를 가지는 것이 일반적인 현상인데, 신장으로 제거되는 약물의 청소율 추정치(Cockcoroft-Gault 식 등)과 분포용적 등은 동시에 이러한 신체적 요인들과 비례 관계를 가질 수 있다. 이 경우에도 마찬가지로 \ref{potential-cov}의 공변량 간의 상관성 탐색 결과가 필요하다. 다만, 약동-약력학 파라미터들 간의 상관성 분석은 엄밀하게는 공변량 분석 이전의 기반 모델 구축 단계에서 온전히 수행되어야 하는 작업이므로 이 장에서는 다루지 않았다(이미 상관성에 대한 정보가 갖추어져 있다고 전제함). 혼합효과모형 분석에서는 개별 약동-약력학 파라미터를 각 개인에서 분명하게 추정 가능한 수준의 정보가 데이터셋에 갖추어져 있지 않은 경우에 파라미터의 ETA 간의 상관성이 유도(induction)되는 특성이 있어, 이러한 문제가 심한 경우에는 특정 파라미터의 ETA를 추정하지 않거나, 파라미터 재설정(re-parametrization) 등의 해결책을 사용한다. 그러나 정보가 충분히 확보된 경우에도 생리학적으로 상관성을 가질 수밖에 없는 파라미터들을 모델링의 목적에 따라 각각 독립적으로 추정해야 하는 경우가 많아, 공선성에 대한 고려는 필수적이면서도 상당히 까다로운 작업이 된다. @@ -3060,15 +3034,13 @@ \subsection{공선성(co-linearity)에 대한 고려}\label{colinearity}} 공선성은 매우 많은 상황에서 다양한 유형으로 발생하기 때문에 공변량 평가를 위한 표준적인 기준을 제시하기는 어렵다. 따라서, 모델링의 목적 등에 대한 고려와 관계된 다양한 전문가들의 의견을 종합하여 궁극적인 평가 계획 및 공변량 포함 여부 등을 결정해야 할 것이다. -\hypertarget{uxacf5uxbcc0uxb7c9-uxd3c9uxac00-uxc804uxc9c4uxc120uxd0ddforward-selection}{% -\subsection{공변량 평가: 전진선택(forward-selection)}\label{uxacf5uxbcc0uxb7c9-uxd3c9uxac00-uxc804uxc9c4uxc120uxd0ddforward-selection}} +\subsection{공변량 평가: 전진선택(forward-selection)}\label{uxacf5uxbcc0uxb7c9-uxd3c9uxac00-uxc804uxc9c4uxc120uxd0ddforward-selection} \index{전진선택 / forward selection}\index{forward selection / 전진선택} 이 절의 논의에 앞서 다시 한번 주지하고자 하는 것은 본격적인 공변량 평가 방법은 시간이 많이 걸리는 작업이라는 것이다. 이는 개별 파라미터-공변량 관계를 실제 제어구문에 반영한 후, 이를 실행하여 그러한 관계가 모델에 긍정적인 영향을 주는가를 평가하는 작업이 파라미터-공변량 관계 별로 일일이 이루어져야 하기 때문이다. 따라서, 효과적인 평가 계획을 수립하는 것이 무엇보다도 중요하며, \ref{variable-eval} \textasciitilde{} \ref{colinearity}의 절차가 올바르게 수행되었다면, 이 절에서 수행하고자 하는 공변량 평가 과정에 투입되는 시간과 노력을 절감할 수 있을 것이다. 이제부터는 공변량 평가의 첫 단계인 전진선택법에 대해 알아보도록 하겠다.\index{전진선택 / forward selection}\index{forward selection / 전진선택} -\hypertarget{forward-sel-def}{% -\subsubsection{전진선택이란?}\label{forward-sel-def}} +\subsubsection{전진선택이란?}\label{forward-sel-def} \index{전진선택 / forward selection}\index{forward selection / 전진선택} @@ -3132,10 +3104,9 @@ \subsubsection{전진선택이란?}\label{forward-sel-def}} 3.은 이상치(outlier)와도 관련이 있는 사항으로서, 대부분의 사람에서 설명력이 개선되는 경우 1., 2.의 조건을 만족하지만, 드물게는 새롭게 반영되는 공변량-파라미터 간의 고정효과와 완전히 다른 trend를 가지는 개인이 있어 잔차가 증가하는 상황이 발생하기도 한다. 따라서, 이 경우에는 추후 진행할 시뮬레이션 등의 목적 등을 고려하여 공변량을 반영할 것인가를 선택해야 할 수 있다.\index{시뮬레이션 / simulation}\index{simulation / 시뮬레이션}\index{이상치 / outlier}\index{outlier / 이상치}\index{잔차 / residual error}\index{residual error / 잔차} -특정 공변량이 위의 세가지 기준을 모두 만족하여 유의미한 공변량으로 확인된다면, 이제 해당 공변량은 모델에 그대로 둔 채로 새로운 공변량을 같은 방법으로 모델에 반영 및 평가하게 된다. 공변량 스크리닝 단계에서 평가 필요성이 제시된 모든 공변량에 대하여 이 과정을 반복 수행한다. 어떤 순서로 공변량을 모델에 반영하여 평가하여야 하는가에 대해 정해진 이론은 없다. 하지만, 일반적으로 공변량 스크리닝 단계에서 시각적으로 좋은 상관관계가 보였거나 GAM 단계에서 AIC의 감소가 컸던 순으로 전진선택을 수행하게 된다. 추가 사항은 J.S.Owen과 J.Fiedler-Kelly가 저술한 Introduction to Population Pharmacokinetic / Pharmacodynamic Analysis with Nonlinear Mixed Effects Models의 5.7.6-7절을 참고할 수 있다. (Owen \protect\hyperlink{ref-kelly}{2014})\index{모든 공변량 / full covariate}\index{full covariate / 모든 공변량}\index{전진선택 / forward selection}\index{forward selection / 전진선택} +특정 공변량이 위의 세가지 기준을 모두 만족하여 유의미한 공변량으로 확인된다면, 이제 해당 공변량은 모델에 그대로 둔 채로 새로운 공변량을 같은 방법으로 모델에 반영 및 평가하게 된다. 공변량 스크리닝 단계에서 평가 필요성이 제시된 모든 공변량에 대하여 이 과정을 반복 수행한다. 어떤 순서로 공변량을 모델에 반영하여 평가하여야 하는가에 대해 정해진 이론은 없다. 하지만, 일반적으로 공변량 스크리닝 단계에서 시각적으로 좋은 상관관계가 보였거나 GAM 단계에서 AIC의 감소가 컸던 순으로 전진선택을 수행하게 된다. 추가 사항은 J.S.Owen과 J.Fiedler-Kelly가 저술한 Introduction to Population Pharmacokinetic / Pharmacodynamic Analysis with Nonlinear Mixed Effects Models의 5.7.6-7절을 참고할 수 있다. (\citeproc{ref-kelly}{Owen 2014})\index{모든 공변량 / full covariate}\index{full covariate / 모든 공변량}\index{전진선택 / forward selection}\index{forward selection / 전진선택} -\hypertarget{cov-param}{% -\subsubsection{공변량-파라미터 간의 관계 모델}\label{cov-param}} +\subsubsection{공변량-파라미터 간의 관계 모델}\label{cov-param} \ref{forward-sel-def}에서 선형적 관계로 공변량을 반영하는 예시를 제시하였다. 많은 경우에 이러한 선형적 모델은 공변량 평가의 기본 구조가 된다. 그러나, 시각적 스크리닝 단계에서 선형적 관계가 아닌 것으로 보이거나, GAM 과정에서 2번 이상 선택되는 잠재적 공변량 등은 선형적 관계 이외에 보다 적합한 공변량-파라미터 관계를 가질 수 있다. 심지어 이러한 잠재적 공변량들은 단순 선형 모델을 이용한 공변량 반영 및 평가 시 \ref{forward-sel-def}에 제시한 3가지 기준을 만족하지 못할 수 있으므로, 해당 잠재적 공변량들에 대해서는 선형적인 관계로 공변량의 유의성을 평가만을 수행해서는 안 되며, 이후 또다른 구조를 이용한 평가가 필요하다. 아래는 연속형 변수로 측정된 공변량에 대해 적용할 수 있는 다양한 구조들의 예시이다. @@ -3227,8 +3198,7 @@ \subsubsection{공변량-파라미터 간의 관계 모델}\label{cov-param}} 위의 예에서 SEX는 성별을 뜻하며, 여성은 0, 남성은 1의 방식으로 coding할 수 있다. 만일, 특정 공변량이 3개 이상의 범주를 가지는 경우에는 위의 예와 같이 일관된 수식으로서 표현하기 어려운 상황이 많아, 제어구문 중 IF문을 사용하여, 각 범주 별로 파라미터 값을 각각 추정하게 할 수도 있다. 이 때 범주 하나 당 하나의 THETA가 대응되므로, \ref{forward-sel-def}의 1. 기준 평가 시 이를 고려해야 한다. 또한, 범주 별로 분산을 같다고 가정할 지, 다르다고 가정할 지 역시 모두 OFV 등의 기준을 이용하여 평가해 보아야 한다는 어려움도 있다. 범주형 변수가 가진 수준의 수가 충분히 많아지면, 이를 연속형 변수와 유사하게 처리할 수 있다는 이론도 있으나, 일반적인 모델링에서는 용량(증량 시험 등에서)을 제외하고 이렇게 다양한 수준의 범주형 자료가 수집되는 경우는 많지 않아 여기에서는 다루지 않는다. -\hypertarget{uxacf5uxbcc0uxb7c9-uxd3c9uxac00-uxd6c4uxc9c4uxc81cuxac70backward-elimination}{% -\subsection{공변량 평가: 후진제거(backward-elimination)}\label{uxacf5uxbcc0uxb7c9-uxd3c9uxac00-uxd6c4uxc9c4uxc81cuxac70backward-elimination}} +\subsection{공변량 평가: 후진제거(backward-elimination)}\label{uxacf5uxbcc0uxb7c9-uxd3c9uxac00-uxd6c4uxc9c4uxc81cuxac70backward-elimination} \index{후진제거 / backward elimination}\index{backward elimination / 후진제거}\index{backward elimination / 후진제거} @@ -3245,20 +3215,17 @@ \subsection{공변량 평가: 후진제거(backward-elimination)}\label{uxacf5ux 전진선택의 기본적 원리는 단변량 대 단변량의 관계이므로, 여러 가지의 공변량-파라미터 효과가 종합된 모델에서 개별 공변량-파라미터 관계가 여전히 유효한 것인지를 확인할 수 없다.\index{전진선택 / forward selection}\index{forward selection / 전진선택} \end{enumerate} -분포 용적에 대해 체중과 BMI 모두 가능성 있는 잠재적 공변량으로 선택된 상황에서, 체중-BMI 순으로 전진선택을 수행하였고, 둘 모두 공변량으로 선택되었다 하더라도, 후진제거 실시 과정에서 체중은 유의미한 공변량이 아닌 것으로 확인될 수 있다. 이것이 후진제거가 필요한 단적인 상황으로서, 보다 파라미터와 상관관계가 좋으며, 이전에 포함된 공변량의 정보를 일부 가진 공변량이 전진선택에서 이후에 평가되었을 때, 이전에 포함된 공변량이 더 이상 필요 없음에도 불구하고 모델에 남아 있게 되는 상황을 피하고자 하는 것이다. 이는 앞서 언급한 공선성과 관련이 있는 문제이며, 사전에 공선성을 파악하여 보다 좋은 공변량을 선별적으로 선택할 수도 있지만, 판단이 어려운 경우에 후진 제거를 실시하면 정확한 통계적 근거를 통해 불필요한 공변량을 제거할 수 있다. 후진 제거 시에는 OFV 변화에 대해 전진선택보다 더 엄격한 p-value를 적용하기도 한다. 추가 사항은 J.S.Owen과 J.Fiedler-Kelly가 저술한 Introduction to Population Pharmacokinetic / Pharmacodynamic Analysis with Nonlinear Mixed Effects Models의 5.7.8절을 참고할 수 있다. (Owen \protect\hyperlink{ref-kelly}{2014})\index{전진선택 / forward selection}\index{forward selection / 전진선택}\index{후진제거 / backward elimination}\index{backward elimination / 후진제거}\index{backward elimination / 후진제거} +분포 용적에 대해 체중과 BMI 모두 가능성 있는 잠재적 공변량으로 선택된 상황에서, 체중-BMI 순으로 전진선택을 수행하였고, 둘 모두 공변량으로 선택되었다 하더라도, 후진제거 실시 과정에서 체중은 유의미한 공변량이 아닌 것으로 확인될 수 있다. 이것이 후진제거가 필요한 단적인 상황으로서, 보다 파라미터와 상관관계가 좋으며, 이전에 포함된 공변량의 정보를 일부 가진 공변량이 전진선택에서 이후에 평가되었을 때, 이전에 포함된 공변량이 더 이상 필요 없음에도 불구하고 모델에 남아 있게 되는 상황을 피하고자 하는 것이다. 이는 앞서 언급한 공선성과 관련이 있는 문제이며, 사전에 공선성을 파악하여 보다 좋은 공변량을 선별적으로 선택할 수도 있지만, 판단이 어려운 경우에 후진 제거를 실시하면 정확한 통계적 근거를 통해 불필요한 공변량을 제거할 수 있다. 후진 제거 시에는 OFV 변화에 대해 전진선택보다 더 엄격한 p-value를 적용하기도 한다. 추가 사항은 J.S.Owen과 J.Fiedler-Kelly가 저술한 Introduction to Population Pharmacokinetic / Pharmacodynamic Analysis with Nonlinear Mixed Effects Models의 5.7.8절을 참고할 수 있다. (\citeproc{ref-kelly}{Owen 2014})\index{전진선택 / forward selection}\index{forward selection / 전진선택}\index{후진제거 / backward elimination}\index{backward elimination / 후진제거}\index{backward elimination / 후진제거} -\hypertarget{uxacf5uxbcc0uxb7c9-uxbd84uxc11d-uxad00uxb828-uxcd94uxac00-uxace0uxb824-uxc0acuxd56d}{% -\section{공변량 분석 관련 추가 고려 사항}\label{uxacf5uxbcc0uxb7c9-uxbd84uxc11d-uxad00uxb828-uxcd94uxac00-uxace0uxb824-uxc0acuxd56d}} +\section{공변량 분석 관련 추가 고려 사항}\label{uxacf5uxbcc0uxb7c9-uxbd84uxc11d-uxad00uxb828-uxcd94uxac00-uxace0uxb824-uxc0acuxd56d} 공변량 분석에서 무엇보다도 중요한 고려 사항은 바로 생리학적 타당성이다. 항목 평가에서 후진제거에 이르기까지 생리학적 타당성은 늘 고려되어야 한다. 실제 모델링 수행 시 접하게 되는 가장 흔한 상황은 전진선택과 후진제거의 모든 절차를 완료한 후 (통계학적 타당성을 확보하였다는 의미임) 특정 파라미터에 대해 생리학적으로 관련성이 적은 항목이 모델에 유의한 공변량으로 남아 있는 경우이다. 이 경우, 이러한 결과를 생리학적으로 해석해 낼 수 있는가가 그러한 공변량을 최종적으로 선택할 것인지 말 것인지를 결정하는 핵심 요소가 된다. 예를 들어, 신장으로 제거되는 약물의 청소율이 간의 기능을 나타내는 혈중 알부민 수치나 프로트롬빈 시간(prothrombin time) 등과 비례 관계를 가지는 결과가 도출되었다 한다면, 이것이 생리학적으로 타당하지 않은 것인가? 일반적인 관점에서 이는 우연의 산물이거나, 해석할 수 없는 외부 요인의 결과라고 볼 수도 있겠지만, 이러한 데이터가 진행된 간경변 환자에서 확보된 것이라면, 간 기능 저하에 의한 신 기능 저하를 충분히 의심할 수 있을 것이다. 따라서, 생리학적 타당성이란 고정된 개념이 아니라, 데이터가 확보된 대상자의 특성과 연구 대상 의약품의 특성 등이 종합적으로 해석되어야 확보할 수 있는 것이라 하겠다. 반대로 이미 잘 알려져 있는 공변량-파라미터 관계가 있고, 공변량에 대한 정보도 충분히 확보되었음에도 불구하고 그러한 공변량-파라미터가 최종 모델에서 통계적으로 유의하게 선택되지 않을 때, 그 이유에 대한 정당화 역시 필수적으로 요구된다. 이 경우에는 모델링 과정에서 세운 가정이나 모델 구조 등에 문제가 없었는지를 다시 한 번 확인해야 하며, 혼란 변인 등의 역할에 대해서도 생각해 보아야 한다. 해당 내용은 최종 모델링 보고서 등에 포함하는 것이 추천된다.\index{전진선택 / forward selection}\index{forward selection / 전진선택}\index{후진제거 / backward elimination}\index{backward elimination / 후진제거}\index{backward elimination / 후진제거} 공변량이 포함된 모델에 대한 평가(evaluation) 시에는 주요 공변량의 수준 별로 Visual Predictive Check (VPC)를 수행하는 것이 필수적이다. 앞서 특정 개인에게는 일반화된 고정 효과로서의 공변량-파라미터 관계가 잘 적용되지 않을 수도 있다고 설명하였는데, 이는 해당 공변량의 특정 수준에 대해서도 마찬가지이다. 가장 흔하게 접하는 경우는 여러 개의 용량이 포함된 데이터셋을 모델링하는 경우에, 용량-생체이용률 간 관계를 도입하는 경우이다. 또는, 연령이 광범위하게 분포하는 데이터셋에서 연령-청소율 간의 관계도 유사한 경향성을 가진다. 모델링 과정에서 OFV의 감소가 가장 구조로서 공변량-파라미터 관계를 표현하게 되는데, 이러한 방법의 가장 큰 문제는 측정값의 개수가 충분치 않은 공변량의 특정 수준을 잘 반영하지 못할 수 있다는 것이다. 이에 따라, 공변량 수준(특정 용량 또는 연령 범위 등)에 따라 VPC를 수행하면, 모든 수준에서 측정값과 모델 예측값이 적절히 대응하고 있는지를 평가할 수 있음과 동시에 앞서 언급한 문제에 의해 잘 예측되지 않은 수준이 어느 것인지도 확인할 수 있다. 심지어 공변량 모델링 시 간과한 부적절한 공변량-파라미터 관계까지도 확인할 수 있으므로, 이러한 평가 과정은 반드시 수행되어야 할 것이다. -\hypertarget{part-uxbaa8uxb378-uxc9c4uxb2e8-uxbc0f-uxc57duxb3d9uxd559-uxc57duxb825uxd559-uxc5f0uxacc4-uxbaa8uxb378}{% -\part{모델 진단 및 약동학-약력학 연계 모델}\label{part-uxbaa8uxb378-uxc9c4uxb2e8-uxbc0f-uxc57duxb3d9uxd559-uxc57duxb825uxd559-uxc5f0uxacc4-uxbaa8uxb378}} +\part{모델 진단 및 약동학-약력학 연계 모델}\label{part-uxbaa8uxb378-uxc9c4uxb2e8-uxbc0f-uxc57duxb3d9uxd559-uxc57duxb825uxd559-uxc5f0uxacc4-uxbaa8uxb378} -\hypertarget{diag-eval}{% -\chapter{모델 진단/평가 개론}\label{diag-eval}} +\chapter{모델 진단/평가 개론}\label{diag-eval} \Large\hfill @@ -3267,9 +3234,9 @@ \chapter{모델 진단/평가 개론}\label{diag-eval}} \begin{center}\rule{0.5\linewidth}{0.5pt}\end{center} -계량약리학에서 사용하는 다양한 방법론 중 가장 대표적인 것은 혼합효과 모델링-시뮬레이션이며, 이 일련의 과정에서 가장 핵심이 되는 것은 `신뢰할 수 있는', 그리고 신뢰할 수 있으므로 `유용하다고 인정되는' 모델이라고 할 수 있다. 계량약리학자는 이런 모델을 구축하고, 이를 기반으로 경험하지 못한 다양한 상황에 대한 가상 실험(또는 임상시험)을 실시할 수 있다. 다만, `신뢰할 수 있는 모델은 이러이러한 것이다.'라는 식으로 정의하는 것은 거의 불가능에 가깝다. 어느 정도의 신뢰가 필요한지, 얼마나 실제 상황을 잘 모사하여야 신뢰할 수 있는 것인지에 대한 객관적이며 절대적인 지표가 없기 때문이다. 따라서, `신뢰할 수 있다'고 함은 상황에 따라 가변적인 것이며, 모델링의 대상이나 목적에 따라 사용한 모델이 `신뢰할 수 있음'을 적절히 입증하는 절차가 필요하다. 그리고 이런 입증을 위해 활용되는 방법론이 바로 모델의 진단 또는 평가라 하는 절차이다.\index{시뮬레이션 / simulation}\index{simulation / 시뮬레이션} +계량약리학에서 사용하는 다양한 방법론 중 가장 대표적인 것은 혼합효과 모델링-시뮬레이션이며, 이 일련의 과정에서 가장 핵심이 되는 것은 `신뢰할 수 있는', 그리고 신뢰할 수 있으므로 `유용하다고 인정되는' 모델이라고 할 수 있다. 계량약리학자는 이런 모델을 구축하고, 이를 기반으로 경험하지 못한 다양한 상황에 대한 가상 실험(또는 임상시험)을 실시할 수 있다. 다만, '신뢰할 수 있는 모델은 이러이러한 것이다.'라는 식으로 정의하는 것은 거의 불가능에 가깝다. 어느 정도의 신뢰가 필요한지, 얼마나 실제 상황을 잘 모사하여야 신뢰할 수 있는 것인지에 대한 객관적이며 절대적인 지표가 없기 때문이다. 따라서, '신뢰할 수 있다'고 함은 상황에 따라 가변적인 것이며, 모델링의 대상이나 목적에 따라 사용한 모델이 '신뢰할 수 있음'을 적절히 입증하는 절차가 필요하다. 그리고 이런 입증을 위해 활용되는 방법론이 바로 모델의 진단 또는 평가라 하는 절차이다.\index{시뮬레이션 / simulation}\index{simulation / 시뮬레이션} -모델 진단/평가의 구체적 내용을 살펴보기 전에, 계량약리학의 본질적인 필요성과 연결 지어 앞서 언급한 `신뢰성'이라는 개념에 대해 조금 더 구체적으로 생각해 볼 필요가 있다. 계량약리학 분석은 신약 개발 또는 임상 약물치료 상황에서 제시되는 특정한 질문들에 대한 타당한 해답을 얻기 위해 수행하는 것이다. 예를 들어, ``목표 적응증을 가진 환자에서 임상적으로 적용 가능한 최적의 용량-용법은 어떤 것인가?''라는 질문에 대한 답을 얻기 위해서는, 기존에 확보한 약동-약력학 자료(비임상/임상)로부터 최선의 모델을 구현하고, 이를 이용한 다양한 시뮬레이션을 수행함으로써 최대의 유효성과 안전성을 충족하는 용량-용법을 찾게 된다.\index{시뮬레이션 / simulation}\index{simulation / 시뮬레이션} +모델 진단/평가의 구체적 내용을 살펴보기 전에, 계량약리학의 본질적인 필요성과 연결 지어 앞서 언급한 '신뢰성'이라는 개념에 대해 조금 더 구체적으로 생각해 볼 필요가 있다. 계량약리학 분석은 신약 개발 또는 임상 약물치료 상황에서 제시되는 특정한 질문들에 대한 타당한 해답을 얻기 위해 수행하는 것이다. 예를 들어, ``목표 적응증을 가진 환자에서 임상적으로 적용 가능한 최적의 용량-용법은 어떤 것인가?''라는 질문에 대한 답을 얻기 위해서는, 기존에 확보한 약동-약력학 자료(비임상/임상)로부터 최선의 모델을 구현하고, 이를 이용한 다양한 시뮬레이션을 수행함으로써 최대의 유효성과 안전성을 충족하는 용량-용법을 찾게 된다.\index{시뮬레이션 / simulation}\index{simulation / 시뮬레이션} \begin{figure} @@ -3293,12 +3260,11 @@ \chapter{모델 진단/평가 개론}\label{diag-eval}} 예측 신뢰성: 시뮬레이션 시나라오와 절차의 타당성\index{시뮬레이션 / simulation}\index{simulation / 시뮬레이션} \end{enumerate} -따라서, 독자는 `모델링의 절차'에 초점을 두는 이 장에서 다루고자 하는 신뢰성의 개념이 위에 제시한 3개의 요인 중 2번에 해당하는 것임을 미리 이해할 필요가 있다. 자료 신뢰성은 그러한 자료를 얻고자 하는 `실험 또는 시험의 설계와 수행'과 관련이 있는 것이며, 예측 신뢰성은 어느 수준의 신뢰성이 입증된 모델을 확보한 상황에서 수행하는 `시뮬레이션의 절차'와 관련이 있는 것이기 때문이다.\index{시뮬레이션 / simulation}\index{simulation / 시뮬레이션} +따라서, 독자는 '모델링의 절차'에 초점을 두는 이 장에서 다루고자 하는 신뢰성의 개념이 위에 제시한 3개의 요인 중 2번에 해당하는 것임을 미리 이해할 필요가 있다. 자료 신뢰성은 그러한 자료를 얻고자 하는 '실험 또는 시험의 설계와 수행'과 관련이 있는 것이며, 예측 신뢰성은 어느 수준의 신뢰성이 입증된 모델을 확보한 상황에서 수행하는 '시뮬레이션의 절차'와 관련이 있는 것이기 때문이다.\index{시뮬레이션 / simulation}\index{simulation / 시뮬레이션} 이제 모델 진단/평가의 정확한 개념과 개별 절차에 대한 개략적 설명을 통해 이 교재 전반에서 다루는 내용에 대한 독자의 이해를 증진하고자 한다. -\hypertarget{uxbaa8uxb378-uxc9c4uxb2e8uxacfc-uxd3c9uxac00uxc758-uxc77cuxbc18-uxd2b9uxc131}{% -\section{모델 진단과 평가의 일반 특성}\label{uxbaa8uxb378-uxc9c4uxb2e8uxacfc-uxd3c9uxac00uxc758-uxc77cuxbc18-uxd2b9uxc131}} +\section{모델 진단과 평가의 일반 특성}\label{uxbaa8uxb378-uxc9c4uxb2e8uxacfc-uxd3c9uxac00uxc758-uxc77cuxbc18-uxd2b9uxc131} 모델의 진단/평가라는 용어를 사용함에 있어 의문을 가지는 독자들이 있을 수 있다. 진단이면 진단이고, 평가면 평가지 왜 이 두 용어가 계속 같이 붙어 다니는 것인가? 이에 대한 답변을 얻기 위해서는 진단과 평가가 무엇인가에 대한 정의가 필요한데, 전문가마다 이에 대한 견해는 일부 차이가 있는 경우가 많아 어느 것이 옳다고 특정하기는 쉽지 않다. 그러나 본 교재에서는 설명을 위해 진단과 평가를 다음과 같이 정의하고자 한다. @@ -3341,8 +3307,7 @@ \section{모델 진단과 평가의 일반 특성}\label{uxbaa8uxb378-uxc9c4uxb2 모델 진단/평가는 대상이 되는 모델의 NONMEM 실행결과가 적절히 얻어졌음을 전제로 한다. 즉, NONMEM 실행결과(output) 파일에서 NONMEM 실행이 적절히 이루어지지 않았다는 근거(예\textgreater{} MINIMIZATION TERMINATED 메시지 또는 PARAMETER NEAR BOUNDARY 메시지 등)가 있다면, 그 이후의 모델 진단/평가는 의미가 없다. 따라서, 특정 모델에 대한 NONMEM 실행 후에는 반드시 실행결과 파일을 확인하여 데이터에 대해 모델의 적합이 적절히 이루어졌음을 확인하는 것이 중요하다. 이를 조금 더 확장해 보면, ``모델의 적합이 적절히 이루어졌다.''라는 표현과 ``최적의 모델이다.''라는 표현의 차이를 이해할 수 있다. 어떤 모델이건 기본적으로 주어진 구조와 데이터의 적합이 최선으로 이루어진 결과를 바탕으로 진단/평가가 수행되는 것이고, 다양한 진단/평가 결과 가장 좋은 결과를 보이는 모델이 최적의 모델인 것이다.\index{실행결과 파일 / output files}\index{output files / 실행결과 파일} -\hypertarget{uxbaa8uxb378-uxc9c4uxb2e8uxd3c9uxac00uxc758-uxc694uxc18c}{% -\section{모델 진단/평가의 요소}\label{uxbaa8uxb378-uxc9c4uxb2e8uxd3c9uxac00uxc758-uxc694uxc18c}} +\section{모델 진단/평가의 요소}\label{uxbaa8uxb378-uxc9c4uxb2e8uxd3c9uxac00uxc758-uxc694uxc18c} 일반적으로 모델을 진단하거나 평가할 때 3가지의 요소를 확인한다. 이는 다음과 같다. @@ -3378,8 +3343,7 @@ \section{모델 진단/평가의 요소}\label{uxbaa8uxb378-uxc9c4uxb2e8uxd3c9ux \index{shrinkage / 축소}\index{shrinkage / 축소} \index{적합도 / goodness of fit}\index{goodness of fit / 적합도} -\hypertarget{uxc801uxd569uxb3c4uxc758-uxd655uxc778-uxbc29uxbc95}{% -\subsection{적합도의 확인 방법}\label{uxc801uxd569uxb3c4uxc758-uxd655uxc778-uxbc29uxbc95}} +\subsection{적합도의 확인 방법}\label{uxc801uxd569uxb3c4uxc758-uxd655uxc778-uxbc29uxbc95} \index{적합도 / goodness of fit}\index{goodness of fit / 적합도} @@ -3387,7 +3351,7 @@ \subsection{적합도의 확인 방법}\label{uxc801uxd569uxb3c4uxc758-uxd655uxc 첫 번째 전제조건은 유효한 실행결과이다. 모든 NONMEM 실행에서 NONMEM은 주어진 구조 내에서 파라미터 값을 조정해 가면서 최적의 적합도를 가지는 파라미터를 추정하게 되므로, 이 과정 속에서 목적함수값은 지속적으로 감소하게 된다. 결국 NONMEM은 실행결과 파일에 제시된 구조 하에서 파라미터 값 조정을 통해 확보할 수 있는 목적함수의 값들 중에서 가장 작은 값을 보고하는데, 이것이 바로 최소화된 목적함수값(minimized objective function value)이며, 바로 이 값이 적합도 평가에 사용되는 값이라는 것을 반드시 기억해야 한다. 따라서, 이런 최소화가 적절히 이루어지지 않은 실행결과(MINIMIZATION SUCCESSFUL 메시지가 출력되지 않은 경우)에 보고된 목적함수값을 모델 진단/평가에 활용해서는 안 된다.\index{목적함수 / objective function}\index{실행결과 파일 / output files}\index{objective function / 목적함수}\index{output files / 실행결과 파일}\index{적합도 / goodness of fit}\index{goodness of fit / 적합도}\index{SS} -두 번째 전제조건은 목적함수값이 포함 관계를 갖는 모델(nested model) 간의 상대평가의 척도라는 것이다. 간단히 말해, 목적함수값은 데이터 레코드의 개수나 잔차모델의 구조에 따라 영향을 받는다. 따라서, `목적함수값이 OOO'라는 문구만을 통해서는 그 모델의 적합도가 좋다거나 나쁘다는 결론을 내릴 수 없다. 목적함수값을 이용해 적합도를 진단할 때에는 비교 대상이 되는 모델이 반드시 존재해야 하며, `목적함수값으로 판단할 때 A모델이 B모델보다 적합도가 좋다.'라는 식의 해석이 이루어져야 한다. 또한, 비교 대상이 되는 모델 간에는 포함(nested)관계가 존재해야 하는데, 한 모델의 구성 요소를 삭제하지 않은 상태에서 새로운 모델의 요소가 부가되어야 한다. 예를 들어, 2구획 모델은 1구획 모델을 포함하는 모델이다. 그러나, 같은 2구획 모델이라도 약물 제거에 관한 구조(linear vs non-linear)가 아예 다르거나, 보다 복잡한 흡수 모델 간에 포함 관계가 없는 경우 등에는 목적함수값만으로 두 모델을 비교해서는 안 되며, 이 경우에는 Akaike Information Criterion (AIC)이라는 값을 이용한다. 이는 아래와 같이 계산된다.\index{목적함수 / objective function}\index{objective function / 목적함수}\index{잔차 / residual error}\index{적합도 / goodness of fit}\index{residual error / 잔차}\index{goodness of fit / 적합도} +두 번째 전제조건은 목적함수값이 포함 관계를 갖는 모델(nested model) 간의 상대평가의 척도라는 것이다. 간단히 말해, 목적함수값은 데이터 레코드의 개수나 잔차모델의 구조에 따라 영향을 받는다. 따라서, '목적함수값이 OOO'라는 문구만을 통해서는 그 모델의 적합도가 좋다거나 나쁘다는 결론을 내릴 수 없다. 목적함수값을 이용해 적합도를 진단할 때에는 비교 대상이 되는 모델이 반드시 존재해야 하며, '목적함수값으로 판단할 때 A모델이 B모델보다 적합도가 좋다.'라는 식의 해석이 이루어져야 한다. 또한, 비교 대상이 되는 모델 간에는 포함(nested)관계가 존재해야 하는데, 한 모델의 구성 요소를 삭제하지 않은 상태에서 새로운 모델의 요소가 부가되어야 한다. 예를 들어, 2구획 모델은 1구획 모델을 포함하는 모델이다. 그러나, 같은 2구획 모델이라도 약물 제거에 관한 구조(linear vs non-linear)가 아예 다르거나, 보다 복잡한 흡수 모델 간에 포함 관계가 없는 경우 등에는 목적함수값만으로 두 모델을 비교해서는 안 되며, 이 경우에는 Akaike Information Criterion (AIC)이라는 값을 이용한다. 이는 아래와 같이 계산된다.\index{목적함수 / objective function}\index{objective function / 목적함수}\index{잔차 / residual error}\index{적합도 / goodness of fit}\index{residual error / 잔차}\index{goodness of fit / 적합도} \begin{equation} AIC = -2LL + 2k \ \ \text{(k = number of parameters)} \label{eq:aic} @@ -3420,14 +3384,13 @@ \subsection{적합도의 확인 방법}\label{uxc801uxd569uxb3c4uxc758-uxd655uxc 이는 OFV 값이 기본적으로 likelihood(가능도, 우도)의 함수라는 이유로 인해 likelihood 값 간의 통계학적인 비교를 가능케 하는 likelihood ratio test (LRT)라는 통계학적 방법에 근거를 둔다. 이전 모델에 비해 1개의 파라미터를 필요로 하는 모델 요소가 부가되었을 때, OFV가 3.84 이상 감소하였다면 이는 유의미한 모델의 개선이다. 물론, 더 낮은 p-value를 통해 통계학적인 유의성을 평가할 수도 있으며, 이 경우 p-value가 낮아질수록 더 큰 OFV값의 감소가 관찰되어야 유의한 개선이라 본다. 그러나 가장 일반적인 것은 p=0.05로 하는 경우이며, 따라서 여기에서는 이 기준에 맞추어 OFV값의 비교를 설명하였다.\index{가능도 / likelihood}\index{likelihood / 가능도}\index{likelihood ratio test / 가능도비 검정} -NONMEM의 최근 버젼에서는 각 개인(individual) 별로 최소화된 OFV값을 자동으로 보고해 주는데 이 값을 iOFV값이라 하며, 전체 모델의 OFV값은 각 개인의 iOFV값의 합이다. 전체 모델의 OFV에서와 같이 관찰값을 많이 가진 개인은 그렇지 않은 개인에 비해 큰 iOFV값을 보인다. 만약, 관찰값의 개수가 모든 개인에서 같다면, iOFV값이 큰 개인일수록 사용자가 현재 제시한 모델 구조와 잘 맞지 않는 관찰값들을 가지고 있는 것으로 해석할 수 있다.(모델의 적합도가 클수록 OFV값은 떨어짐을 상기하자.) 이렇게 OFV값 증가에 영향을 크게 주는 개인들을 `influential individual'이라 한다. 따라서, iOFV 값은 모델 간의 적합도를 비교하는 데 사용되는 값이 아니라 전체 적합 상태 내에서 각 개인의 특성을 파악할 수 있도록 해 주는 값이라고 보는 편이 보다 타당한 해석이다.\index{적합도 / goodness of fit}\index{goodness of fit / 적합도} +NONMEM의 최근 버젼에서는 각 개인(individual) 별로 최소화된 OFV값을 자동으로 보고해 주는데 이 값을 iOFV값이라 하며, 전체 모델의 OFV값은 각 개인의 iOFV값의 합이다. 전체 모델의 OFV에서와 같이 관찰값을 많이 가진 개인은 그렇지 않은 개인에 비해 큰 iOFV값을 보인다. 만약, 관찰값의 개수가 모든 개인에서 같다면, iOFV값이 큰 개인일수록 사용자가 현재 제시한 모델 구조와 잘 맞지 않는 관찰값들을 가지고 있는 것으로 해석할 수 있다.(모델의 적합도가 클수록 OFV값은 떨어짐을 상기하자.) 이렇게 OFV값 증가에 영향을 크게 주는 개인들을 'influential individual'이라 한다. 따라서, iOFV 값은 모델 간의 적합도를 비교하는 데 사용되는 값이 아니라 전체 적합 상태 내에서 각 개인의 특성을 파악할 수 있도록 해 주는 값이라고 보는 편이 보다 타당한 해석이다.\index{적합도 / goodness of fit}\index{goodness of fit / 적합도} 시각적 방법을 이용한 적합도 확인에 대해서는 이후 ``모델 적합 상태에 대한 진단'' 장에서 구체적으로 설명한다.\index{적합도 / goodness of fit}\index{goodness of fit / 적합도} -\hypertarget{uxd30cuxb77cuxbbf8uxd130uxc758-uxc815uxd655uxc131uxacfc-uxc815uxbc00uxc131}{% -\subsection{파라미터의 정확성과 정밀성}\label{uxd30cuxb77cuxbbf8uxd130uxc758-uxc815uxd655uxc131uxacfc-uxc815uxbc00uxc131}} +\subsection{파라미터의 정확성과 정밀성}\label{uxd30cuxb77cuxbbf8uxd130uxc758-uxc815uxd655uxc131uxacfc-uxc815uxbc00uxc131} -NONMEM 실행 결과로 보고되는 파라미터들(THETA, OMEGA, SIGMA)은 기본적으로 현상을 설명하기에 적절한 값을 가지고 있어야 한다. 예를 들어, 비례잔차를 설정하였을 때 잔차의 분산을 나타내는 SIGMA 값이 10 이상으로 커진다거나, 흡수속도상수에 해당하는 THETA 값이 30 이상인 경우 이런 적절성을 의심해 볼 수 있다. 즉, 추정이 적절히 이루어져 기존 지식으로 받아들일 수 있는 값이어야 한다는 것이다. 계량약리학 초보자라면 특정 모델의 특성(taxonomy) 등과 관련한 기존 지식이 부족하여 파라미터값의 적절성을 평가하지 못하는 경우를 겪을 수 있다. 따라서, 이를 평가하기 위해서는 자신이 구현하고자 하는 모델의 특성과 파라미터가 의미하는 바에 대한 기초적 지식을 가지고 모델링을 수행하여야 한다. 이와 더불어, 초기값 등 사소한 모델 변경 시 최종 보고 파라미터 값이 과하게 요동치지 않아야 한다. 보통 데이터셋에 해당 파라미터를 추정하기에 정보가 충분치 못한 경우 이런 현상이 나타난다. 다시 말해 정보에 비해 너무 많은 파라미터를 추정한 것(overparametrization)일 수 있으며, 이렇게 불안정한 파라미터는 추정을 포기할 것을 고려해 봐야 한다. 또한, THETA 값에 대해서는 NONMEM 제어구문에서 제시한 각 파라미터 별 추정 허용 한계(boundary) 값에 근접해 있지는 않은 지 확인해야 한다. NONMEM이 output file에서 `parameter near boundary'라는 메시지를 띄워주므로 이런 메시지가 확인되었다면, 해당 파라미터의 추정 범위를 재설정하거나, 모델의 구조를 변경해야 하는 상황으로 해석하면 된다.\index{잔차 / residual error}\index{residual error / 잔차} +NONMEM 실행 결과로 보고되는 파라미터들(THETA, OMEGA, SIGMA)은 기본적으로 현상을 설명하기에 적절한 값을 가지고 있어야 한다. 예를 들어, 비례잔차를 설정하였을 때 잔차의 분산을 나타내는 SIGMA 값이 10 이상으로 커진다거나, 흡수속도상수에 해당하는 THETA 값이 30 이상인 경우 이런 적절성을 의심해 볼 수 있다. 즉, 추정이 적절히 이루어져 기존 지식으로 받아들일 수 있는 값이어야 한다는 것이다. 계량약리학 초보자라면 특정 모델의 특성(taxonomy) 등과 관련한 기존 지식이 부족하여 파라미터값의 적절성을 평가하지 못하는 경우를 겪을 수 있다. 따라서, 이를 평가하기 위해서는 자신이 구현하고자 하는 모델의 특성과 파라미터가 의미하는 바에 대한 기초적 지식을 가지고 모델링을 수행하여야 한다. 이와 더불어, 초기값 등 사소한 모델 변경 시 최종 보고 파라미터 값이 과하게 요동치지 않아야 한다. 보통 데이터셋에 해당 파라미터를 추정하기에 정보가 충분치 못한 경우 이런 현상이 나타난다. 다시 말해 정보에 비해 너무 많은 파라미터를 추정한 것(overparametrization)일 수 있으며, 이렇게 불안정한 파라미터는 추정을 포기할 것을 고려해 봐야 한다. 또한, THETA 값에 대해서는 NONMEM 제어구문에서 제시한 각 파라미터 별 추정 허용 한계(boundary) 값에 근접해 있지는 않은 지 확인해야 한다. NONMEM이 output file에서 'parameter near boundary'라는 메시지를 띄워주므로 이런 메시지가 확인되었다면, 해당 파라미터의 추정 범위를 재설정하거나, 모델의 구조를 변경해야 하는 상황으로 해석하면 된다.\index{잔차 / residual error}\index{residual error / 잔차} OFV값 최소화 시 고려되는 파라미터들(THETA, OMEGA, SIGMA)은 그 값과 더불어 서로 간의 상관관계를 확인해야 한다. 제어구문의 마지막 부분에 \$COV(\$COVARIANCE)라는 블록을 정의하면, NONMEM은 파라미터들 간의 correlation matrix를 함께 output file에 출력한다. 생리학적인 타당성이 있지 않은 한, THETA나 OMEGA 들은 기본적으로 상호 독립이며, 각각 다른 약동/약력학적 의미를 가진다는 전제 조건 하에 모델링을 진행한다. 그러나, 때로는 이런 파라미터들 간에 유의미한 상관성이 확인되는데, 가장 대표적인 경우는 각 파라미터들을 정확히 구분하여 추정할 수 있는 정도로 충분한 정보가 데이터셋에 제공되지 않은 경우이다. 구체적인 설명은 입문 수준을 넘어서는 것이므로 이후 단계에서 다루도록 한다.\index{correlation matrix / 상관행렬}\index{\$COVARIANCE (\$COV, \$COVAR)} @@ -3435,18 +3398,15 @@ \subsection{파라미터의 정확성과 정밀성}\label{uxd30cuxb77cuxbbf8uxd1 중요한 것은 적합도와 달리 파라미터의 정확성과 정밀성은 모든 실행에서 수행하여야 하는 진단 방법이 아니라는 점이다. 앞에 기술한 바와 마찬가지로 파라미터의 정확성과 정밀성은 데이터에 포함된 정보의 양과 모델이 복잡한 정도 간의 상대적인 관계에서 문제가 되는 경우가 많으므로, 어느 정도 모델이 복잡해진 상태에서 일정 수준의 정확성과 정밀성이 유지되는가를 평가하는 것이 적절하다. 모델에 여러 요소를 부가하다 보면 파라미터의 품질에 문제가 생기는 순간이 생기기 마련이고, 그러한 상황이 생기는 시점에서 모델의 요소들을 유지할 것인지, 보다 간단한 모델을 최종 모델로 선정할 것인 것 등을 고려하면 된다. 구조모델이 데이터셋이 지지하는 바와 어긋나는 경우에도 파라미터 품질에 문제가 생기지만, 이에 앞서 적합도가 좋지 않은 것이 확인될 것이므로, 기본모델(base model) 선정 시 파라미터 품질을 볼 필요는 없다. 오히려 서로 다른 두 개의 구조모델이 최종모델의 후보로 제안된 상황에서 파라미터 품질이 모델 선택의 기준이 될 수 있다. 즉, 파라미터의 정확성과 정밀성은 핵심 실행(key run)의 결과에 대해 평가하는 것이다.\index{적합도 / goodness of fit}\index{goodness of fit / 적합도} -\hypertarget{uxc7acuxd604uxc131}{% -\subsection{재현성}\label{uxc7acuxd604uxc131}} +\subsection{재현성}\label{uxc7acuxd604uxc131} 최종모델 단계에서 적용하는 모델의 진단/평가 방법이다. 이는 기본적으로 최종모델을 이용한 시뮬레이션 결과와 모델 구축의 근간이 된 데이터셋 간의 일치성을 평가한다. Numerical Predictive Check (NPC), Visual Predictive Check (VPC) 등의 방법이 이에 해당하며, 파라미터 품질에 대한 바와 마찬가지로 각 해당 장에서 구체적으로 설명할 것이다.\index{시뮬레이션 / simulation}\index{simulation / 시뮬레이션} -\hypertarget{uxb9fauxc74cuxb9d0}{% -\section{맺음말}\label{uxb9fauxc74cuxb9d0}} +\section{맺음말}\label{uxb9fauxc74cuxb9d0} 최종모델은 적합도, 파라미터 품질, 재현성 등 모든 기준을 만족해야 하며, 각각에 진단/평가 요소 별로 해당 모델이 일정한 기준을 충족하였음을 확인할 수 있는 자료를 제시하는 것이 바람직하다. 그러나 모델링을 수행하는 중간 단계에서는 이런 진단/평가 방법을 상황에 맞게 활용할 수 있어야 한다. 적합도를 기반으로 더 좋은 모델을 찾아 가면서, 파라미터의 개수가 비교적 많아진 모델에서는 파라미터 품질이 적절히 유지되고 있는가를 모니터링해야 하며, 최종모델 단계에서는 모델링 수행 절차 중 발견하지 못했던 문제들을 찾아 보완해야 한다. 이후 소개되는 여러 방법론들을 숙지하여 `신뢰할 수 있는' 모델을 구축하는 효율적이고, 바람직한 절차를 수행할 수 있어야 하겠다.\index{적합도 / goodness of fit}\index{goodness of fit / 적합도} -\hypertarget{fit}{% -\chapter{모델 적합 상태에 대한 진단}\label{fit}} +\chapter{모델 적합 상태에 대한 진단}\label{fit} \Large\hfill @@ -3465,7 +3425,7 @@ \chapter{모델 적합 상태에 대한 진단}\label{fit}} } -\caption{Modeling carousel (Gabrielsson \protect\hyperlink{ref-gabrielsson}{2006})}\label{fig:carousel} +\caption{Modeling carousel (\citeproc{ref-gabrielsson}{Gabrielsson 2006})}\label{fig:carousel} \end{figure} 잔차는 관측 값에서 예측 값을 뺀 값을 의미하며(그림 \ref{fig:def-residual}, ε (epsilon)으로 표시한다(ε = C\textsubscript{observation} -- C\textsubscript{prediction}). 잔차가 양수면, 즉 관측값이 예측곡선보다 위에 있으면 과소예측(underestimation) 되었다고 표현하고, 잔차가 음수이면, 즉 관측값이 예측곡선보다 아래에 있으면 과대예측(overestimation) 되었다고 표현한다.\index{잔차 / residual error}\index{residual error / 잔차} @@ -3480,7 +3440,7 @@ \chapter{모델 적합 상태에 대한 진단}\label{fit}} } -\caption{Definition of residual (Gabrielsson \protect\hyperlink{ref-gabrielsson}{2006})}\label{fig:def-residual} +\caption{Definition of residual (\citeproc{ref-gabrielsson}{Gabrielsson 2006})}\label{fig:def-residual} \end{figure} 잔차는 정규성(normality)과, 등분산성(homoscedasticity) 그리고 독립성(independency)이 있다고 가정을 한다. 정규성 가정에서는 잔차의 분포는 평균이 0이고 분산이 σ\textsuperscript{2}인 정규분표를 따른다고 가정한다(ε\textasciitilde N(0, σ\textsuperscript{2})). 이 때문에 잔차분석은, outlier를 찾아내는데 활용될 수 있고, 모델의 가정이 잘못되었는지 판단하거나 다른 구조 모델을 써야할 지를 결정하는데 도움을 줄 수 있다. \index{homoscedasticity}\index{등분산 / homoscedastic}\index{homoscedastic / 등분산}\index{outlier / 이상치}\index{잔차 / residual error}\index{residual error / 잔차} @@ -3511,32 +3471,34 @@ \chapter{모델 적합 상태에 대한 진단}\label{fit}} 실제 NONMEM 제어구문에서는 오차모델 사용 시 코드 \ref{exm:combined-upper}, \ref{exm:combined-lower}와 같은 방식들을 많이 쓰는데, 위 아래 수식 모두 혼합오차모델의 형태이다. 코드 \ref{exm:combined-upper}은 가장 기본적인 형태이고, 코드 \ref{exm:combined-lower}의 수식 형태를 사용하는 경우에는 EPS(1)의 분산을 1로 고정하여 (\$SIGMA 1 FIX) 사용하는데, 이 때는 THETA의 추정값이 각 변이들의 표준편차를 나타내게 된다. 즉, THETA(5)는 가법오차모델의 표준편차이고, THETA(6)는 비례오차모델의 표준편차이다. 가법오차모델만 사용하고 싶다면 THETA(6)을 0으로 고정하면 되고, 비례오차모델만 사용하고 싶다면 THETA(5)를 0과 가까운 매우 작은 값으로 고정(예, \texttt{0.0001\ FIX})하면 된다.\index{가법오차 / additive error}\index{비례오차 / proportional error}\index{additive error / 가법오차}\index{proportional error / 비례오차}\index{\$SIGMA} \begin{example} -\protect\hypertarget{exm:combined-upper}{}{\label{exm:combined-upper} }\$ERROR structure in NONMEM control stream: 기본형태\index{\$ERROR} +\protect\hypertarget{exm:combined-upper}{}\label{exm:combined-upper}\$ERROR structure in NONMEM control stream: 기본형태\index{\$ERROR} \end{example} + \vspace{-5ex} \begin{Shaded} \begin{Highlighting}[] \DataTypeTok{$ERROR} \NormalTok{ IPRED = F} -\NormalTok{ Y = IPRED }\KeywordTok{*}\NormalTok{ (}\DecValTok{1}\NormalTok{+EPS(}\DecValTok{1}\NormalTok{)) + EPS(}\DecValTok{2}\NormalTok{)} +\NormalTok{ Y = IPRED }\OtherTok{*}\NormalTok{ (}\DecValTok{1}\NormalTok{+EPS(}\DecValTok{1}\NormalTok{)) + EPS(}\DecValTok{2}\NormalTok{)} \end{Highlighting} \end{Shaded} \begin{example} -\protect\hypertarget{exm:combined-lower}{}{\label{exm:combined-lower} }\$ERROR structure in NONMEM control stream: 가법오차모델의 표준편차\index{\$ERROR} +\protect\hypertarget{exm:combined-lower}{}\label{exm:combined-lower}\$ERROR structure in NONMEM control stream: 가법오차모델의 표준편차\index{\$ERROR} 이고, 비례오차모델의 표준편차를 반영 \end{example} + \vspace{-5ex} \begin{Shaded} \begin{Highlighting}[] \DataTypeTok{$ERROR} \NormalTok{ IPRED = F} -\NormalTok{ W = SQRT(THETA(}\DecValTok{5}\NormalTok{)**}\DecValTok{2}\NormalTok{ + THETA(}\DecValTok{6}\NormalTok{) **}\DecValTok{2} \KeywordTok{*}\NormalTok{ IPRED**}\DecValTok{2}\NormalTok{)} +\NormalTok{ W = SQRT(THETA(}\DecValTok{5}\NormalTok{)**}\DecValTok{2}\NormalTok{ + THETA(}\DecValTok{6}\NormalTok{) **}\DecValTok{2} \OtherTok{*}\NormalTok{ IPRED**}\DecValTok{2}\NormalTok{)} \NormalTok{ IRES = DV {-} IPRED} \NormalTok{ IWRES = IRES / W} -\NormalTok{ Y = IPRED + W }\KeywordTok{*}\NormalTok{ EPS(}\DecValTok{1}\NormalTok{)} +\NormalTok{ Y = IPRED + W }\OtherTok{*}\NormalTok{ EPS(}\DecValTok{1}\NormalTok{)} \end{Highlighting} \end{Shaded} @@ -3548,7 +3510,7 @@ \chapter{모델 적합 상태에 대한 진단}\label{fit}} } -\caption{Example of run test (Gabrielsson \protect\hyperlink{ref-gabrielsson}{2006})}\label{fig:run-test} +\caption{Example of run test (\citeproc{ref-gabrielsson}{Gabrielsson 2006})}\label{fig:run-test} \end{figure} @@ -3556,7 +3518,7 @@ \chapter{모델 적합 상태에 대한 진단}\label{fit}} Run count가 너무 크거나 (+/-가 너무 많이 교차되어도), 너무 작아도 (+/-의 교차가 너무 적게 일어나도) 잔차의\index{잔차 / residual error}\index{residual error / 잔차} 분포가 무작위가 아님을 시사하지만, 이 결과만으로 결론내기보다는 잔차에 대한 진단 플롯들과 함께 고려하여 판단해야 한다.\index{잔차 / residual error}\index{residual error / 잔차} -Xpose4 package를 이용하여 여러 진단 플롯들을 그릴 수 있는데, 그 중 하나인 basic goodness-of-fit plots에서(그림 \ref{fig:basic-gof-plot}) 아래쪽 두 개의 그림이 잔차(residual)에 대한 진단 플롯이다. 좌측은 \textbar IWRES\textbar{} vs Individual predictions (IPRED), 우측은 Conditional weighted residuals (CWRES) vs Time을 나타낸 그림이다. IWRES는 개인 가중잔차(Individual Weighted residuals)이고 \textbar IWRES\textbar 는 개인 가중잔차의 절대값이다. 잔차모델이 적절하다면, CWRES 플롯의 모든 점들이 0을 기준으로 대칭으로 분포하게 되며, CWRES 값들의 흩어진 정도가 시간이나 개인 예측 값에 따라 경향성이 없고, 그 범위가 -3과+3 사이에 분포할 것으로 기대된다(\protect\hyperlink{use-of-xpose4}{10장 NONMEM 실행결과 해석 및 Xpose4 사용법} 참고).\index{개인 예측 / individual(specific) prediction(s)}\index{individual(specific) prediction(s) / 개인 예측}\index{잔차 / residual error}\index{residual error / 잔차}\index{conditional weighted residuals / 조건부 가중 잔차}\index{CWRES}\index{IPRED}\index{IWRES}\index{PRED}\index{RES}\index{WRES} +Xpose4 package를 이용하여 여러 진단 플롯들을 그릴 수 있는데, 그 중 하나인 basic goodness-of-fit plots에서(그림 \ref{fig:basic-gof-plot}) 아래쪽 두 개의 그림이 잔차(residual)에 대한 진단 플롯이다. 좌측은 \textbar IWRES\textbar{} vs Individual predictions (IPRED), 우측은 Conditional weighted residuals (CWRES) vs Time을 나타낸 그림이다. IWRES는 개인 가중잔차(Individual Weighted residuals)이고 \textbar IWRES\textbar 는 개인 가중잔차의 절대값이다. 잔차모델이 적절하다면, CWRES 플롯의 모든 점들이 0을 기준으로 대칭으로 분포하게 되며, CWRES 값들의 흩어진 정도가 시간이나 개인 예측 값에 따라 경향성이 없고, 그 범위가 -3과+3 사이에 분포할 것으로 기대된다(\hyperref[use-of-xpose4]{10장 NONMEM 실행결과 해석 및 Xpose4 사용법} 참고).\index{개인 예측 / individual(specific) prediction(s)}\index{individual(specific) prediction(s) / 개인 예측}\index{잔차 / residual error}\index{residual error / 잔차}\index{conditional weighted residuals / 조건부 가중 잔차}\index{CWRES}\index{IPRED}\index{IWRES}\index{PRED}\index{RES}\index{WRES} \begin{figure} @@ -3592,7 +3554,7 @@ \chapter{모델 적합 상태에 대한 진단}\label{fit}} } -\caption{Schematic illustration of wrong structural models (upper row) and wrong variance models (lower row) (Gabrielsson \protect\hyperlink{ref-gabrielsson}{2006})}\label{fig:wrong-models} +\caption{Schematic illustration of wrong structural models (upper row) and wrong variance models (lower row) (\citeproc{ref-gabrielsson}{Gabrielsson 2006})}\label{fig:wrong-models} \end{figure} 우선, 첫째로 구조모델이 잘못된 경우이다. 그림 \ref{fig:wrong-structure}을 보면 시간에 따른 잔차의 모양이 곡선형태를 이루고 있는데, 이는 모델에 지연시간을 반영하지 않은 경우이다. Run test를 통해 +/-를 확인해보면 앞쪽 시간에서는 마이너스, 중간시간대에서는 플러스가 됐다가 이후 다시 마이너스가 되는 현상이 나타나고, 이를 그림으로 보면 말발굽 모양이 된다. (그림 \ref{fig:wrong-structure})\index{잔차 / residual error}\index{residual error / 잔차} @@ -3603,7 +3565,7 @@ \chapter{모델 적합 상태에 대한 진단}\label{fit}} } -\caption{Example of wrong structure model (lag time) (Gabrielsson \protect\hyperlink{ref-gabrielsson}{2006})}\label{fig:wrong-structure} +\caption{Example of wrong structure model (lag time) (\citeproc{ref-gabrielsson}{Gabrielsson 2006})}\label{fig:wrong-structure} \end{figure} @@ -3647,7 +3609,7 @@ \chapter{모델 적합 상태에 대한 진단}\label{fit}} \begin{table} -\caption{\label{tab:diag-response}진단 결과에 따른 모델 개선 방안 (Draper \protect\hyperlink{ref-draper1998applied}{1998})} +\caption{\label{tab:diag-response}진단 결과에 따른 모델 개선 방안 (\citeproc{ref-draper1998applied}{Draper 1998})} \centering \begin{tabular}[t]{>{\raggedright\arraybackslash}p{3cm}>{\raggedright\arraybackslash}p{3cm}>{\raggedright\arraybackslash}p{3cm}>{\raggedright\arraybackslash}p{3cm}} \toprule @@ -3664,8 +3626,7 @@ \chapter{모델 적합 상태에 대한 진단}\label{fit}} -\hypertarget{cov}{% -\chapter{NONMEM의 \$COVARIANCE}\label{cov}} +\chapter{NONMEM의 \$COVARIANCE}\label{cov} \index{\$COVARIANCE (\$COV, \$COVAR)} @@ -3678,27 +3639,27 @@ \chapter{NONMEM의 \$COVARIANCE}\label{cov}} NONMEM의 실행과정은 대체로 initialization step, estimation step(추정단계), covariance step(공분산단계), table step(표단계)으로 나눌 수 있다. 공분산단계의 목적은 추정단계에서 추정된 파라미터(θ, Ω, Σ)들의 점 추정치(point estimate)에 대한 standard error(표준오차)를 구하는 것이다. 따라서, \$COV 절을 제어구문 파일에 포함시키지 않으면 표준오차 결과를 볼 수 없다. 공분산단계는 원칙적으로 추정단계가 성공했을 때만 의미가 있으므로 성공한 후에 실행되는데, 만약 추정 실패 시에도 종료시점에서의 값을 알고 싶으면 \$COV에 UNCOND 옵션을 추가해주면 된다. 공분산단계가 추정단계와 별도로 분리된 이유는 NONMEM이 사용자가 준 original scale에서 목적함수를 최소화하는 것이 아니라, unconstrained parameter (UCP)를 사용하기 때문이다. UCP는 과거에 scaled and transformed parameter (STP)라고도 불리었다.\index{공분산 / covariance}\index{목적함수 / objective function}\index{covariance / 공분산}\index{objective function / 목적함수}\index{standard errors of the estimates / 추정값의 표준오차}\index{standard errors of the estimates / 추정값의 표준오차}\index{\$COVARIANCE (\$COV, \$COVAR)} -\hypertarget{cov-example}{% -\section{실제 사례}\label{cov-example}} +\section{실제 사례}\label{cov-example} 다음은 공분산단계의 결과물을 이해하기 위한 예제 제어구문 파일의 내용이다. (코드 \ref{exm:theoph-control-stream}) Theophylline 데이터셋은 12명의 사람에게 320mg의 theophylline을 1회 경구 투여한 자료이며 NONMEM 설치시에 \texttt{THEO} 라는 파일 이름으로 포함되어 있다. 그림은 \ref{Theoph}절을 참고한다.\index{공분산 / covariance}\index{covariance / 공분산} \begin{example} -\protect\hypertarget{exm:theoph-control-stream}{}{\label{exm:theoph-control-stream} }Theophylline의 경구 투여 약동학 자료 모델링을 위한 제어구문 파일 +\protect\hypertarget{exm:theoph-control-stream}{}\label{exm:theoph-control-stream}Theophylline의 경구 투여 약동학 자료 모델링을 위한 제어구문 파일 \end{example} + \vspace{-5ex} \begin{Shaded} \begin{Highlighting}[] \DataTypeTok{$PROB}\NormalTok{ THEOPHYLLINE ORAL} \DataTypeTok{$INPUT}\NormalTok{ ID AMT=DROP TIME DV BWT} -\DataTypeTok{$DATA}\NormalTok{ ..}\KeywordTok{/}\OtherTok{THEO} +\DataTypeTok{$DATA}\NormalTok{ ..}\OtherTok{/THEO} \DataTypeTok{$PRED} -\NormalTok{ DOSE = }\DecValTok{320} -\NormalTok{ KA = THETA(}\DecValTok{1}\NormalTok{) }\KeywordTok{*}\NormalTok{ EXP(ETA(}\DecValTok{1}\NormalTok{))} -\NormalTok{ V = THETA(}\DecValTok{2}\NormalTok{) }\KeywordTok{*}\NormalTok{ EXP(ETA(}\DecValTok{2}\NormalTok{))} -\NormalTok{ K = THETA(}\DecValTok{3}\NormalTok{) }\KeywordTok{*}\NormalTok{ EXP(ETA(}\DecValTok{3}\NormalTok{))} -\NormalTok{ F = DOSE/V}\DataTypeTok{*KA}\NormalTok{/(KA {-} K)*(EXP({-}K}\DataTypeTok{*TIME}\NormalTok{) {-} EXP({-}KA}\DataTypeTok{*TIME}\NormalTok{))} +\OtherTok{ DOSE = 320} +\OtherTok{ KA = THETA}\CharTok{(}\OtherTok{1}\CharTok{)}\OtherTok{ }\CharTok{*}\OtherTok{ EXP}\CharTok{(}\OtherTok{ETA}\CharTok{(}\OtherTok{1}\CharTok{))} +\OtherTok{ V = THETA}\CharTok{(}\OtherTok{2}\CharTok{)}\OtherTok{ }\CharTok{*}\OtherTok{ EXP}\CharTok{(}\OtherTok{ETA}\CharTok{(}\OtherTok{2}\CharTok{))} +\OtherTok{ K = THETA}\CharTok{(}\OtherTok{3}\CharTok{)}\OtherTok{ }\CharTok{*}\OtherTok{ EXP}\CharTok{(}\OtherTok{ETA}\CharTok{(}\OtherTok{3}\CharTok{))} +\OtherTok{ F = DOSE/}\NormalTok{V}\DataTypeTok{*KA}\NormalTok{/(KA {-} K)*(EXP({-}K}\DataTypeTok{*TIME}\NormalTok{) {-} EXP({-}KA}\DataTypeTok{*TIME}\NormalTok{))} \NormalTok{ IPRE = F} \NormalTok{ Y = F + F}\DataTypeTok{*EPS}\NormalTok{(}\DecValTok{1}\NormalTok{) + EPS(}\DecValTok{2}\NormalTok{)} @@ -3717,7 +3678,7 @@ \section{실제 사례}\label{cov-example}} \end{Highlighting} \end{Shaded} -위의 \$COV STEP에 의해 생성된 부분은 \protect\hyperlink{nonmem-output-file}{별첨 1}과 같으며, 원래 output은 126열까지까지 있으나, 지면의 제약으로 인해 104열이후는 생략하였다.\index{\$COVARIANCE (\$COV, \$COVAR)} +위의 \$COV STEP에 의해 생성된 부분은 \hyperref[nonmem-output-file]{별첨 A}과 같으며, 원래 output은 126열까지까지 있으나, 지면의 제약으로 인해 104열이후는 생략하였다.\index{\$COVARIANCE (\$COV, \$COVAR)} \$COV에 의해 생성되는 첫 번째 부분(section)은 추정치의 표준오차 부분으로 출력의 직전 section인 FINAL PARAMETER ESTIMATE과 배치 모양이 똑같다. 이후의 출력들은 대개 이를 구하기 위해 필요한 중간계산 결과들이다.\index{\$COVARIANCE (\$COV, \$COVAR)} @@ -3737,10 +3698,9 @@ \section{실제 사례}\label{cov-example}} \$COV step이 실패하는 경우에는 먼저 파라미터 추정값에 이상이 없는지 살펴보고, 이상이 없어 보이면 붓스트랩이나 profile-likelihood등의 다른 방법을 이용하여 신뢰구간을 구하면 된다. 이 때 신뢰구간이 비대칭일 가능성이 크므로 표준오차는 제시하기 어려워진다. 혹자는 \$COV에 의한 표준오차 보다 붓스트랩에 의한 신뢰구간이 (시간은 훨씬 많이 걸리지만) 더 좋다고 한다. 붓스트랩을 할 때는 \$COV 절을 삭제하는 것이 시간을 절약하는 방법이다.\index{붓스트랩 / bootstrapping}\index{bootstrapping / 붓스트랩}\index{likelihood / 가능도}\index{\$COVARIANCE (\$COV, \$COVAR)} -\hypertarget{nonmem-document}{% -\section{NONMEM document}\label{nonmem-document}} +\section{NONMEM document}\label{nonmem-document} -NONMEM User's guide와 help file에는 \$COV를 다음과 같이 설명한다. (Beal \protect\hyperlink{ref-nonmem}{2018})\index{\$COVARIANCE (\$COV, \$COVAR)} +NONMEM User's guide와 help file에는 \$COV를 다음과 같이 설명한다. (\citeproc{ref-nonmem}{Beal 2018})\index{\$COVARIANCE (\$COV, \$COVAR)} \begin{verbatim} $COVARIANCE @@ -3776,8 +3736,7 @@ \section{NONMEM document}\label{nonmem-document}} \index{R matrix / R 행렬}\index{R matrix / R 행렬} \index{correlation matrix / 상관행렬}\index{eigenvalues / 고유값} -\hypertarget{uxc774uxb860uxc801-uxbc30uxacbd---mle}{% -\section{이론적 배경 - MLE}\label{uxc774uxb860uxc801-uxbc30uxacbd---mle}} +\section{이론적 배경 - MLE}\label{uxc774uxb860uxc801-uxbc30uxacbd---mle} \index{MLE, maximum likelihood estimation}\index{likelihood / 가능도} @@ -3820,7 +3779,7 @@ \section{이론적 배경 - MLE}\label{uxc774uxb860uxc801-uxbc30uxacbd---mle}} \label{eq:diff-diff-2} \end{equation} -좀 더 복잡한 과정을 거치면 \(\sqrt{n}({\widehat{\theta}}^{\text{MLE}} - \theta)\)는 점근적으로 \(N(0,\lbrack I(\theta)\rbrack^{- 1})\) 를 따름을 증명할 수 있다. (김우철 \protect\hyperlink{ref-kim}{2012}) +좀 더 복잡한 과정을 거치면 \(\sqrt{n}({\widehat{\theta}}^{\text{MLE}} - \theta)\)는 점근적으로 \(N(0,\lbrack I(\theta)\rbrack^{- 1})\) 를 따름을 증명할 수 있다. (\citeproc{ref-kim}{김우철 2012}) 아주 이상적이지만(그러나 극히 드문) 상황에서는 목적함수의 1계 미분의 제곱과 2계 미분이 같겠지만, 실제 관찰값으로 계산하면\index{목적함수 / objective function}\index{objective function / 목적함수} 다르다. NONMEM에서는 1계 미분의 제곱행렬을 S matrix, 2계 미분 행렬(Hessian)을 R matrix라고\index{R matrix / R 행렬}\index{S matrix / S 행렬}\index{R matrix / R 행렬}\index{S matrix / S 행렬} @@ -3839,14 +3798,13 @@ \section{이론적 배경 - MLE}\label{uxc774uxb860uxc801-uxbc30uxacbd---mle}} \label{eq:o-s-r} \end{equation} -\hypertarget{ruxc5d0uxc11cuxc758-uxad6cuxd604}{% -\section{R에서의 구현}\label{ruxc5d0uxc11cuxc758-uxad6cuxd604}} +\section{R에서의 구현}\label{ruxc5d0uxc11cuxc758-uxad6cuxd604} -\ref{cov-example}의 예제를 R로 풀이하면 다음과 같다. 우선 CRAN에 올라와 있는 nmw package를 설치한다. (Bae \protect\hyperlink{ref-R-nmw}{2018}) +\ref{cov-example}의 예제를 R로 풀이하면 다음과 같다. 우선 CRAN에 올라와 있는 nmw package를 설치한다. (\citeproc{ref-R-nmw}{Bae 2018}) \begin{Shaded} \begin{Highlighting}[] -\ControlFlowTok{if}\NormalTok{ (}\OperatorTok{!}\KeywordTok{require}\NormalTok{(nmw)) }\KeywordTok{install.packages}\NormalTok{(}\StringTok{"nmw"}\NormalTok{)} +\ControlFlowTok{if}\NormalTok{ (}\SpecialCharTok{!}\FunctionTok{require}\NormalTok{(nmw)) }\FunctionTok{install.packages}\NormalTok{(}\StringTok{"nmw"}\NormalTok{)} \end{Highlighting} \end{Shaded} @@ -3857,28 +3815,28 @@ \section{R에서의 구현}\label{ruxc5d0uxc11cuxc758-uxad6cuxd604}} \CommentTok{\# nmw::CovStep} \ControlFlowTok{function}\NormalTok{ () } \NormalTok{\{} -\NormalTok{ e}\OperatorTok{$}\NormalTok{STEP =}\StringTok{ "COV"} -\NormalTok{ StartTime =}\StringTok{ }\KeywordTok{Sys.time}\NormalTok{()} -\NormalTok{ Rmat =}\StringTok{ }\KeywordTok{hessian}\NormalTok{(Obj, e}\OperatorTok{$}\NormalTok{FinalPara)}\OperatorTok{/}\DecValTok{2} -\NormalTok{ Smat =}\StringTok{ }\KeywordTok{CalcSmat}\NormalTok{()} - \ControlFlowTok{if}\NormalTok{ (}\KeywordTok{is.nan}\NormalTok{(Smat[}\DecValTok{1}\NormalTok{, }\DecValTok{1}\NormalTok{])) } - \KeywordTok{stop}\NormalTok{(}\StringTok{"Error {-} NaN produced"}\NormalTok{)} -\NormalTok{ invR =}\StringTok{ }\KeywordTok{solve}\NormalTok{(Rmat)} -\NormalTok{ Cov =}\StringTok{ }\NormalTok{invR }\OperatorTok{\%*\%}\StringTok{ }\NormalTok{Smat }\OperatorTok{\%*\%}\StringTok{ }\NormalTok{invR} -\NormalTok{ SE =}\StringTok{ }\KeywordTok{sqrt}\NormalTok{(}\KeywordTok{diag}\NormalTok{(Cov))} -\NormalTok{ Correl =}\StringTok{ }\KeywordTok{cov2cor}\NormalTok{(Cov)} -\NormalTok{ InvCov =}\StringTok{ }\NormalTok{Rmat }\OperatorTok{\%*\%}\StringTok{ }\KeywordTok{solve}\NormalTok{(Smat) }\OperatorTok{\%*\%}\StringTok{ }\NormalTok{Rmat} -\NormalTok{ EigenVal =}\StringTok{ }\KeywordTok{sort}\NormalTok{(}\KeywordTok{eigen}\NormalTok{(Correl)}\OperatorTok{$}\NormalTok{values)} -\NormalTok{ RunTime =}\StringTok{ }\KeywordTok{difftime}\NormalTok{(}\KeywordTok{Sys.time}\NormalTok{(), StartTime)} -\NormalTok{ Result =}\StringTok{ }\KeywordTok{list}\NormalTok{(RunTime, SE, Cov, Correl, InvCov, EigenVal, } +\NormalTok{ e}\SpecialCharTok{$}\NormalTok{STEP }\OtherTok{=} \StringTok{"COV"} +\NormalTok{ StartTime }\OtherTok{=} \FunctionTok{Sys.time}\NormalTok{()} +\NormalTok{ Rmat }\OtherTok{=} \FunctionTok{hessian}\NormalTok{(Obj, e}\SpecialCharTok{$}\NormalTok{FinalPara)}\SpecialCharTok{/}\DecValTok{2} +\NormalTok{ Smat }\OtherTok{=} \FunctionTok{CalcSmat}\NormalTok{()} + \ControlFlowTok{if}\NormalTok{ (}\FunctionTok{is.nan}\NormalTok{(Smat[}\DecValTok{1}\NormalTok{, }\DecValTok{1}\NormalTok{])) } + \FunctionTok{stop}\NormalTok{(}\StringTok{"Error {-} NaN produced"}\NormalTok{)} +\NormalTok{ invR }\OtherTok{=} \FunctionTok{solve}\NormalTok{(Rmat)} +\NormalTok{ Cov }\OtherTok{=}\NormalTok{ invR }\SpecialCharTok{\%*\%}\NormalTok{ Smat }\SpecialCharTok{\%*\%}\NormalTok{ invR} +\NormalTok{ SE }\OtherTok{=} \FunctionTok{sqrt}\NormalTok{(}\FunctionTok{diag}\NormalTok{(Cov))} +\NormalTok{ Correl }\OtherTok{=} \FunctionTok{cov2cor}\NormalTok{(Cov)} +\NormalTok{ InvCov }\OtherTok{=}\NormalTok{ Rmat }\SpecialCharTok{\%*\%} \FunctionTok{solve}\NormalTok{(Smat) }\SpecialCharTok{\%*\%}\NormalTok{ Rmat} +\NormalTok{ EigenVal }\OtherTok{=} \FunctionTok{sort}\NormalTok{(}\FunctionTok{eigen}\NormalTok{(Correl)}\SpecialCharTok{$}\NormalTok{values)} +\NormalTok{ RunTime }\OtherTok{=} \FunctionTok{difftime}\NormalTok{(}\FunctionTok{Sys.time}\NormalTok{(), StartTime)} +\NormalTok{ Result }\OtherTok{=} \FunctionTok{list}\NormalTok{(RunTime, SE, Cov, Correl, InvCov, EigenVal, } \NormalTok{ Rmat, Smat)} - \KeywordTok{names}\NormalTok{(Result) =}\StringTok{ }\KeywordTok{list}\NormalTok{(}\StringTok{"Time"}\NormalTok{, }\StringTok{"Standard Error"}\NormalTok{, } + \FunctionTok{names}\NormalTok{(Result) }\OtherTok{=} \FunctionTok{list}\NormalTok{(}\StringTok{"Time"}\NormalTok{, }\StringTok{"Standard Error"}\NormalTok{, } \StringTok{"Covariance Matrix of Estimates"}\NormalTok{, } \StringTok{"Correlation Matrix of Estimates"}\NormalTok{, } \StringTok{"Inverse Covariance Matrix of Estimates"}\NormalTok{, } \StringTok{"Eigen Values"}\NormalTok{, } \StringTok{"R Matrix"}\NormalTok{, }\StringTok{"S Matrix"}\NormalTok{)} - \KeywordTok{return}\NormalTok{(Result)} + \FunctionTok{return}\NormalTok{(Result)} \NormalTok{\}} \end{Highlighting} \end{Shaded} @@ -3890,29 +3848,28 @@ \section{R에서의 구현}\label{ruxc5d0uxc11cuxc758-uxad6cuxd604}} \CommentTok{\# nmw::CalcSmat} \ControlFlowTok{function}\NormalTok{ () } \NormalTok{\{} -\NormalTok{ Smat =}\StringTok{ }\KeywordTok{matrix}\NormalTok{(}\KeywordTok{rep}\NormalTok{(}\DecValTok{0}\NormalTok{, e}\OperatorTok{$}\NormalTok{nPara }\OperatorTok{*}\StringTok{ }\NormalTok{e}\OperatorTok{$}\NormalTok{nPara), }\DataTypeTok{nrow =}\NormalTok{ e}\OperatorTok{$}\NormalTok{nPara, } - \DataTypeTok{ncol =}\NormalTok{ e}\OperatorTok{$}\NormalTok{nPara)} - \ControlFlowTok{for}\NormalTok{ (i }\ControlFlowTok{in} \DecValTok{1}\OperatorTok{:}\NormalTok{e}\OperatorTok{$}\NormalTok{nID) \{} -\NormalTok{ e}\OperatorTok{$}\NormalTok{DATAi =}\StringTok{ }\NormalTok{e}\OperatorTok{$}\NormalTok{DataRef[[i]]} -\NormalTok{ e}\OperatorTok{$}\NormalTok{ETAi =}\StringTok{ }\NormalTok{e}\OperatorTok{$}\NormalTok{EBE[i, e}\OperatorTok{$}\NormalTok{EtaNames]} -\NormalTok{ e}\OperatorTok{$}\NormalTok{nReci =}\StringTok{ }\NormalTok{e}\OperatorTok{$}\NormalTok{Oi[i, }\StringTok{"nRec"}\NormalTok{]} - \ControlFlowTok{if}\NormalTok{ (e}\OperatorTok{$}\NormalTok{METHOD }\OperatorTok{==}\StringTok{ "ZERO"}\NormalTok{) \{} -\NormalTok{ gr =}\StringTok{ }\KeywordTok{grad}\NormalTok{(OiS0, e}\OperatorTok{$}\NormalTok{FinalPara)} +\NormalTok{ Smat }\OtherTok{=} \FunctionTok{matrix}\NormalTok{(}\FunctionTok{rep}\NormalTok{(}\DecValTok{0}\NormalTok{, e}\SpecialCharTok{$}\NormalTok{nPara }\SpecialCharTok{*}\NormalTok{ e}\SpecialCharTok{$}\NormalTok{nPara), }\AttributeTok{nrow =}\NormalTok{ e}\SpecialCharTok{$}\NormalTok{nPara, } + \AttributeTok{ncol =}\NormalTok{ e}\SpecialCharTok{$}\NormalTok{nPara)} + \ControlFlowTok{for}\NormalTok{ (i }\ControlFlowTok{in} \DecValTok{1}\SpecialCharTok{:}\NormalTok{e}\SpecialCharTok{$}\NormalTok{nID) \{} +\NormalTok{ e}\SpecialCharTok{$}\NormalTok{DATAi }\OtherTok{=}\NormalTok{ e}\SpecialCharTok{$}\NormalTok{DataRef[[i]]} +\NormalTok{ e}\SpecialCharTok{$}\NormalTok{ETAi }\OtherTok{=}\NormalTok{ e}\SpecialCharTok{$}\NormalTok{EBE[i, e}\SpecialCharTok{$}\NormalTok{EtaNames]} +\NormalTok{ e}\SpecialCharTok{$}\NormalTok{nReci }\OtherTok{=}\NormalTok{ e}\SpecialCharTok{$}\NormalTok{Oi[i, }\StringTok{"nRec"}\NormalTok{]} + \ControlFlowTok{if}\NormalTok{ (e}\SpecialCharTok{$}\NormalTok{METHOD }\SpecialCharTok{==} \StringTok{"ZERO"}\NormalTok{) \{} +\NormalTok{ gr }\OtherTok{=} \FunctionTok{grad}\NormalTok{(OiS0, e}\SpecialCharTok{$}\NormalTok{FinalPara)} \NormalTok{ \}} \ControlFlowTok{else}\NormalTok{ \{} -\NormalTok{ gr =}\StringTok{ }\KeywordTok{grad}\NormalTok{(OiS1, e}\OperatorTok{$}\NormalTok{FinalPara)} +\NormalTok{ gr }\OtherTok{=} \FunctionTok{grad}\NormalTok{(OiS1, e}\SpecialCharTok{$}\NormalTok{FinalPara)} \NormalTok{ \}} -\NormalTok{ Smat =}\StringTok{ }\NormalTok{Smat }\OperatorTok{+}\StringTok{ }\NormalTok{gr }\OperatorTok{\%*\%}\StringTok{ }\KeywordTok{t}\NormalTok{(gr)} +\NormalTok{ Smat }\OtherTok{=}\NormalTok{ Smat }\SpecialCharTok{+}\NormalTok{ gr }\SpecialCharTok{\%*\%} \FunctionTok{t}\NormalTok{(gr)} \NormalTok{ \}} - \KeywordTok{return}\NormalTok{(Smat}\OperatorTok{/}\DecValTok{4}\NormalTok{)} + \FunctionTok{return}\NormalTok{(Smat}\SpecialCharTok{/}\DecValTok{4}\NormalTok{)} \NormalTok{\}} \end{Highlighting} \end{Shaded} -\hypertarget{Theoph}{% -\section{Theophylline 예제 데이터셋}\label{Theoph}} +\section{Theophylline 예제 데이터셋}\label{Theoph} -R에는 기본적으로 nlme 패키지(Pinheiro, Bates, and R-core \protect\hyperlink{ref-R-nlme}{2020})가 설치되어 있으며, NONMEM에도 있는 theophylline 데이터가 포함되어 있다. Theophylline 데이터를 그리면 다음과 같다. +R에는 기본적으로 nlme 패키지(\citeproc{ref-R-nlme}{Pinheiro, Bates, and R-core 2020})가 설치되어 있으며, NONMEM에도 있는 theophylline 데이터가 포함되어 있다. Theophylline 데이터를 그리면 다음과 같다. @@ -3943,43 +3900,43 @@ \section{Theophylline 예제 데이터셋}\label{Theoph}} \begin{Shaded} \begin{Highlighting}[] -\NormalTok{DataAll =}\StringTok{ }\NormalTok{Theoph} -\KeywordTok{colnames}\NormalTok{(DataAll) =}\StringTok{ }\KeywordTok{c}\NormalTok{(}\StringTok{"ID"}\NormalTok{, }\StringTok{"BWT"}\NormalTok{, }\StringTok{"DOSE"}\NormalTok{, }\StringTok{"TIME"}\NormalTok{, }\StringTok{"DV"}\NormalTok{)} -\NormalTok{DataAll[,}\StringTok{"ID"}\NormalTok{] =}\StringTok{ }\KeywordTok{as.numeric}\NormalTok{(}\KeywordTok{as.character}\NormalTok{(DataAll[,}\StringTok{"ID"}\NormalTok{]))} - -\NormalTok{nTheta =}\StringTok{ }\DecValTok{3} -\NormalTok{nEta =}\StringTok{ }\DecValTok{3} -\NormalTok{nEps =}\StringTok{ }\DecValTok{2} - -\NormalTok{THETAinit =}\StringTok{ }\KeywordTok{c}\NormalTok{(}\DecValTok{2}\NormalTok{, }\DecValTok{50}\NormalTok{, }\FloatTok{0.1}\NormalTok{)} -\NormalTok{OMinit =}\StringTok{ }\KeywordTok{matrix}\NormalTok{(}\KeywordTok{c}\NormalTok{(}\FloatTok{0.2}\NormalTok{, }\FloatTok{0.1}\NormalTok{, }\FloatTok{0.1}\NormalTok{, }\FloatTok{0.1}\NormalTok{, }\FloatTok{0.2}\NormalTok{, }\FloatTok{0.1}\NormalTok{, }\FloatTok{0.1}\NormalTok{, }\FloatTok{0.1}\NormalTok{, }\FloatTok{0.2}\NormalTok{), } - \DataTypeTok{nrow=}\NormalTok{nEta, }\DataTypeTok{ncol=}\NormalTok{nEta)} -\NormalTok{SGinit =}\StringTok{ }\KeywordTok{diag}\NormalTok{(}\KeywordTok{c}\NormalTok{(}\FloatTok{0.1}\NormalTok{, }\FloatTok{0.1}\NormalTok{))} - -\NormalTok{LB =}\StringTok{ }\KeywordTok{rep}\NormalTok{(}\DecValTok{0}\NormalTok{, nTheta) }\CommentTok{\# Lower bound} -\NormalTok{UB =}\StringTok{ }\KeywordTok{rep}\NormalTok{(}\DecValTok{1000000}\NormalTok{, nTheta) }\CommentTok{\# Upper bound} - -\NormalTok{FGD1 =}\StringTok{ }\KeywordTok{deriv}\NormalTok{(}\OperatorTok{\textasciitilde{}}\NormalTok{DOSE}\OperatorTok{/}\NormalTok{(TH2}\OperatorTok{*}\KeywordTok{exp}\NormalTok{(ETA2))}\OperatorTok{*}\NormalTok{TH1}\OperatorTok{*}\KeywordTok{exp}\NormalTok{(ETA1)}\OperatorTok{/} -\StringTok{ }\NormalTok{(TH1}\OperatorTok{*}\KeywordTok{exp}\NormalTok{(ETA1) }\OperatorTok{{-}}\StringTok{ }\NormalTok{TH3}\OperatorTok{*}\KeywordTok{exp}\NormalTok{(ETA3))}\OperatorTok{*} -\NormalTok{ (}\KeywordTok{exp}\NormalTok{(}\OperatorTok{{-}}\NormalTok{TH3}\OperatorTok{*}\KeywordTok{exp}\NormalTok{(ETA3)}\OperatorTok{*}\NormalTok{TIME)}\OperatorTok{{-}}\KeywordTok{exp}\NormalTok{(}\OperatorTok{{-}}\NormalTok{TH1}\OperatorTok{*}\KeywordTok{exp}\NormalTok{(ETA1)}\OperatorTok{*}\NormalTok{TIME)),} - \KeywordTok{c}\NormalTok{(}\StringTok{"ETA1"}\NormalTok{,}\StringTok{"ETA2"}\NormalTok{,}\StringTok{"ETA3"}\NormalTok{),} - \DataTypeTok{function.arg=}\KeywordTok{c}\NormalTok{(}\StringTok{"TH1"}\NormalTok{, }\StringTok{"TH2"}\NormalTok{, }\StringTok{"TH3"}\NormalTok{, }\StringTok{"ETA1"}\NormalTok{, }\StringTok{"ETA2"}\NormalTok{, }\StringTok{"ETA3"}\NormalTok{, } - \StringTok{"DOSE"}\NormalTok{, }\StringTok{"TIME"}\NormalTok{),} - \DataTypeTok{func=}\OtherTok{TRUE}\NormalTok{, }\DataTypeTok{hessian=}\OtherTok{FALSE}\NormalTok{)} - -\NormalTok{H =}\StringTok{ }\KeywordTok{deriv}\NormalTok{(}\OperatorTok{\textasciitilde{}}\NormalTok{F }\OperatorTok{+}\StringTok{ }\NormalTok{F}\OperatorTok{*}\NormalTok{EPS1 }\OperatorTok{+}\StringTok{ }\NormalTok{EPS2, }\KeywordTok{c}\NormalTok{(}\StringTok{"EPS1"}\NormalTok{, }\StringTok{"EPS2"}\NormalTok{), } - \DataTypeTok{function.arg=}\KeywordTok{c}\NormalTok{(}\StringTok{"F"}\NormalTok{, }\StringTok{"EPS1"}\NormalTok{, }\StringTok{"EPS2"}\NormalTok{), } - \DataTypeTok{func=}\OtherTok{TRUE}\NormalTok{)} - -\NormalTok{PRED1 =}\StringTok{ }\ControlFlowTok{function}\NormalTok{(THETA, ETA, DATAi) }\CommentTok{\# for FO and FOCE} +\NormalTok{DataAll }\OtherTok{=}\NormalTok{ Theoph} +\FunctionTok{colnames}\NormalTok{(DataAll) }\OtherTok{=} \FunctionTok{c}\NormalTok{(}\StringTok{"ID"}\NormalTok{, }\StringTok{"BWT"}\NormalTok{, }\StringTok{"DOSE"}\NormalTok{, }\StringTok{"TIME"}\NormalTok{, }\StringTok{"DV"}\NormalTok{)} +\NormalTok{DataAll[,}\StringTok{"ID"}\NormalTok{] }\OtherTok{=} \FunctionTok{as.numeric}\NormalTok{(}\FunctionTok{as.character}\NormalTok{(DataAll[,}\StringTok{"ID"}\NormalTok{]))} + +\NormalTok{nTheta }\OtherTok{=} \DecValTok{3} +\NormalTok{nEta }\OtherTok{=} \DecValTok{3} +\NormalTok{nEps }\OtherTok{=} \DecValTok{2} + +\NormalTok{THETAinit }\OtherTok{=} \FunctionTok{c}\NormalTok{(}\DecValTok{2}\NormalTok{, }\DecValTok{50}\NormalTok{, }\FloatTok{0.1}\NormalTok{)} +\NormalTok{OMinit }\OtherTok{=} \FunctionTok{matrix}\NormalTok{(}\FunctionTok{c}\NormalTok{(}\FloatTok{0.2}\NormalTok{, }\FloatTok{0.1}\NormalTok{, }\FloatTok{0.1}\NormalTok{, }\FloatTok{0.1}\NormalTok{, }\FloatTok{0.2}\NormalTok{, }\FloatTok{0.1}\NormalTok{, }\FloatTok{0.1}\NormalTok{, }\FloatTok{0.1}\NormalTok{, }\FloatTok{0.2}\NormalTok{), } + \AttributeTok{nrow=}\NormalTok{nEta, }\AttributeTok{ncol=}\NormalTok{nEta)} +\NormalTok{SGinit }\OtherTok{=} \FunctionTok{diag}\NormalTok{(}\FunctionTok{c}\NormalTok{(}\FloatTok{0.1}\NormalTok{, }\FloatTok{0.1}\NormalTok{))} + +\NormalTok{LB }\OtherTok{=} \FunctionTok{rep}\NormalTok{(}\DecValTok{0}\NormalTok{, nTheta) }\CommentTok{\# Lower bound} +\NormalTok{UB }\OtherTok{=} \FunctionTok{rep}\NormalTok{(}\DecValTok{1000000}\NormalTok{, nTheta) }\CommentTok{\# Upper bound} + +\NormalTok{FGD1 }\OtherTok{=} \FunctionTok{deriv}\NormalTok{(}\SpecialCharTok{\textasciitilde{}}\NormalTok{DOSE}\SpecialCharTok{/}\NormalTok{(TH2}\SpecialCharTok{*}\FunctionTok{exp}\NormalTok{(ETA2))}\SpecialCharTok{*}\NormalTok{TH1}\SpecialCharTok{*}\FunctionTok{exp}\NormalTok{(ETA1)}\SpecialCharTok{/} +\NormalTok{ (TH1}\SpecialCharTok{*}\FunctionTok{exp}\NormalTok{(ETA1) }\SpecialCharTok{{-}}\NormalTok{ TH3}\SpecialCharTok{*}\FunctionTok{exp}\NormalTok{(ETA3))}\SpecialCharTok{*} +\NormalTok{ (}\FunctionTok{exp}\NormalTok{(}\SpecialCharTok{{-}}\NormalTok{TH3}\SpecialCharTok{*}\FunctionTok{exp}\NormalTok{(ETA3)}\SpecialCharTok{*}\NormalTok{TIME)}\SpecialCharTok{{-}}\FunctionTok{exp}\NormalTok{(}\SpecialCharTok{{-}}\NormalTok{TH1}\SpecialCharTok{*}\FunctionTok{exp}\NormalTok{(ETA1)}\SpecialCharTok{*}\NormalTok{TIME)),} + \FunctionTok{c}\NormalTok{(}\StringTok{"ETA1"}\NormalTok{,}\StringTok{"ETA2"}\NormalTok{,}\StringTok{"ETA3"}\NormalTok{),} + \AttributeTok{function.arg=}\FunctionTok{c}\NormalTok{(}\StringTok{"TH1"}\NormalTok{, }\StringTok{"TH2"}\NormalTok{, }\StringTok{"TH3"}\NormalTok{, }\StringTok{"ETA1"}\NormalTok{, }\StringTok{"ETA2"}\NormalTok{, }\StringTok{"ETA3"}\NormalTok{, } + \StringTok{"DOSE"}\NormalTok{, }\StringTok{"TIME"}\NormalTok{),} + \AttributeTok{func=}\ConstantTok{TRUE}\NormalTok{, }\AttributeTok{hessian=}\ConstantTok{FALSE}\NormalTok{)} + +\NormalTok{H }\OtherTok{=} \FunctionTok{deriv}\NormalTok{(}\SpecialCharTok{\textasciitilde{}}\NormalTok{F }\SpecialCharTok{+}\NormalTok{ F}\SpecialCharTok{*}\NormalTok{EPS1 }\SpecialCharTok{+}\NormalTok{ EPS2, }\FunctionTok{c}\NormalTok{(}\StringTok{"EPS1"}\NormalTok{, }\StringTok{"EPS2"}\NormalTok{), } + \AttributeTok{function.arg=}\FunctionTok{c}\NormalTok{(}\StringTok{"F"}\NormalTok{, }\StringTok{"EPS1"}\NormalTok{, }\StringTok{"EPS2"}\NormalTok{), } + \AttributeTok{func=}\ConstantTok{TRUE}\NormalTok{)} + +\NormalTok{PRED1 }\OtherTok{=} \ControlFlowTok{function}\NormalTok{(THETA, ETA, DATAi) }\CommentTok{\# for FO and FOCE} \NormalTok{\{} -\NormalTok{ FGDres =}\StringTok{ }\KeywordTok{FGD1}\NormalTok{(THETA[}\DecValTok{1}\NormalTok{], THETA[}\DecValTok{2}\NormalTok{], THETA[}\DecValTok{3}\NormalTok{], ETA[}\DecValTok{1}\NormalTok{], ETA[}\DecValTok{2}\NormalTok{], ETA[}\DecValTok{3}\NormalTok{], } - \DataTypeTok{DOSE=}\DecValTok{320}\NormalTok{, DATAi[,}\StringTok{"TIME"}\NormalTok{])} -\NormalTok{ Gres =}\StringTok{ }\KeywordTok{attr}\NormalTok{(FGDres, }\StringTok{"gradient"}\NormalTok{)} -\NormalTok{ Hres =}\StringTok{ }\KeywordTok{attr}\NormalTok{(}\KeywordTok{H}\NormalTok{(FGDres, }\DecValTok{0}\NormalTok{, }\DecValTok{0}\NormalTok{), }\StringTok{"gradient"}\NormalTok{)} -\NormalTok{ Res =}\StringTok{ }\KeywordTok{cbind}\NormalTok{(FGDres, Gres, Hres)} - \KeywordTok{colnames}\NormalTok{(Res) =}\StringTok{ }\KeywordTok{c}\NormalTok{(}\StringTok{"F"}\NormalTok{, }\StringTok{"G1"}\NormalTok{, }\StringTok{"G2"}\NormalTok{, }\StringTok{"G3"}\NormalTok{, }\StringTok{"H1"}\NormalTok{, }\StringTok{"H2"}\NormalTok{)} - \KeywordTok{return}\NormalTok{(Res)} +\NormalTok{ FGDres }\OtherTok{=} \FunctionTok{FGD1}\NormalTok{(THETA[}\DecValTok{1}\NormalTok{], THETA[}\DecValTok{2}\NormalTok{], THETA[}\DecValTok{3}\NormalTok{], ETA[}\DecValTok{1}\NormalTok{], ETA[}\DecValTok{2}\NormalTok{], ETA[}\DecValTok{3}\NormalTok{], } + \AttributeTok{DOSE=}\DecValTok{320}\NormalTok{, DATAi[,}\StringTok{"TIME"}\NormalTok{])} +\NormalTok{ Gres }\OtherTok{=} \FunctionTok{attr}\NormalTok{(FGDres, }\StringTok{"gradient"}\NormalTok{)} +\NormalTok{ Hres }\OtherTok{=} \FunctionTok{attr}\NormalTok{(}\FunctionTok{H}\NormalTok{(FGDres, }\DecValTok{0}\NormalTok{, }\DecValTok{0}\NormalTok{), }\StringTok{"gradient"}\NormalTok{)} +\NormalTok{ Res }\OtherTok{=} \FunctionTok{cbind}\NormalTok{(FGDres, Gres, Hres)} + \FunctionTok{colnames}\NormalTok{(Res) }\OtherTok{=} \FunctionTok{c}\NormalTok{(}\StringTok{"F"}\NormalTok{, }\StringTok{"G1"}\NormalTok{, }\StringTok{"G2"}\NormalTok{, }\StringTok{"G3"}\NormalTok{, }\StringTok{"H1"}\NormalTok{, }\StringTok{"H2"}\NormalTok{)} + \FunctionTok{return}\NormalTok{(Res)} \NormalTok{\}} \end{Highlighting} \end{Shaded} @@ -3995,41 +3952,41 @@ \section{Theophylline 예제 데이터셋}\label{Theoph}} \begin{Shaded} \begin{Highlighting}[] -\KeywordTok{library}\NormalTok{(nmw)} +\FunctionTok{library}\NormalTok{(nmw)} \CommentTok{\# First Order Approximation Method} -\KeywordTok{InitStep}\NormalTok{(DataAll, }\DataTypeTok{THETAinit=}\NormalTok{THETAinit, }\DataTypeTok{OMinit=}\NormalTok{OMinit, }\DataTypeTok{SGinit=}\NormalTok{SGinit, } - \DataTypeTok{LB=}\NormalTok{LB, }\DataTypeTok{UB=}\NormalTok{UB, }\DataTypeTok{Pred=}\NormalTok{PRED1, }\DataTypeTok{METHOD=}\StringTok{"ZERO"}\NormalTok{)} -\NormalTok{(}\DataTypeTok{EstRes1 =} \KeywordTok{EstStep}\NormalTok{())} -\CommentTok{\#\# $\textasciigrave{}Initial OFV\textasciigrave{}} -\CommentTok{\#\# [1] 141.3076} -\CommentTok{\#\# } -\CommentTok{\#\# $Time} -\CommentTok{\#\# Time difference of 2.999814 secs} -\CommentTok{\#\# } -\CommentTok{\#\# $Optim} -\CommentTok{\#\# $Optim$par} -\CommentTok{\#\# [1] 0.560417594 {-}0.167835388 0.148962362 0.995143048 0.056166719} -\CommentTok{\#\# [6] 0.151227211 {-}1.032468525 0.005776729 0.110936464 {-}0.956899772} -\CommentTok{\#\# [11] {-}0.205559310} -\CommentTok{\#\# } -\CommentTok{\#\# $Optim$value} -\CommentTok{\#\# [1] 57.32106} -\CommentTok{\#\# } -\CommentTok{\#\# $Optim$counts} -\CommentTok{\#\# function gradient } -\CommentTok{\#\# 74 74 } -\CommentTok{\#\# } -\CommentTok{\#\# $Optim$convergence} -\CommentTok{\#\# [1] 0} -\CommentTok{\#\# } -\CommentTok{\#\# $Optim$message} -\CommentTok{\#\# [1] "CONVERGENCE: REL\_REDUCTION\_OF\_F \textless{}= FACTR*EPSMCH"} -\CommentTok{\#\# } -\CommentTok{\#\# } -\CommentTok{\#\# $\textasciigrave{}Final Estimates\textasciigrave{}} -\CommentTok{\#\# [1] 3.16946754 38.25213460 0.10501808 1.19823325 0.13747849} -\CommentTok{\#\# [6] 0.03134899 0.37015671 0.04340042 0.25068582 0.01207782} -\CommentTok{\#\# [11] 0.05427434} +\FunctionTok{InitStep}\NormalTok{(DataAll, }\AttributeTok{THETAinit=}\NormalTok{THETAinit, }\AttributeTok{OMinit=}\NormalTok{OMinit, }\AttributeTok{SGinit=}\NormalTok{SGinit, } + \AttributeTok{LB=}\NormalTok{LB, }\AttributeTok{UB=}\NormalTok{UB, }\AttributeTok{Pred=}\NormalTok{PRED1, }\AttributeTok{METHOD=}\StringTok{"ZERO"}\NormalTok{)} +\NormalTok{(}\AttributeTok{EstRes1 =} \FunctionTok{EstStep}\NormalTok{())} +\DocumentationTok{\#\# $\textasciigrave{}Initial OFV\textasciigrave{}} +\DocumentationTok{\#\# [1] 141.3076} +\DocumentationTok{\#\# } +\DocumentationTok{\#\# $Time} +\DocumentationTok{\#\# Time difference of 2.999814 secs} +\DocumentationTok{\#\# } +\DocumentationTok{\#\# $Optim} +\DocumentationTok{\#\# $Optim$par} +\DocumentationTok{\#\# [1] 0.560417594 {-}0.167835388 0.148962362 0.995143048 0.056166719} +\DocumentationTok{\#\# [6] 0.151227211 {-}1.032468525 0.005776729 0.110936464 {-}0.956899772} +\DocumentationTok{\#\# [11] {-}0.205559310} +\DocumentationTok{\#\# } +\DocumentationTok{\#\# $Optim$value} +\DocumentationTok{\#\# [1] 57.32106} +\DocumentationTok{\#\# } +\DocumentationTok{\#\# $Optim$counts} +\DocumentationTok{\#\# function gradient } +\DocumentationTok{\#\# 74 74 } +\DocumentationTok{\#\# } +\DocumentationTok{\#\# $Optim$convergence} +\DocumentationTok{\#\# [1] 0} +\DocumentationTok{\#\# } +\DocumentationTok{\#\# $Optim$message} +\DocumentationTok{\#\# [1] "CONVERGENCE: REL\_REDUCTION\_OF\_F \textless{}= FACTR*EPSMCH"} +\DocumentationTok{\#\# } +\DocumentationTok{\#\# } +\DocumentationTok{\#\# $\textasciigrave{}Final Estimates\textasciigrave{}} +\DocumentationTok{\#\# [1] 3.16946754 38.25213460 0.10501808 1.19823325 0.13747849} +\DocumentationTok{\#\# [6] 0.03134899 0.37015671 0.04340042 0.25068582 0.01207782} +\DocumentationTok{\#\# [11] 0.05427434} \end{Highlighting} \end{Shaded} @@ -4041,197 +3998,197 @@ \section{Theophylline 예제 데이터셋}\label{Theoph}} \begin{Shaded} \begin{Highlighting}[] -\NormalTok{(}\DataTypeTok{CovRes1 =} \KeywordTok{CovStep}\NormalTok{())} -\CommentTok{\#\# $Time} -\CommentTok{\#\# Time difference of 1.0468 secs} -\CommentTok{\#\# } -\CommentTok{\#\# $\textasciigrave{}Standard Error\textasciigrave{}} -\CommentTok{\#\# [1] 0.641076544 1.685217844 0.023072024 0.420617306 0.082197497} -\CommentTok{\#\# [6] 0.019812976 0.340273208 0.023052142 0.289524327 0.003576926} -\CommentTok{\#\# [11] 0.032078283} -\CommentTok{\#\# } -\CommentTok{\#\# $\textasciigrave{}Covariance Matrix of Estimates\textasciigrave{}} -\CommentTok{\#\# [,1] [,2] [,3] [,4] [,5]} -\CommentTok{\#\# [1,] 0.4109791347 0.339158144 5.746694e{-}03 0.2058089645 2.003772e{-}03} -\CommentTok{\#\# [2,] 0.3391581437 2.839959182 5.032613e{-}03 0.3376028346 3.490465e{-}02} -\CommentTok{\#\# [3,] 0.0057466939 0.005032613 5.323183e{-}04 0.0016294512 {-}1.041991e{-}03} -\CommentTok{\#\# [4,] 0.2058089645 0.337602835 1.629451e{-}03 0.1769189182 1.951490e{-}02} -\CommentTok{\#\# [5,] 0.0020037724 0.034904655 {-}1.041991e{-}03 0.0195149026 6.756428e{-}03} -\CommentTok{\#\# [6,] {-}0.0021925236 0.012804811 {-}2.503963e{-}04 0.0032072246 1.504690e{-}03} -\CommentTok{\#\# [7,] 0.1215890847 0.149089319 7.111900e{-}03 0.0575731487 {-}1.010198e{-}02} -\CommentTok{\#\# [8,] 0.0009971098 0.023865634 6.271266e{-}05 0.0042158445 8.584714e{-}04} -\CommentTok{\#\# [9,] 0.0669924083 0.057326151 6.226096e{-}03 0.0179862543 {-}1.309239e{-}02} -\CommentTok{\#\# [10,] 0.0010500117 0.001807746 5.805488e{-}05 0.0005143569 {-}7.516774e{-}05} -\CommentTok{\#\# [11,] {-}0.0049728997 {-}0.009950377 {-}4.790610e{-}04 {-}0.0010145003 9.532948e{-}04} -\CommentTok{\#\# [,6] [,7] [,8] [,9] [,10]} -\CommentTok{\#\# [1,] {-}2.192524e{-}03 0.1215890847 9.971098e{-}04 0.0669924083 1.050012e{-}03} -\CommentTok{\#\# [2,] 1.280481e{-}02 0.1490893190 2.386563e{-}02 0.0573261514 1.807746e{-}03} -\CommentTok{\#\# [3,] {-}2.503963e{-}04 0.0071119003 6.271266e{-}05 0.0062260963 5.805488e{-}05} -\CommentTok{\#\# [4,] 3.207225e{-}03 0.0575731487 4.215844e{-}03 0.0179862543 5.143569e{-}04} -\CommentTok{\#\# [5,] 1.504690e{-}03 {-}0.0101019780 8.584714e{-}04 {-}0.0130923877 {-}7.516774e{-}05} -\CommentTok{\#\# [6,] 3.925540e{-}04 {-}0.0028272756 2.326326e{-}04 {-}0.0032697941 {-}2.051327e{-}05} -\CommentTok{\#\# [7,] {-}2.827276e{-}03 0.1157858558 3.116262e{-}03 0.0940102394 9.767199e{-}04} -\CommentTok{\#\# [8,] 2.326326e{-}04 0.0031162617 5.314013e{-}04 0.0018656807 2.786064e{-}05} -\CommentTok{\#\# [9,] {-}3.269794e{-}03 0.0940102394 1.865681e{-}03 0.0838243357 8.055388e{-}04} -\CommentTok{\#\# [10,] {-}2.051327e{-}05 0.0009767199 2.786064e{-}05 0.0008055388 1.279440e{-}05} -\CommentTok{\#\# [11,] 1.806783e{-}04 {-}0.0038608273 2.199601e{-}04 {-}0.0033970159 {-}2.824858e{-}05} -\CommentTok{\#\# [,11]} -\CommentTok{\#\# [1,] {-}4.972900e{-}03} -\CommentTok{\#\# [2,] {-}9.950377e{-}03} -\CommentTok{\#\# [3,] {-}4.790610e{-}04} -\CommentTok{\#\# [4,] {-}1.014500e{-}03} -\CommentTok{\#\# [5,] 9.532948e{-}04} -\CommentTok{\#\# [6,] 1.806783e{-}04} -\CommentTok{\#\# [7,] {-}3.860827e{-}03} -\CommentTok{\#\# [8,] 2.199601e{-}04} -\CommentTok{\#\# [9,] {-}3.397016e{-}03} -\CommentTok{\#\# [10,] {-}2.824858e{-}05} -\CommentTok{\#\# [11,] 1.029016e{-}03} -\CommentTok{\#\# } -\CommentTok{\#\# $\textasciigrave{}Correlation Matrix of Estimates\textasciigrave{}} -\CommentTok{\#\# [,1] [,2] [,3] [,4] [,5] [,6]} -\CommentTok{\#\# [1,] 1.00000000 0.3139325 0.3885281 0.76325079 0.03802594 {-}0.1726174} -\CommentTok{\#\# [2,] 0.31393253 1.0000000 0.1294350 0.47628061 0.25198153 0.3835018} -\CommentTok{\#\# [3,] 0.38852814 0.1294350 1.0000000 0.16790689 {-}0.54943908 {-}0.5477629} -\CommentTok{\#\# [4,] 0.76325079 0.4762806 0.1679069 1.00000000 0.56444374 0.3848509} -\CommentTok{\#\# [5,] 0.03802594 0.2519815 {-}0.5494391 0.56444374 1.00000000 0.9239295} -\CommentTok{\#\# [6,] {-}0.17261745 0.3835018 {-}0.5477629 0.38485092 0.92392947 1.0000000} -\CommentTok{\#\# [7,] 0.55738714 0.2599936 0.9058832 0.40225837 {-}0.36117699 {-}0.4193635} -\CommentTok{\#\# [8,] 0.06747173 0.6143355 0.1179121 0.43479661 0.45306025 0.5093422} -\CommentTok{\#\# [9,] 0.36093637 0.1174929 0.9320626 0.14769593 {-}0.55014251 {-}0.5700142} -\CommentTok{\#\# [10,] 0.45790382 0.2998965 0.7034659 0.34187510 {-}0.25566008 {-}0.2894510} -\CommentTok{\#\# [11,] {-}0.24181804 {-}0.1840655 {-}0.6472826 {-}0.07518893 0.36154098 0.2842792} -\CommentTok{\#\# [,7] [,8] [,9] [,10] [,11]} -\CommentTok{\#\# [1,] 0.5573871 0.06747173 0.3609364 0.4579038 {-}0.24181804} -\CommentTok{\#\# [2,] 0.2599936 0.61433553 0.1174929 0.2998965 {-}0.18406548} -\CommentTok{\#\# [3,] 0.9058832 0.11791205 0.9320626 0.7034659 {-}0.64728263} -\CommentTok{\#\# [4,] 0.4022584 0.43479661 0.1476959 0.3418751 {-}0.07518893} -\CommentTok{\#\# [5,] {-}0.3611770 0.45306025 {-}0.5501425 {-}0.2556601 0.36154098} -\CommentTok{\#\# [6,] {-}0.4193635 0.50934216 {-}0.5700142 {-}0.2894510 0.28427925} -\CommentTok{\#\# [7,] 1.0000000 0.39727833 0.9542504 0.8024764 {-}0.35370524} -\CommentTok{\#\# [8,] 0.3972783 1.00000000 0.2795381 0.3378856 0.29745513} -\CommentTok{\#\# [9,] 0.9542504 0.27953807 1.0000000 0.7778421 {-}0.36576437} -\CommentTok{\#\# [10,] 0.8024764 0.33788563 0.7778421 1.0000000 {-}0.24619292} -\CommentTok{\#\# [11,] {-}0.3537052 0.29745513 {-}0.3657644 {-}0.2461929 1.00000000} -\CommentTok{\#\# } -\CommentTok{\#\# $\textasciigrave{}Inverse Covariance Matrix of Estimates\textasciigrave{}} -\CommentTok{\#\# [,1] [,2] [,3] [,4] [,5]} -\CommentTok{\#\# [1,] 106.16085 {-}68.57396 6449.005 335.8698 {-}2554.409} -\CommentTok{\#\# [2,] {-}68.57396 58.03937 {-}4878.746 {-}302.1420 2175.297} -\CommentTok{\#\# [3,] 6449.00514 {-}4878.74594 589180.809 26966.6055 {-}188642.065} -\CommentTok{\#\# [4,] 335.86981 {-}302.14199 26966.605 1681.5577 {-}11681.346} -\CommentTok{\#\# [5,] {-}2554.40932 2175.29716 {-}188642.065 {-}11681.3456 84767.297} -\CommentTok{\#\# [6,] {-}386.87894 570.22260 {-}66147.099 {-}3404.8900 13635.511} -\CommentTok{\#\# [7,] {-}1202.16352 939.99684 {-}90186.464 {-}5086.8917 35747.140} -\CommentTok{\#\# [8,] 10794.57609 {-}8973.04621 795473.397 47387.2333 {-}336778.082} -\CommentTok{\#\# [9,] {-}49.38187 87.68163 {-}10522.263 {-}442.6127 3308.451} -\CommentTok{\#\# [10,] 11656.77324 {-}10122.84537 899033.055 53311.6422 {-}378718.161} -\CommentTok{\#\# [11,] {-}1043.11500 1001.74635 {-}47225.438 {-}4879.5431 35063.038} -\CommentTok{\#\# [,6] [,7] [,8] [,9] [,10]} -\CommentTok{\#\# [1,] {-}386.8789 {-}1202.1635 10794.576 {-}49.38187 11656.77} -\CommentTok{\#\# [2,] 570.2226 939.9968 {-}8973.046 87.68163 {-}10122.85} -\CommentTok{\#\# [3,] {-}66147.0986 {-}90186.4639 795473.397 {-}10522.26321 899033.06} -\CommentTok{\#\# [4,] {-}3404.8900 {-}5086.8917 47387.233 {-}442.61268 53311.64} -\CommentTok{\#\# [5,] 13635.5106 35747.1396 {-}336778.082 3308.45066 {-}378718.16} -\CommentTok{\#\# [6,] 72186.1449 10923.7488 {-}116902.668 2827.92008 {-}138707.39} -\CommentTok{\#\# [7,] 10923.7488 16640.0641 {-}149635.854 965.72182 {-}166637.08} -\CommentTok{\#\# [8,] {-}116902.6684 {-}149635.8536 1416416.077 {-}14025.69870 1587796.18} -\CommentTok{\#\# [9,] 2827.9201 965.7218 {-}14025.699 954.65511 {-}20047.21} -\CommentTok{\#\# [10,] {-}138707.3931 {-}166637.0784 1587796.183 {-}20047.20949 2031529.82} -\CommentTok{\#\# [11,] 15687.7641 14275.7793 {-}151936.736 935.29881 {-}170271.34} -\CommentTok{\#\# [,11]} -\CommentTok{\#\# [1,] {-}1043.1150} -\CommentTok{\#\# [2,] 1001.7464} -\CommentTok{\#\# [3,] {-}47225.4381} -\CommentTok{\#\# [4,] {-}4879.5431} -\CommentTok{\#\# [5,] 35063.0376} -\CommentTok{\#\# [6,] 15687.7641} -\CommentTok{\#\# [7,] 14275.7793} -\CommentTok{\#\# [8,] {-}151936.7362} -\CommentTok{\#\# [9,] 935.2988} -\CommentTok{\#\# [10,] {-}170271.3406} -\CommentTok{\#\# [11,] 28036.5550} -\CommentTok{\#\# } -\CommentTok{\#\# $\textasciigrave{}Eigen Values\textasciigrave{}} -\CommentTok{\#\# [1] 0.0002519304 0.0096729015 0.0108358602 0.0233184643 0.0520725533} -\CommentTok{\#\# [6] 0.2982375053 0.5047779131 0.9114702297 1.2088053283 3.2082379737} -\CommentTok{\#\# [11] 4.7723193401} -\CommentTok{\#\# } -\CommentTok{\#\# $\textasciigrave{}R Matrix\textasciigrave{}} -\CommentTok{\#\# [,1] [,2] [,3] [,4] [,5]} -\CommentTok{\#\# [1,] 17.924787 {-}1.3343223 {-}162.767654 {-}4.1309683 21.546405} -\CommentTok{\#\# [2,] {-}1.334322 0.5507357 {-}7.672315 0.1118322 {-}1.462878} -\CommentTok{\#\# [3,] {-}162.767654 {-}7.6723148 34333.363150 86.0269293 433.962384} -\CommentTok{\#\# [4,] {-}4.130968 0.1118322 86.026929 28.6263094 {-}177.270130} -\CommentTok{\#\# [5,] 21.546405 {-}1.4628778 433.962384 {-}177.2701302 1930.445843} -\CommentTok{\#\# [6,] 10.225928 {-}16.5210396 13.387686 272.9370786 {-}4270.878832} -\CommentTok{\#\# [7,] {-}11.022690 2.9849069 {-}90.741373 {-}52.9261900 210.709300} -\CommentTok{\#\# [8,] 52.304346 {-}18.2457139 956.482064 164.3158075 {-}1421.957500} -\CommentTok{\#\# [9,] 7.044855 {-}2.2338946 {-}1350.939646 24.4536958 {-}43.763546} -\CommentTok{\#\# [10,] 248.456482 {-}120.7991176 {-}7033.212482 50.2328789 {-}1013.856688} -\CommentTok{\#\# [11,] {-}1.752135 {-}5.2052276 {-}1992.414213 6.0120604 124.417556} -\CommentTok{\#\# [,6] [,7] [,8] [,9] [,10]} -\CommentTok{\#\# [1,] 10.22593 {-}11.022690 52.30435 7.044855 248.45648} -\CommentTok{\#\# [2,] {-}16.52104 2.984907 {-}18.24571 {-}2.233895 {-}120.79912} -\CommentTok{\#\# [3,] 13.38769 {-}90.741373 956.48206 {-}1350.939646 {-}7033.21248} -\CommentTok{\#\# [4,] 272.93708 {-}52.926190 164.31581 24.453696 50.23288} -\CommentTok{\#\# [5,] {-}4270.87883 210.709300 {-}1421.95750 {-}43.763546 {-}1013.85669} -\CommentTok{\#\# [6,] 16610.43942 {-}139.814385 1113.59904 18.726078 4680.59998} -\CommentTok{\#\# [7,] {-}139.81438 213.228947 {-}555.99366 {-}151.083275 96.25915} -\CommentTok{\#\# [8,] 1113.59904 {-}555.993663 4043.51428 130.794770 {-}555.76917} -\CommentTok{\#\# [9,] 18.72608 {-}151.083275 130.79477 236.875935 {-}20.42601} -\CommentTok{\#\# [10,] 4680.59998 96.259149 {-}555.76917 {-}20.426010 192857.05263} -\CommentTok{\#\# [11,] {-}46.02961 {-}62.941133 {-}201.26760 92.656857 6568.90926} -\CommentTok{\#\# [,11]} -\CommentTok{\#\# [1,] {-}1.752135} -\CommentTok{\#\# [2,] {-}5.205228} -\CommentTok{\#\# [3,] {-}1992.414213} -\CommentTok{\#\# [4,] 6.012060} -\CommentTok{\#\# [5,] 124.417556} -\CommentTok{\#\# [6,] {-}46.029614} -\CommentTok{\#\# [7,] {-}62.941133} -\CommentTok{\#\# [8,] {-}201.267605} -\CommentTok{\#\# [9,] 92.656857} -\CommentTok{\#\# [10,] 6568.909257} -\CommentTok{\#\# [11,] 3974.804398} -\CommentTok{\#\# } -\CommentTok{\#\# $\textasciigrave{}S Matrix\textasciigrave{}} -\CommentTok{\#\# [,1] [,2] [,3] [,4] [,5]} -\CommentTok{\#\# [1,] 78.316509 {-}4.6468525 {-}1295.13192 {-}11.873085 142.72165} -\CommentTok{\#\# [2,] {-}4.646852 0.7648878 64.36589 2.623533 {-}28.61925} -\CommentTok{\#\# [3,] {-}1295.131915 64.3658917 183632.39790 {-}230.636173 840.38211} -\CommentTok{\#\# [4,] {-}11.873085 2.6235332 {-}230.63617 18.368716 {-}171.71679} -\CommentTok{\#\# [5,] 142.721653 {-}28.6192545 840.38211 {-}171.716794 2005.81552} -\CommentTok{\#\# [6,] {-}145.835176 29.4905947 9000.10289 291.779615 {-}3809.95407} -\CommentTok{\#\# [7,] {-}26.707401 0.2387057 3794.27704 {-}19.686952 51.76139} -\CommentTok{\#\# [8,] 44.375129 10.7614124 {-}10813.66435 84.841787 {-}765.19107} -\CommentTok{\#\# [9,] 13.946014 {-}4.4042212 {-}6396.75146 3.480210 87.90129} -\CommentTok{\#\# [10,] 2039.647982 {-}397.4745827 {-}4148.02643 {-}1170.279733 8916.77585} -\CommentTok{\#\# [11,] 279.500822 {-}47.3111189 {-}60483.51062 {-}22.729230 670.78875} -\CommentTok{\#\# [,6] [,7] [,8] [,9] [,10]} -\CommentTok{\#\# [1,] {-}145.83518 {-}26.7074010 44.37513 13.946014 2039.6480} -\CommentTok{\#\# [2,] 29.49059 0.2387057 10.76141 {-}4.404221 {-}397.4746} -\CommentTok{\#\# [3,] 9000.10289 3794.2770370 {-}10813.66435 {-}6396.751456 {-}4148.0264} -\CommentTok{\#\# [4,] 291.77961 {-}19.6869516 84.84179 3.480210 {-}1170.2797} -\CommentTok{\#\# [5,] {-}3809.95407 51.7613883 {-}765.19107 87.901295 8916.7758} -\CommentTok{\#\# [6,] 12023.28652 188.5688359 667.62858 {-}711.894529 {-}3829.1367} -\CommentTok{\#\# [7,] 188.56884 129.3349739 {-}292.66398 {-}155.764410 1796.9713} -\CommentTok{\#\# [8,] 667.62858 {-}292.6639799 1121.03185 294.247258 {-}10631.8774} -\CommentTok{\#\# [9,] {-}711.89453 {-}155.7644099 294.24726 327.282119 1812.2113} -\CommentTok{\#\# [10,] {-}3829.13667 1796.9713202 {-}10631.87742 1812.211286 419517.6543} -\CommentTok{\#\# [11,] {-}3489.01512 {-}1105.9231026 2773.71160 2358.454995 18067.4267} -\CommentTok{\#\# [,11]} -\CommentTok{\#\# [1,] 279.50082} -\CommentTok{\#\# [2,] {-}47.31112} -\CommentTok{\#\# [3,] {-}60483.51062} -\CommentTok{\#\# [4,] {-}22.72923} -\CommentTok{\#\# [5,] 670.78875} -\CommentTok{\#\# [6,] {-}3489.01512} -\CommentTok{\#\# [7,] {-}1105.92310} -\CommentTok{\#\# [8,] 2773.71160} -\CommentTok{\#\# [9,] 2358.45500} -\CommentTok{\#\# [10,] 18067.42672} -\CommentTok{\#\# [11,] 24042.66052} +\NormalTok{(}\AttributeTok{CovRes1 =} \FunctionTok{CovStep}\NormalTok{())} +\DocumentationTok{\#\# $Time} +\DocumentationTok{\#\# Time difference of 1.0468 secs} +\DocumentationTok{\#\# } +\DocumentationTok{\#\# $\textasciigrave{}Standard Error\textasciigrave{}} +\DocumentationTok{\#\# [1] 0.641076544 1.685217844 0.023072024 0.420617306 0.082197497} +\DocumentationTok{\#\# [6] 0.019812976 0.340273208 0.023052142 0.289524327 0.003576926} +\DocumentationTok{\#\# [11] 0.032078283} +\DocumentationTok{\#\# } +\DocumentationTok{\#\# $\textasciigrave{}Covariance Matrix of Estimates\textasciigrave{}} +\DocumentationTok{\#\# [,1] [,2] [,3] [,4] [,5]} +\DocumentationTok{\#\# [1,] 0.4109791347 0.339158144 5.746694e{-}03 0.2058089645 2.003772e{-}03} +\DocumentationTok{\#\# [2,] 0.3391581437 2.839959182 5.032613e{-}03 0.3376028346 3.490465e{-}02} +\DocumentationTok{\#\# [3,] 0.0057466939 0.005032613 5.323183e{-}04 0.0016294512 {-}1.041991e{-}03} +\DocumentationTok{\#\# [4,] 0.2058089645 0.337602835 1.629451e{-}03 0.1769189182 1.951490e{-}02} +\DocumentationTok{\#\# [5,] 0.0020037724 0.034904655 {-}1.041991e{-}03 0.0195149026 6.756428e{-}03} +\DocumentationTok{\#\# [6,] {-}0.0021925236 0.012804811 {-}2.503963e{-}04 0.0032072246 1.504690e{-}03} +\DocumentationTok{\#\# [7,] 0.1215890847 0.149089319 7.111900e{-}03 0.0575731487 {-}1.010198e{-}02} +\DocumentationTok{\#\# [8,] 0.0009971098 0.023865634 6.271266e{-}05 0.0042158445 8.584714e{-}04} +\DocumentationTok{\#\# [9,] 0.0669924083 0.057326151 6.226096e{-}03 0.0179862543 {-}1.309239e{-}02} +\DocumentationTok{\#\# [10,] 0.0010500117 0.001807746 5.805488e{-}05 0.0005143569 {-}7.516774e{-}05} +\DocumentationTok{\#\# [11,] {-}0.0049728997 {-}0.009950377 {-}4.790610e{-}04 {-}0.0010145003 9.532948e{-}04} +\DocumentationTok{\#\# [,6] [,7] [,8] [,9] [,10]} +\DocumentationTok{\#\# [1,] {-}2.192524e{-}03 0.1215890847 9.971098e{-}04 0.0669924083 1.050012e{-}03} +\DocumentationTok{\#\# [2,] 1.280481e{-}02 0.1490893190 2.386563e{-}02 0.0573261514 1.807746e{-}03} +\DocumentationTok{\#\# [3,] {-}2.503963e{-}04 0.0071119003 6.271266e{-}05 0.0062260963 5.805488e{-}05} +\DocumentationTok{\#\# [4,] 3.207225e{-}03 0.0575731487 4.215844e{-}03 0.0179862543 5.143569e{-}04} +\DocumentationTok{\#\# [5,] 1.504690e{-}03 {-}0.0101019780 8.584714e{-}04 {-}0.0130923877 {-}7.516774e{-}05} +\DocumentationTok{\#\# [6,] 3.925540e{-}04 {-}0.0028272756 2.326326e{-}04 {-}0.0032697941 {-}2.051327e{-}05} +\DocumentationTok{\#\# [7,] {-}2.827276e{-}03 0.1157858558 3.116262e{-}03 0.0940102394 9.767199e{-}04} +\DocumentationTok{\#\# [8,] 2.326326e{-}04 0.0031162617 5.314013e{-}04 0.0018656807 2.786064e{-}05} +\DocumentationTok{\#\# [9,] {-}3.269794e{-}03 0.0940102394 1.865681e{-}03 0.0838243357 8.055388e{-}04} +\DocumentationTok{\#\# [10,] {-}2.051327e{-}05 0.0009767199 2.786064e{-}05 0.0008055388 1.279440e{-}05} +\DocumentationTok{\#\# [11,] 1.806783e{-}04 {-}0.0038608273 2.199601e{-}04 {-}0.0033970159 {-}2.824858e{-}05} +\DocumentationTok{\#\# [,11]} +\DocumentationTok{\#\# [1,] {-}4.972900e{-}03} +\DocumentationTok{\#\# [2,] {-}9.950377e{-}03} +\DocumentationTok{\#\# [3,] {-}4.790610e{-}04} +\DocumentationTok{\#\# [4,] {-}1.014500e{-}03} +\DocumentationTok{\#\# [5,] 9.532948e{-}04} +\DocumentationTok{\#\# [6,] 1.806783e{-}04} +\DocumentationTok{\#\# [7,] {-}3.860827e{-}03} +\DocumentationTok{\#\# [8,] 2.199601e{-}04} +\DocumentationTok{\#\# [9,] {-}3.397016e{-}03} +\DocumentationTok{\#\# [10,] {-}2.824858e{-}05} +\DocumentationTok{\#\# [11,] 1.029016e{-}03} +\DocumentationTok{\#\# } +\DocumentationTok{\#\# $\textasciigrave{}Correlation Matrix of Estimates\textasciigrave{}} +\DocumentationTok{\#\# [,1] [,2] [,3] [,4] [,5] [,6]} +\DocumentationTok{\#\# [1,] 1.00000000 0.3139325 0.3885281 0.76325079 0.03802594 {-}0.1726174} +\DocumentationTok{\#\# [2,] 0.31393253 1.0000000 0.1294350 0.47628061 0.25198153 0.3835018} +\DocumentationTok{\#\# [3,] 0.38852814 0.1294350 1.0000000 0.16790689 {-}0.54943908 {-}0.5477629} +\DocumentationTok{\#\# [4,] 0.76325079 0.4762806 0.1679069 1.00000000 0.56444374 0.3848509} +\DocumentationTok{\#\# [5,] 0.03802594 0.2519815 {-}0.5494391 0.56444374 1.00000000 0.9239295} +\DocumentationTok{\#\# [6,] {-}0.17261745 0.3835018 {-}0.5477629 0.38485092 0.92392947 1.0000000} +\DocumentationTok{\#\# [7,] 0.55738714 0.2599936 0.9058832 0.40225837 {-}0.36117699 {-}0.4193635} +\DocumentationTok{\#\# [8,] 0.06747173 0.6143355 0.1179121 0.43479661 0.45306025 0.5093422} +\DocumentationTok{\#\# [9,] 0.36093637 0.1174929 0.9320626 0.14769593 {-}0.55014251 {-}0.5700142} +\DocumentationTok{\#\# [10,] 0.45790382 0.2998965 0.7034659 0.34187510 {-}0.25566008 {-}0.2894510} +\DocumentationTok{\#\# [11,] {-}0.24181804 {-}0.1840655 {-}0.6472826 {-}0.07518893 0.36154098 0.2842792} +\DocumentationTok{\#\# [,7] [,8] [,9] [,10] [,11]} +\DocumentationTok{\#\# [1,] 0.5573871 0.06747173 0.3609364 0.4579038 {-}0.24181804} +\DocumentationTok{\#\# [2,] 0.2599936 0.61433553 0.1174929 0.2998965 {-}0.18406548} +\DocumentationTok{\#\# [3,] 0.9058832 0.11791205 0.9320626 0.7034659 {-}0.64728263} +\DocumentationTok{\#\# [4,] 0.4022584 0.43479661 0.1476959 0.3418751 {-}0.07518893} +\DocumentationTok{\#\# [5,] {-}0.3611770 0.45306025 {-}0.5501425 {-}0.2556601 0.36154098} +\DocumentationTok{\#\# [6,] {-}0.4193635 0.50934216 {-}0.5700142 {-}0.2894510 0.28427925} +\DocumentationTok{\#\# [7,] 1.0000000 0.39727833 0.9542504 0.8024764 {-}0.35370524} +\DocumentationTok{\#\# [8,] 0.3972783 1.00000000 0.2795381 0.3378856 0.29745513} +\DocumentationTok{\#\# [9,] 0.9542504 0.27953807 1.0000000 0.7778421 {-}0.36576437} +\DocumentationTok{\#\# [10,] 0.8024764 0.33788563 0.7778421 1.0000000 {-}0.24619292} +\DocumentationTok{\#\# [11,] {-}0.3537052 0.29745513 {-}0.3657644 {-}0.2461929 1.00000000} +\DocumentationTok{\#\# } +\DocumentationTok{\#\# $\textasciigrave{}Inverse Covariance Matrix of Estimates\textasciigrave{}} +\DocumentationTok{\#\# [,1] [,2] [,3] [,4] [,5]} +\DocumentationTok{\#\# [1,] 106.16085 {-}68.57396 6449.005 335.8698 {-}2554.409} +\DocumentationTok{\#\# [2,] {-}68.57396 58.03937 {-}4878.746 {-}302.1420 2175.297} +\DocumentationTok{\#\# [3,] 6449.00514 {-}4878.74594 589180.809 26966.6055 {-}188642.065} +\DocumentationTok{\#\# [4,] 335.86981 {-}302.14199 26966.605 1681.5577 {-}11681.346} +\DocumentationTok{\#\# [5,] {-}2554.40932 2175.29716 {-}188642.065 {-}11681.3456 84767.297} +\DocumentationTok{\#\# [6,] {-}386.87894 570.22260 {-}66147.099 {-}3404.8900 13635.511} +\DocumentationTok{\#\# [7,] {-}1202.16352 939.99684 {-}90186.464 {-}5086.8917 35747.140} +\DocumentationTok{\#\# [8,] 10794.57609 {-}8973.04621 795473.397 47387.2333 {-}336778.082} +\DocumentationTok{\#\# [9,] {-}49.38187 87.68163 {-}10522.263 {-}442.6127 3308.451} +\DocumentationTok{\#\# [10,] 11656.77324 {-}10122.84537 899033.055 53311.6422 {-}378718.161} +\DocumentationTok{\#\# [11,] {-}1043.11500 1001.74635 {-}47225.438 {-}4879.5431 35063.038} +\DocumentationTok{\#\# [,6] [,7] [,8] [,9] [,10]} +\DocumentationTok{\#\# [1,] {-}386.8789 {-}1202.1635 10794.576 {-}49.38187 11656.77} +\DocumentationTok{\#\# [2,] 570.2226 939.9968 {-}8973.046 87.68163 {-}10122.85} +\DocumentationTok{\#\# [3,] {-}66147.0986 {-}90186.4639 795473.397 {-}10522.26321 899033.06} +\DocumentationTok{\#\# [4,] {-}3404.8900 {-}5086.8917 47387.233 {-}442.61268 53311.64} +\DocumentationTok{\#\# [5,] 13635.5106 35747.1396 {-}336778.082 3308.45066 {-}378718.16} +\DocumentationTok{\#\# [6,] 72186.1449 10923.7488 {-}116902.668 2827.92008 {-}138707.39} +\DocumentationTok{\#\# [7,] 10923.7488 16640.0641 {-}149635.854 965.72182 {-}166637.08} +\DocumentationTok{\#\# [8,] {-}116902.6684 {-}149635.8536 1416416.077 {-}14025.69870 1587796.18} +\DocumentationTok{\#\# [9,] 2827.9201 965.7218 {-}14025.699 954.65511 {-}20047.21} +\DocumentationTok{\#\# [10,] {-}138707.3931 {-}166637.0784 1587796.183 {-}20047.20949 2031529.82} +\DocumentationTok{\#\# [11,] 15687.7641 14275.7793 {-}151936.736 935.29881 {-}170271.34} +\DocumentationTok{\#\# [,11]} +\DocumentationTok{\#\# [1,] {-}1043.1150} +\DocumentationTok{\#\# [2,] 1001.7464} +\DocumentationTok{\#\# [3,] {-}47225.4381} +\DocumentationTok{\#\# [4,] {-}4879.5431} +\DocumentationTok{\#\# [5,] 35063.0376} +\DocumentationTok{\#\# [6,] 15687.7641} +\DocumentationTok{\#\# [7,] 14275.7793} +\DocumentationTok{\#\# [8,] {-}151936.7362} +\DocumentationTok{\#\# [9,] 935.2988} +\DocumentationTok{\#\# [10,] {-}170271.3406} +\DocumentationTok{\#\# [11,] 28036.5550} +\DocumentationTok{\#\# } +\DocumentationTok{\#\# $\textasciigrave{}Eigen Values\textasciigrave{}} +\DocumentationTok{\#\# [1] 0.0002519304 0.0096729015 0.0108358602 0.0233184643 0.0520725533} +\DocumentationTok{\#\# [6] 0.2982375053 0.5047779131 0.9114702297 1.2088053283 3.2082379737} +\DocumentationTok{\#\# [11] 4.7723193401} +\DocumentationTok{\#\# } +\DocumentationTok{\#\# $\textasciigrave{}R Matrix\textasciigrave{}} +\DocumentationTok{\#\# [,1] [,2] [,3] [,4] [,5]} +\DocumentationTok{\#\# [1,] 17.924787 {-}1.3343223 {-}162.767654 {-}4.1309683 21.546405} +\DocumentationTok{\#\# [2,] {-}1.334322 0.5507357 {-}7.672315 0.1118322 {-}1.462878} +\DocumentationTok{\#\# [3,] {-}162.767654 {-}7.6723148 34333.363150 86.0269293 433.962384} +\DocumentationTok{\#\# [4,] {-}4.130968 0.1118322 86.026929 28.6263094 {-}177.270130} +\DocumentationTok{\#\# [5,] 21.546405 {-}1.4628778 433.962384 {-}177.2701302 1930.445843} +\DocumentationTok{\#\# [6,] 10.225928 {-}16.5210396 13.387686 272.9370786 {-}4270.878832} +\DocumentationTok{\#\# [7,] {-}11.022690 2.9849069 {-}90.741373 {-}52.9261900 210.709300} +\DocumentationTok{\#\# [8,] 52.304346 {-}18.2457139 956.482064 164.3158075 {-}1421.957500} +\DocumentationTok{\#\# [9,] 7.044855 {-}2.2338946 {-}1350.939646 24.4536958 {-}43.763546} +\DocumentationTok{\#\# [10,] 248.456482 {-}120.7991176 {-}7033.212482 50.2328789 {-}1013.856688} +\DocumentationTok{\#\# [11,] {-}1.752135 {-}5.2052276 {-}1992.414213 6.0120604 124.417556} +\DocumentationTok{\#\# [,6] [,7] [,8] [,9] [,10]} +\DocumentationTok{\#\# [1,] 10.22593 {-}11.022690 52.30435 7.044855 248.45648} +\DocumentationTok{\#\# [2,] {-}16.52104 2.984907 {-}18.24571 {-}2.233895 {-}120.79912} +\DocumentationTok{\#\# [3,] 13.38769 {-}90.741373 956.48206 {-}1350.939646 {-}7033.21248} +\DocumentationTok{\#\# [4,] 272.93708 {-}52.926190 164.31581 24.453696 50.23288} +\DocumentationTok{\#\# [5,] {-}4270.87883 210.709300 {-}1421.95750 {-}43.763546 {-}1013.85669} +\DocumentationTok{\#\# [6,] 16610.43942 {-}139.814385 1113.59904 18.726078 4680.59998} +\DocumentationTok{\#\# [7,] {-}139.81438 213.228947 {-}555.99366 {-}151.083275 96.25915} +\DocumentationTok{\#\# [8,] 1113.59904 {-}555.993663 4043.51428 130.794770 {-}555.76917} +\DocumentationTok{\#\# [9,] 18.72608 {-}151.083275 130.79477 236.875935 {-}20.42601} +\DocumentationTok{\#\# [10,] 4680.59998 96.259149 {-}555.76917 {-}20.426010 192857.05263} +\DocumentationTok{\#\# [11,] {-}46.02961 {-}62.941133 {-}201.26760 92.656857 6568.90926} +\DocumentationTok{\#\# [,11]} +\DocumentationTok{\#\# [1,] {-}1.752135} +\DocumentationTok{\#\# [2,] {-}5.205228} +\DocumentationTok{\#\# [3,] {-}1992.414213} +\DocumentationTok{\#\# [4,] 6.012060} +\DocumentationTok{\#\# [5,] 124.417556} +\DocumentationTok{\#\# [6,] {-}46.029614} +\DocumentationTok{\#\# [7,] {-}62.941133} +\DocumentationTok{\#\# [8,] {-}201.267605} +\DocumentationTok{\#\# [9,] 92.656857} +\DocumentationTok{\#\# [10,] 6568.909257} +\DocumentationTok{\#\# [11,] 3974.804398} +\DocumentationTok{\#\# } +\DocumentationTok{\#\# $\textasciigrave{}S Matrix\textasciigrave{}} +\DocumentationTok{\#\# [,1] [,2] [,3] [,4] [,5]} +\DocumentationTok{\#\# [1,] 78.316509 {-}4.6468525 {-}1295.13192 {-}11.873085 142.72165} +\DocumentationTok{\#\# [2,] {-}4.646852 0.7648878 64.36589 2.623533 {-}28.61925} +\DocumentationTok{\#\# [3,] {-}1295.131915 64.3658917 183632.39790 {-}230.636173 840.38211} +\DocumentationTok{\#\# [4,] {-}11.873085 2.6235332 {-}230.63617 18.368716 {-}171.71679} +\DocumentationTok{\#\# [5,] 142.721653 {-}28.6192545 840.38211 {-}171.716794 2005.81552} +\DocumentationTok{\#\# [6,] {-}145.835176 29.4905947 9000.10289 291.779615 {-}3809.95407} +\DocumentationTok{\#\# [7,] {-}26.707401 0.2387057 3794.27704 {-}19.686952 51.76139} +\DocumentationTok{\#\# [8,] 44.375129 10.7614124 {-}10813.66435 84.841787 {-}765.19107} +\DocumentationTok{\#\# [9,] 13.946014 {-}4.4042212 {-}6396.75146 3.480210 87.90129} +\DocumentationTok{\#\# [10,] 2039.647982 {-}397.4745827 {-}4148.02643 {-}1170.279733 8916.77585} +\DocumentationTok{\#\# [11,] 279.500822 {-}47.3111189 {-}60483.51062 {-}22.729230 670.78875} +\DocumentationTok{\#\# [,6] [,7] [,8] [,9] [,10]} +\DocumentationTok{\#\# [1,] {-}145.83518 {-}26.7074010 44.37513 13.946014 2039.6480} +\DocumentationTok{\#\# [2,] 29.49059 0.2387057 10.76141 {-}4.404221 {-}397.4746} +\DocumentationTok{\#\# [3,] 9000.10289 3794.2770370 {-}10813.66435 {-}6396.751456 {-}4148.0264} +\DocumentationTok{\#\# [4,] 291.77961 {-}19.6869516 84.84179 3.480210 {-}1170.2797} +\DocumentationTok{\#\# [5,] {-}3809.95407 51.7613883 {-}765.19107 87.901295 8916.7758} +\DocumentationTok{\#\# [6,] 12023.28652 188.5688359 667.62858 {-}711.894529 {-}3829.1367} +\DocumentationTok{\#\# [7,] 188.56884 129.3349739 {-}292.66398 {-}155.764410 1796.9713} +\DocumentationTok{\#\# [8,] 667.62858 {-}292.6639799 1121.03185 294.247258 {-}10631.8774} +\DocumentationTok{\#\# [9,] {-}711.89453 {-}155.7644099 294.24726 327.282119 1812.2113} +\DocumentationTok{\#\# [10,] {-}3829.13667 1796.9713202 {-}10631.87742 1812.211286 419517.6543} +\DocumentationTok{\#\# [11,] {-}3489.01512 {-}1105.9231026 2773.71160 2358.454995 18067.4267} +\DocumentationTok{\#\# [,11]} +\DocumentationTok{\#\# [1,] 279.50082} +\DocumentationTok{\#\# [2,] {-}47.31112} +\DocumentationTok{\#\# [3,] {-}60483.51062} +\DocumentationTok{\#\# [4,] {-}22.72923} +\DocumentationTok{\#\# [5,] 670.78875} +\DocumentationTok{\#\# [6,] {-}3489.01512} +\DocumentationTok{\#\# [7,] {-}1105.92310} +\DocumentationTok{\#\# [8,] 2773.71160} +\DocumentationTok{\#\# [9,] 2358.45500} +\DocumentationTok{\#\# [10,] 18067.42672} +\DocumentationTok{\#\# [11,] 24042.66052} \end{Highlighting} \end{Shaded} @@ -4243,26 +4200,25 @@ \section{Theophylline 예제 데이터셋}\label{Theoph}} \begin{Shaded} \begin{Highlighting}[] -\NormalTok{(}\DataTypeTok{EBE1 =} \KeywordTok{PostHocEta}\NormalTok{()) }\CommentTok{\# Using e$FinalPara from EstStep()} -\CommentTok{\#\# ID ETA1 ETA2 ETA3} -\CommentTok{\#\# [1,] 1 {-}0.6367109 {-}0.232258352 {-}0.73648224} -\CommentTok{\#\# [2,] 2 {-}0.5895843 {-}0.153341805 {-}0.06619115} -\CommentTok{\#\# [3,] 3 {-}0.3083755 {-}0.124816676 {-}0.21013190} -\CommentTok{\#\# [4,] 4 {-}1.0305984 {-}0.186821177 {-}0.21195510} -\CommentTok{\#\# [5,] 5 {-}0.8235560 {-}0.302352128 {-}0.24453948} -\CommentTok{\#\# [6,] 6 {-}1.0025271 0.068181532 {-}0.08745089} -\CommentTok{\#\# [7,] 7 {-}1.4316285 {-}0.097903076 {-}0.13802639} -\CommentTok{\#\# [8,] 8 {-}0.7541785 {-}0.039239022 {-}0.19621190} -\CommentTok{\#\# [9,] 9 0.7875803 0.010757282 {-}0.19937965} -\CommentTok{\#\# [10,] 10 {-}1.4555649 {-}0.369057237 {-}0.40057582} -\CommentTok{\#\# [11,] 11 0.1541451 {-}0.005061315 {-}0.08005791} -\CommentTok{\#\# [12,] 12 {-}1.2863346 {-}0.388864841 {-}0.10134440} +\NormalTok{(}\AttributeTok{EBE1 =} \FunctionTok{PostHocEta}\NormalTok{()) }\CommentTok{\# Using e$FinalPara from EstStep()} +\DocumentationTok{\#\# ID ETA1 ETA2 ETA3} +\DocumentationTok{\#\# [1,] 1 {-}0.6367109 {-}0.232258352 {-}0.73648224} +\DocumentationTok{\#\# [2,] 2 {-}0.5895843 {-}0.153341805 {-}0.06619115} +\DocumentationTok{\#\# [3,] 3 {-}0.3083755 {-}0.124816676 {-}0.21013190} +\DocumentationTok{\#\# [4,] 4 {-}1.0305984 {-}0.186821177 {-}0.21195510} +\DocumentationTok{\#\# [5,] 5 {-}0.8235560 {-}0.302352128 {-}0.24453948} +\DocumentationTok{\#\# [6,] 6 {-}1.0025271 0.068181532 {-}0.08745089} +\DocumentationTok{\#\# [7,] 7 {-}1.4316285 {-}0.097903076 {-}0.13802639} +\DocumentationTok{\#\# [8,] 8 {-}0.7541785 {-}0.039239022 {-}0.19621190} +\DocumentationTok{\#\# [9,] 9 0.7875803 0.010757282 {-}0.19937965} +\DocumentationTok{\#\# [10,] 10 {-}1.4555649 {-}0.369057237 {-}0.40057582} +\DocumentationTok{\#\# [11,] 11 0.1541451 {-}0.005061315 {-}0.08005791} +\DocumentationTok{\#\# [12,] 12 {-}1.2863346 {-}0.388864841 {-}0.10134440} \CommentTok{\# (Tab1 = TabStep())} \end{Highlighting} \end{Shaded} -\hypertarget{eigenvalue}{% -\section{고유값(Eigenvalue)}\label{eigenvalue}} +\section{고유값(Eigenvalue)}\label{eigenvalue} \index{고유값 / eigenvalues}\index{eigenvalues / 고유값} @@ -4288,8 +4244,7 @@ \section{고유값(Eigenvalue)}\label{eigenvalue}} Minimization에서 고유값을 출력하는 이유는 minimization 과정이 얼마나 어려웠는가를 표시하기 위해서이다. 조건수(condition number)란 고유값의 최대치/최소치에다 1/2승한 것인데, 이것이 크다면 그만큼 수치계산의 어려움을 겪었다는 것이다. 조건수가 크다고 모형이 잘못되었다는 것을 의미하는 것은 아니다. 혹시 minimization(fitting)에 실패하였다면 그 원인 중의 하나가 조건수가 크기 때문일 수 있다.\index{고유값 / eigenvalues}\index{eigenvalues / 고유값}\index{조건수 / condition number}\index{condition number / 조건수} -\hypertarget{uxacb0uxb860}{% -\section{결론}\label{uxacb0uxb860}} +\section{결론}\label{uxacb0uxb860} NONMEM의 Covariance step을 이해하기 위해 R로 NONMEM의 output을 재현해 보았다. 그러나, R이 NONMEM을 대체할 수 없는 이유 두 가지는 다음과 같다. @@ -4302,10 +4257,9 @@ \section{결론}\label{uxacb0uxb860}} 속도가 적어도 수 십에서 수 백 배 느리다. \end{enumerate} -나머지 FOCE나 Laplacian에 대해서는 nmw 패키지의 도움말\footnote{\url{https://cran.r-project.org/web/packages/nmw/nmw.pdf}}을 보고 실행하면 알 수 있다. (Bae \protect\hyperlink{ref-R-nmw}{2018})\index{1차 조건부 추정방법(FOCE) / first-order conditional estimation method(FOCE)}\index{first-order conditional estimation method(FOCE) / 1차 조건부 추정방법(FOCE)}\index{first-order conditional estimation method(FOCE) / 1차 조건부 추정방법(FOCE)}\index{FOCE}\index{FO} +나머지 FOCE나 Laplacian에 대해서는 nmw 패키지의 도움말\footnote{\url{https://cran.r-project.org/web/packages/nmw/nmw.pdf}}을 보고 실행하면 알 수 있다. (\citeproc{ref-R-nmw}{Bae 2018})\index{1차 조건부 추정방법(FOCE) / first-order conditional estimation method(FOCE)}\index{first-order conditional estimation method(FOCE) / 1차 조건부 추정방법(FOCE)}\index{first-order conditional estimation method(FOCE) / 1차 조건부 추정방법(FOCE)}\index{FOCE}\index{FO} -\hypertarget{parameters}{% -\chapter{모델 파라미터의 적절성}\label{parameters}} +\chapter{모델 파라미터의 적절성}\label{parameters} \Large\hfill @@ -4322,7 +4276,7 @@ \chapter{모델 파라미터의 적절성}\label{parameters}} } -\caption{Example of EBE vs Covariates (Bonate \protect\hyperlink{ref-bonate}{2011})}\label{fig:ebe-cov} +\caption{Example of EBE vs Covariates (\citeproc{ref-bonate}{Bonate 2011})}\label{fig:ebe-cov} \end{figure} @@ -4335,7 +4289,7 @@ \chapter{모델 파라미터의 적절성}\label{parameters}} } -\caption{Concept of η shrinkage (Savic \protect\hyperlink{ref-uppsala}{2007})\index{shrinkage / 축소}\index{shrinkage / 축소}}\label{fig:eta-shrinkage} +\caption{Concept of η shrinkage (\citeproc{ref-uppsala}{Savic 2007})\index{shrinkage / 축소}\index{shrinkage / 축소}}\label{fig:eta-shrinkage} \end{figure} \index{shrinkage / 축소}\index{shrinkage / 축소} @@ -4360,7 +4314,7 @@ \chapter{모델 파라미터의 적절성}\label{parameters}} } -\caption{Example 1 - Consequences of η shrinkage (Savic \protect\hyperlink{ref-uppsala}{2007})\index{shrinkage / 축소}\index{shrinkage / 축소}}\label{fig:eta-shrinkage-plot} +\caption{Example 1 - Consequences of η shrinkage (\citeproc{ref-uppsala}{Savic 2007})\index{shrinkage / 축소}\index{shrinkage / 축소}}\label{fig:eta-shrinkage-plot} \end{figure} \index{shrinkage / 축소}\index{shrinkage / 축소} @@ -4375,7 +4329,7 @@ \chapter{모델 파라미터의 적절성}\label{parameters}} } -\caption{Example 2 - Consequences of η shrinkage (Savic \protect\hyperlink{ref-uppsala}{2007})\index{shrinkage / 축소}\index{shrinkage / 축소}}\label{fig:ex2-cons} +\caption{Example 2 - Consequences of η shrinkage (\citeproc{ref-uppsala}{Savic 2007})\index{shrinkage / 축소}\index{shrinkage / 축소}}\label{fig:ex2-cons} \end{figure} @@ -4388,7 +4342,7 @@ \chapter{모델 파라미터의 적절성}\label{parameters}} } -\caption{Example 3 - Consequences of η shrinkage (Savic \protect\hyperlink{ref-uppsala}{2007})\index{shrinkage / 축소}\index{shrinkage / 축소}}\label{fig:ex3-cons} +\caption{Example 3 - Consequences of η shrinkage (\citeproc{ref-uppsala}{Savic 2007})\index{shrinkage / 축소}\index{shrinkage / 축소}}\label{fig:ex3-cons} \end{figure} @@ -4399,7 +4353,7 @@ \chapter{모델 파라미터의 적절성}\label{parameters}} } -\caption{Induced or hidden correlation according to average shrinkage (\%) (Savic \protect\hyperlink{ref-uppsala}{2007})\index{shrinkage / 축소}\index{shrinkage / 축소}}\label{fig:induced-corr} +\caption{Induced or hidden correlation according to average shrinkage (\%) (\citeproc{ref-uppsala}{Savic 2007})\index{shrinkage / 축소}\index{shrinkage / 축소}}\label{fig:induced-corr} \end{figure} @@ -4412,7 +4366,7 @@ \chapter{모델 파라미터의 적절성}\label{parameters}} } -\caption{Example 4 - Consequences of η shrinkage (Savic \protect\hyperlink{ref-uppsala}{2007})\index{shrinkage / 축소}\index{shrinkage / 축소}}\label{fig:ex4-cons} +\caption{Example 4 - Consequences of η shrinkage (\citeproc{ref-uppsala}{Savic 2007})\index{shrinkage / 축소}\index{shrinkage / 축소}}\label{fig:ex4-cons} \end{figure} @@ -4437,7 +4391,7 @@ \chapter{모델 파라미터의 적절성}\label{parameters}} } -\caption{Concept of ε shrinkage (Savic \protect\hyperlink{ref-uppsala}{2007})\index{shrinkage / 축소}\index{shrinkage / 축소}}\label{fig:concept-eps-shrinkage} +\caption{Concept of ε shrinkage (\citeproc{ref-uppsala}{Savic 2007})\index{shrinkage / 축소}\index{shrinkage / 축소}}\label{fig:concept-eps-shrinkage} \end{figure} \index{shrinkage / 축소}\index{shrinkage / 축소} @@ -4454,7 +4408,7 @@ \chapter{모델 파라미터의 적절성}\label{parameters}} } -\caption{Perfect fit phenomenon (Savic \protect\hyperlink{ref-uppsala}{2007})}\label{fig:perfect-fit} +\caption{Perfect fit phenomenon (\citeproc{ref-uppsala}{Savic 2007})}\label{fig:perfect-fit} \end{figure} @@ -4467,7 +4421,7 @@ \chapter{모델 파라미터의 적절성}\label{parameters}} } -\caption{1-compartment model fitted to data simulated with a 2-compartment model (Savic \protect\hyperlink{ref-uppsala}{2007})}\label{fig:1comp-2comp} +\caption{1-compartment model fitted to data simulated with a 2-compartment model (\citeproc{ref-uppsala}{Savic 2007})}\label{fig:1comp-2comp} \end{figure} @@ -4478,7 +4432,7 @@ \chapter{모델 파라미터의 적절성}\label{parameters}} } -\caption{Linear Emax model fitted to data simulated with a sigmoidal Emax model (Savic \protect\hyperlink{ref-uppsala}{2007})}\label{fig:linear-sigmoidal} +\caption{Linear Emax model fitted to data simulated with a sigmoidal Emax model (\citeproc{ref-uppsala}{Savic 2007})}\label{fig:linear-sigmoidal} \end{figure} @@ -4491,13 +4445,12 @@ \chapter{모델 파라미터의 적절성}\label{parameters}} } -\caption{Low power of IWRES to diagnose Residual error misspecification (Savic \protect\hyperlink{ref-uppsala}{2007})\index{IWRES}\index{RES}\index{WRES}}\label{fig:low-IWRES} +\caption{Low power of IWRES to diagnose Residual error misspecification (\citeproc{ref-uppsala}{Savic 2007})\index{IWRES}\index{RES}\index{WRES}}\label{fig:low-IWRES} \end{figure} -\hypertarget{evaluation}{% -\chapter{모델의 예측성능 평가}\label{evaluation}} +\chapter{모델의 예측성능 평가}\label{evaluation} \Large\hfill @@ -4535,10 +4488,9 @@ \chapter{모델의 예측성능 평가}\label{evaluation}} \end{tabular} \end{table} -모델을 수치적, 시각적, 통계적으로 평가하는 다양한 방법들이 제시되어 있으며 (Brendel et al. \protect\hyperlink{ref-pmid17328581}{2007}), 이것을 표 \ref{tab:purpose-eval}에서 목적과 표현방식에 따라 정리하였다. 이 중 계량약리학 분야에서 재현성(reproducibility)에 초점을 맞춘 방법들을 통칭하여 흔히 모델검증(model validation)이라 한다. 모델검증의 목적은 타당성(validation) 검증 데이터셋에서 모델이 잘 작동되며 잘 적용되는지 여부를 검토하는 것이다. 이러한 모델검증 절차는 분석계획서에 통합적으로 기술되는 것이 추천된다. 이 장에서는 모델의 예측성능 평가를 위해 사용되는 다양한 기법의 목적과 방법에 대해 논할 것이다. +모델을 수치적, 시각적, 통계적으로 평가하는 다양한 방법들이 제시되어 있으며 (\citeproc{ref-pmid17328581}{Brendel et al. 2007}), 이것을 표 \ref{tab:purpose-eval}에서 목적과 표현방식에 따라 정리하였다. 이 중 계량약리학 분야에서 재현성(reproducibility)에 초점을 맞춘 방법들을 통칭하여 흔히 모델검증(model validation)이라 한다. 모델검증의 목적은 타당성(validation) 검증 데이터셋에서 모델이 잘 작동되며 잘 적용되는지 여부를 검토하는 것이다. 이러한 모델검증 절차는 분석계획서에 통합적으로 기술되는 것이 추천된다. 이 장에서는 모델의 예측성능 평가를 위해 사용되는 다양한 기법의 목적과 방법에 대해 논할 것이다. -\hypertarget{uxc678uxbd80uxac80uxc99dexternal-validationuxb0b4uxbd80uxac80uxc99dinternal-validation}{% -\section{외부검증(External validation)/내부검증(Internal validation)}\label{uxc678uxbd80uxac80uxc99dexternal-validationuxb0b4uxbd80uxac80uxc99dinternal-validation}} +\section{외부검증(External validation)/내부검증(Internal validation)}\label{uxc678uxbd80uxac80uxc99dexternal-validationuxb0b4uxbd80uxac80uxc99dinternal-validation} \index{내부검증 / internal validation}\index{internal validation / 내부검증}\index{외부검증 / external validation}\index{external validation / 외부검증} @@ -4546,10 +4498,9 @@ \section{외부검증(External validation)/내부검증(Internal validation)}\la 올바른 외부검증/내부검증은 사전계획에서부터 시작된다. 즉, 모델링을 시작하기 전에 계획을 세워 편향성을 제거하는 것이 필요하다. 모델을 비교하기 위해 사용되는 통계량에 대한 기준값을 미리부터 분석계획에 명시하는 것이 추천되며, 내부검증 혹은 외부검증에서 계산된 통계량이 애초에 설정된 기준을 만족시키지 않는 경우 모델의 개선이 필요하다.\index{내부검증 / internal validation}\index{internal validation / 내부검증}\index{외부검증 / external validation}\index{external validation / 외부검증} -데이터 분할 기법(data splitting method)은 모델 평가를 위해 새로운 자료를 수집하는 것이 어려울 경우에 검증 자료를 만들어내는 유용한 내부검증 방법으로 분석 데이터셋의 일부분을 임의로 추출하여 검사용 데이터셋을 만들고, 실제 개발 데이터셋에서 이를 제거한다. 이 방법의 단점은 모델의 예측 정확도가 자료를 나누는데 사용된 표본의 크기에 따라 좌우된다는 것이다. 또 다른 내부검증 기법은 재추출 방법(resampling)으로 교차 타당성 검증(cross-validation)과 붓스트랩(bootstrap)의 두 가지 방법이 포함된다. 교차 타당성 검증은 데어터 분할(data splitting)을 반복하여 사용하는 방법이고 모형 구축을 위해 사용되는 자료 세트의 크기가 다른 방법에 비해 크고 이로 인해 추정과정에서 무시되는 자료가 작다는 장점이 있고, 단일 샘플의 분할에 의존하지 않기 때문에 변이성이 감소하게 된다. (식품의약품안전평가원 의약품심사부 종양약품과 \protect\hyperlink{ref-poppk}{2015})\index{내부검증 / internal validation}\index{붓스트랩 / bootstrapping}\index{bootstrapping / 붓스트랩}\index{internal validation / 내부검증} +데이터 분할 기법(data splitting method)은 모델 평가를 위해 새로운 자료를 수집하는 것이 어려울 경우에 검증 자료를 만들어내는 유용한 내부검증 방법으로 분석 데이터셋의 일부분을 임의로 추출하여 검사용 데이터셋을 만들고, 실제 개발 데이터셋에서 이를 제거한다. 이 방법의 단점은 모델의 예측 정확도가 자료를 나누는데 사용된 표본의 크기에 따라 좌우된다는 것이다. 또 다른 내부검증 기법은 재추출 방법(resampling)으로 교차 타당성 검증(cross-validation)과 붓스트랩(bootstrap)의 두 가지 방법이 포함된다. 교차 타당성 검증은 데어터 분할(data splitting)을 반복하여 사용하는 방법이고 모형 구축을 위해 사용되는 자료 세트의 크기가 다른 방법에 비해 크고 이로 인해 추정과정에서 무시되는 자료가 작다는 장점이 있고, 단일 샘플의 분할에 의존하지 않기 때문에 변이성이 감소하게 된다. (\citeproc{ref-poppk}{식품의약품안전평가원 의약품심사부 종양약품과 2015})\index{내부검증 / internal validation}\index{붓스트랩 / bootstrapping}\index{bootstrapping / 붓스트랩}\index{internal validation / 내부검증} -\hypertarget{uxbd93uxc2a4uxd2b8uxb7a9-bootstrap}{% -\section{붓스트랩 (Bootstrap)}\label{uxbd93uxc2a4uxd2b8uxb7a9-bootstrap}} +\section{붓스트랩 (Bootstrap)}\label{uxbd93uxc2a4uxd2b8uxb7a9-bootstrap} \index{붓스트랩 / bootstrapping}\index{bootstrapping / 붓스트랩} @@ -4579,17 +4530,15 @@ \section{붓스트랩 (Bootstrap)}\label{uxbd93uxc2a4uxd2b8uxb7a9-bootstrap}} -\hypertarget{simulation-based-diagnostics}{% -\section{Simulation-based diagnostics}\label{simulation-based-diagnostics}} +\section{Simulation-based diagnostics}\label{simulation-based-diagnostics} -시뮬레이션에 기반한 예측성능 평가 과정인 사후예측점검(PPC), VPC와 NPC은 모두 관찰값과 모델에 의해 시뮬레이션된 값들의 분포를 비교하는 것이다. (Yano, Beal, and Sheiner \protect\hyperlink{ref-yano2001evaluating}{2001}; Post et al. \protect\hyperlink{ref-post2008extensions}{2008}) 시뮬레이션 데이터가 관찰 데이터의 분포특징을 적절히 반영하고 있음을 시각적, 수치적으로 확인할 수 있다면 모델의 예측성능 평가가 잘 이루어졌다고 말할 수 있다.\index{사후예측점검(PPC) / posterior predictive check(PPC)}\index{시뮬레이션 / simulation}\index{posterior predictive check(PPC) / 사후예측점검(PPC)}\index{simulation / 시뮬레이션} +시뮬레이션에 기반한 예측성능 평가 과정인 사후예측점검(PPC), VPC와 NPC은 모두 관찰값과 모델에 의해 시뮬레이션된 값들의 분포를 비교하는 것이다. (\citeproc{ref-yano2001evaluating}{Yano, Beal, and Sheiner 2001}; \citeproc{ref-post2008extensions}{Post et al. 2008}) 시뮬레이션 데이터가 관찰 데이터의 분포특징을 적절히 반영하고 있음을 시각적, 수치적으로 확인할 수 있다면 모델의 예측성능 평가가 잘 이루어졌다고 말할 수 있다.\index{사후예측점검(PPC) / posterior predictive check(PPC)}\index{시뮬레이션 / simulation}\index{posterior predictive check(PPC) / 사후예측점검(PPC)}\index{simulation / 시뮬레이션} -\hypertarget{uxc0acuxd6c4-uxc608uxce21-uxc810uxac80-posterior-predictive-check}{% -\subsection{사후 예측 점검 (posterior predictive check)}\label{uxc0acuxd6c4-uxc608uxce21-uxc810uxac80-posterior-predictive-check}} +\subsection{사후 예측 점검 (posterior predictive check)}\label{uxc0acuxd6c4-uxc608uxce21-uxc810uxac80-posterior-predictive-check} \index{posterior predictive check(PPC) / 사후예측점검(PPC)} -사후 예측 점검을 통해 현재와 미래 자료 세트의 중요한 임상적 특성이 모델에 의해 충실히 재현이 되는가를 결정하는데 유용할 수 있다. (Post et al. \protect\hyperlink{ref-post2008extensions}{2008}) 이 방법은 특정 요약 통계량을 원본 데이터셋에서 계산하고 이를 시뮬레이션으로부터 발생된 사후 예측 분포와 비교하는 것이다. (그림 \ref{fig:ppc}) 사후값(posterior)은 불확실성(uncertainty)과 잔류변이(residual variability)를 반영하고 있으며 이것이 특정 분포를 따르지 않는 경우, 또는 관찰값과 큰 차이가 나는 경우 자신의 모델을 점검할 수 있다. 시뮬레이션의 반복 데이터셋을 생성하여 통계량의 분포와 상응하는 유의확률값을 얻어낼 수도 있다. 그러나 현재로서는 이러한 접근법이 널리 통용되고 있지는 않다.\index{시뮬레이션 / simulation}\index{simulation / 시뮬레이션} +사후 예측 점검을 통해 현재와 미래 자료 세트의 중요한 임상적 특성이 모델에 의해 충실히 재현이 되는가를 결정하는데 유용할 수 있다. (\citeproc{ref-post2008extensions}{Post et al. 2008}) 이 방법은 특정 요약 통계량을 원본 데이터셋에서 계산하고 이를 시뮬레이션으로부터 발생된 사후 예측 분포와 비교하는 것이다. (그림 \ref{fig:ppc}) 사후값(posterior)은 불확실성(uncertainty)과 잔류변이(residual variability)를 반영하고 있으며 이것이 특정 분포를 따르지 않는 경우, 또는 관찰값과 큰 차이가 나는 경우 자신의 모델을 점검할 수 있다. 시뮬레이션의 반복 데이터셋을 생성하여 통계량의 분포와 상응하는 유의확률값을 얻어낼 수도 있다. 그러나 현재로서는 이러한 접근법이 널리 통용되고 있지는 않다.\index{시뮬레이션 / simulation}\index{simulation / 시뮬레이션} \begin{figure} @@ -4602,8 +4551,7 @@ \subsection{사후 예측 점검 (posterior predictive check)}\label{uxc0acuxd6c -\hypertarget{uxc2dcuxac01uxc801-uxc608uxce21-uxc810uxac80-visual-predictive-check}{% -\subsection{시각적 예측 점검 (visual predictive check)}\label{uxc2dcuxac01uxc801-uxc608uxce21-uxc810uxac80-visual-predictive-check}} +\subsection{시각적 예측 점검 (visual predictive check)}\label{uxc2dcuxac01uxc801-uxc608uxce21-uxc810uxac80-visual-predictive-check} \index{시각적 예측 점검(VPC) / visual predictive check(VPC)}\index{visual predictive check(VPC) / 시각적 예측 점검(VPC)} \index{visual predictive check(VPC) / 시각적 예측 점검(VPC)} @@ -4624,7 +4572,7 @@ \subsection{시각적 예측 점검 (visual predictive check)}\label{uxc2dcuxac0 } -\caption{시각적 예측 점검 과정의 대표적인 scatter VPC 의 예 (Harling \protect\hyperlink{ref-vpcnpc}{2018}). 점선은 시뮬레이션 값들의 5, 95 퍼센타일, 실선은 중앙값을 나타냄\index{시각적 예측 점검(VPC) / visual predictive check(VPC)}\index{시뮬레이션 / simulation}\index{simulation / 시뮬레이션}\index{visual predictive check(VPC) / 시각적 예측 점검(VPC)}}\label{fig:scatter-vpc} +\caption{시각적 예측 점검 과정의 대표적인 scatter VPC 의 예 (\citeproc{ref-vpcnpc}{Harling 2018}). 점선은 시뮬레이션 값들의 5, 95 퍼센타일, 실선은 중앙값을 나타냄\index{시각적 예측 점검(VPC) / visual predictive check(VPC)}\index{시뮬레이션 / simulation}\index{simulation / 시뮬레이션}\index{visual predictive check(VPC) / 시각적 예측 점검(VPC)}}\label{fig:scatter-vpc} \end{figure} @@ -4644,7 +4592,7 @@ \subsection{시각적 예측 점검 (visual predictive check)}\label{uxc2dcuxac0 \index{계급구간화 / binning}\index{binning / 계급구간화} -VPC를 생성할때 계급구간화(Binning)가 적절히 행해지면 실제 수행 시간의 변동성이 그림에 과도하게 표현되는 것을 줄이고 계획된 시간(nominal time)이 같은 자료일때 동일한 예측 구간을 표현케 할 수 있으므로, 계급구간화를 올바르게 수행하는 것은 중요하다. PsN에서는 VPC 계급구간화에 대한 다양한 옵션을 제공하고 있으므로 이에 대한 자세한 정보는 PsN User Guide를 참고할 수 있다. (Harling \protect\hyperlink{ref-vpcnpc}{2018})\index{계급구간화 / binning}\index{binning / 계급구간화} +VPC를 생성할때 계급구간화(Binning)가 적절히 행해지면 실제 수행 시간의 변동성이 그림에 과도하게 표현되는 것을 줄이고 계획된 시간(nominal time)이 같은 자료일때 동일한 예측 구간을 표현케 할 수 있으므로, 계급구간화를 올바르게 수행하는 것은 중요하다. PsN에서는 VPC 계급구간화에 대한 다양한 옵션을 제공하고 있으므로 이에 대한 자세한 정보는 PsN User Guide를 참고할 수 있다. (\citeproc{ref-vpcnpc}{Harling 2018})\index{계급구간화 / binning}\index{binning / 계급구간화} \index{층화 / stratification} @@ -4652,7 +4600,7 @@ \subsection{시각적 예측 점검 (visual predictive check)}\label{uxc2dcuxac0 \begin{Shaded} \begin{Highlighting}[] -\ExtensionTok{vpc}\NormalTok{ bean.CTL {-}lst=bean.CTL.lst {-}samples=1000 {-}stratify\_on=DAY {-}idv=TAD} +\ExtensionTok{vpc}\NormalTok{ bean.CTL }\AttributeTok{{-}lst}\OperatorTok{=}\NormalTok{bean.CTL.lst }\AttributeTok{{-}samples}\OperatorTok{=}\NormalTok{1000 }\AttributeTok{{-}stratify\_on}\OperatorTok{=}\NormalTok{DAY }\AttributeTok{{-}idv}\OperatorTok{=}\NormalTok{TAD} \end{Highlighting} \end{Shaded} @@ -4671,12 +4619,11 @@ \subsection{시각적 예측 점검 (visual predictive check)}\label{uxc2dcuxac0 VPC가 직관적이고 많은 상황에서 흔히 쓰이고 있으나 일부 유용성이 떨어지는 상황이 있을 수도 있기에 사용에 주의를 요한다. 결측치 (BQL, below quantification limit) 자료가 많은 경우 시뮬레이션이 잘 안될 수 있기 때문에 주의해야 하며, BQL 있는 부분과 아닌 부분을 층화로 나누어 그리기도 한다. 계획서 위반(protocol violation)이 많은 경우, 약물 복용 비준수(nonadherence)가 많은 경우에도 VPC 적용에 주의를 기울여야 한다. 또한 적응적 설계(adaptive design), 용량 조정 시험 등에서 사용하는 경우에도 VPC를 적용하는 것이 어려울 것이다. 용량 변화의 모든 상황을 층화로 나누어서 그리는 것이 필요하겠지만 경우의 수가 많아지는 경우 모든 상황을 VPC로 표현하는 것이 어려울 수 있다.\index{시뮬레이션 / simulation}\index{simulation / 시뮬레이션} -\hypertarget{uxc218uxce58uxc801-uxc608uxce21-uxc810uxac80-numerical-predictive-check}{% -\subsection{수치적 예측 점검 (numerical predictive check)}\label{uxc218uxce58uxc801-uxc608uxce21-uxc810uxac80-numerical-predictive-check}} +\subsection{수치적 예측 점검 (numerical predictive check)}\label{uxc218uxce58uxc801-uxc608uxce21-uxc810uxac80-numerical-predictive-check} \index{수치적 예측 점검(NPC) / numerical predictive check(NPC)}\index{numerical predictive check(NPC) / 수치적 예측 점검(NPC)} -NPC는 VPC와 유사한 방식으로 모델 진단을 수행하며, 그 논리나 자료는 앞서 기술된 VPC와 차이가 없다. 즉, 모델이 적절한 방법으로 생성되었다면, 그로부터 시뮬레이션된 값들은 관찰된 자료와 큰 차이가 없을 것이다. (Harling \protect\hyperlink{ref-vpcnpc}{2018}) 설정된 예측 구간에 대해 관측값이 예측 구간 경계인 안쪽 혹은 바깥쪽에 얼마나 위치하는지 살필 수 있다. 5\%의 관측값이 95\% 예측 구간 밖에 위치할 경우(2.5\%는 상한 위쪽에, 2.5\%는 하한 밑 쪽에), 혹은 10\%의 관측값이 90\% 예측 구간 밖에 위치할 경우(5.0\%는 상한 위쪽에, 5.0\%는 하한 밑 쪽에) NPC에 의한 모델 진단이 비교적 잘 이루어졌다고 할 수 있을 것이다. (그림 \ref{fig:npc})\index{시뮬레이션 / simulation}\index{simulation / 시뮬레이션} +NPC는 VPC와 유사한 방식으로 모델 진단을 수행하며, 그 논리나 자료는 앞서 기술된 VPC와 차이가 없다. 즉, 모델이 적절한 방법으로 생성되었다면, 그로부터 시뮬레이션된 값들은 관찰된 자료와 큰 차이가 없을 것이다. (\citeproc{ref-vpcnpc}{Harling 2018}) 설정된 예측 구간에 대해 관측값이 예측 구간 경계인 안쪽 혹은 바깥쪽에 얼마나 위치하는지 살필 수 있다. 5\%의 관측값이 95\% 예측 구간 밖에 위치할 경우(2.5\%는 상한 위쪽에, 2.5\%는 하한 밑 쪽에), 혹은 10\%의 관측값이 90\% 예측 구간 밖에 위치할 경우(5.0\%는 상한 위쪽에, 5.0\%는 하한 밑 쪽에) NPC에 의한 모델 진단이 비교적 잘 이루어졌다고 할 수 있을 것이다. (그림 \ref{fig:npc})\index{시뮬레이션 / simulation}\index{simulation / 시뮬레이션} \begin{figure} @@ -4689,16 +4636,14 @@ \subsection{수치적 예측 점검 (numerical predictive check)}\label{uxc218ux -\hypertarget{basic-pkpd}{% -\chapter{약동-약력(PK-PD) 모델링의 이론적 기초}\label{basic-pkpd}} +\chapter{약동-약력(PK-PD) 모델링의 이론적 기초}\label{basic-pkpd} \Large\hfill 임동석 \normalsize -\hypertarget{uxad00uxb828-uxac1cuxb150}{% -\section{관련 개념}\label{uxad00uxb828-uxac1cuxb150}} +\section{관련 개념}\label{uxad00uxb828-uxac1cuxb150} 약효가 용량과 상관관계가 있다는 것은 정확히 말한다면 혈장 약물농도나 농도곡선하면적 등으로 표현되는 약물노출(exposure)과 약효가 상관 있고, 그 약물노출은 또 외부에서 투여한 약의 용량에 의해 결정된다는 것이다. 이는 너무도 당연한 것이라고 볼 수도 있으나, 용량-노출, 노출-약효의 상관관계가 단순한 정비례 관계가 아니라, 인체의 약물제거 능력, 수용체와 약물의 복잡한 상호작용(약력학), 시간이라는 변수 등이 관련되고 또 개인간의 차이까지 관여되므로 이 관계를 잘 파악하고 정량화하는 것은 적절한 효과를 얻기 위해 얼마의 용량을 얼마 간격으로 주어야 하는가를 결정하기 위해 반드시 필요한 과정이다. @@ -4717,11 +4662,9 @@ \section{관련 개념}\label{uxad00uxb828-uxac1cuxb150}} 약에 대한 response란 약을 주고 나서 측정할 수 있는 모든 종류의 값들(혈당치, EFV1.0)을 포괄적으로 의미한다면 effect란 response 값이 약 주기 전의 기저값으로부터 얼마나 변했는지 그 크기를 따지는 것이다. 이에 반해 efficacy는 약으로부터 얻을 수 있는 최대의 effect를 말한다. Potency는 최대효과의 50\%를 나타내게 해 주는 용량이나 농도를 의미하며 이 값이 낮을수록 potency가 높다고 한다. Effectiveness 란 효과가 있다 없다와 같이 이분법으로 구분한 판단이며 정량적인 의미는 없다. -\hypertarget{uxc57duxb825uxd559pd-uxbc0f-uxc57duxb3d9-uxc57duxb825pk-pd-uxb370uxc774uxd130uxc758-uxd2b9uxc131}{% -\section{약력학(PD) 및 약동-약력(PK-PD) 데이터의 특성}\label{uxc57duxb825uxd559pd-uxbc0f-uxc57duxb3d9-uxc57duxb825pk-pd-uxb370uxc774uxd130uxc758-uxd2b9uxc131}} +\section{약력학(PD) 및 약동-약력(PK-PD) 데이터의 특성}\label{uxc57duxb825uxd559pd-uxbc0f-uxc57duxb3d9-uxc57duxb825pk-pd-uxb370uxc774uxd130uxc758-uxd2b9uxc131} -\hypertarget{pd-uxb370uxc774uxd130}{% -\subsection{PD 데이터}\label{pd-uxb370uxc774uxd130}} +\subsection{PD 데이터}\label{pd-uxb370uxc774uxd130} 많은 경우 PD 데이터는 약동학 데이터(혈장약물농도)에 비해 숫자가 적고, 잔차(측정오차 등)가 크고, 측정된 시점도 사람마다 차이가 날 수 있다. 또 혈장약물농도는 측정된 최고 값과 최저 값이 수 백 배 이상 차이 나는 경우가 많지만, 약력학 데이터는 그보다는 변동범위가 훨씬 좁은 편이다. (대게 수 십 배 이하) 따라서 혼합효과 모델링할 때 잔차에 대하여 가법오차(additive error) 모델을 쓰는 편이다.\index{가법오차 / additive error}\index{additive error / 가법오차}\index{잔차 / residual error}\index{residual error / 잔차} @@ -4753,29 +4696,26 @@ \subsection{PD 데이터}\label{pd-uxb370uxc774uxd130}} } -\caption{PD의 시간에 따른 변화의 사례 (Primary Psychiatry \protect\hyperlink{ref-dementia}{2013})}\label{fig:pd-time-course} +\caption{PD의 시간에 따른 변화의 사례 (\citeproc{ref-dementia}{Primary Psychiatry 2013})}\label{fig:pd-time-course} \end{figure} -\emph{왼쪽: 혈압강하제의 약효와 혈압 자체의 일중변동을 모두 반영한 모델 (Lee et al. \protect\hyperlink{ref-lee2013pharmacokinetic}{2013}), 오른쪽: 알츠하이머병의 평생에 걸친 따른 질병악화와 치료제의 기전에 따른 변화. 시간에 따른 질병의 진행을 모델에 반영하여야 약효를 정확히 기술할 수 있다.} +\emph{왼쪽: 혈압강하제의 약효와 혈압 자체의 일중변동을 모두 반영한 모델 (\citeproc{ref-lee2013pharmacokinetic}{Jongtae Lee et al. 2013}), 오른쪽: 알츠하이머병의 평생에 걸친 따른 질병악화와 치료제의 기전에 따른 변화. 시간에 따른 질병의 진행을 모델에 반영하여야 약효를 정확히 기술할 수 있다.} -\hypertarget{pk-pd-uxb370uxc774uxd130}{% -\subsection{PK-PD 데이터}\label{pk-pd-uxb370uxc774uxd130}} +\subsection{PK-PD 데이터}\label{pk-pd-uxb370uxc774uxd130} NONMEM으로 PK-PD 모델링을 수행할 경우, 대개 DV는 혈장약물농도(PK)와 PD 데이터의 두 가지로 나뉜다. 따라서 데이터셋에도 두 종류의 DV를 구분해 넣어주어야 하므로 주로 구획(compartment)의 번호를 달리하는 방법을 쓴다. 물론 구획의 번호는 모델 구조에 따라 적절히 넣어주면 된다. 한 번 채혈한 말초혈액 시료에서 혈장약물농도도 측정하고, 어떤 바이오마커도 측정하여 이를 PK와 PD 데이터로 쓴다면, 측정시간이 동일하겠지만, 많은 경우 PD 데이터들을 얻는 시점은 혈장약물농도를 얻기 위한 채혈과는 다르다. 이는 연구자가 PD 데이터로 간주할 수 있는 데이터의 종류가 혈액검사로서 측정되는 바이오마커 이외에도 매우 다양하고, 이를 측정할 수 있는 적절한 간격이 PK 채혈을 위한 시간간격보다는 훨씬 긴 경우가 많아서이다. 예컨데, 만성적 질병상태를 의사가 종합적으로 평가한 임상적 점수, CT검사로 측정한 종양의 크기 등은 한 달에 한 번 정도 이상 빈번히 측정해야 할 필요가 없기 때문이다.\index{dependent variable(DV) / 종속변수(DV)} 또, 두 데이터의 종류가 다르므로 단위도 다르고 구체적으로 기입되는 수치의 단위도 몇 자리 이상 차이가 나는 경우도 흔하다. 따라서 개인간차, 잔차 등도 PK와 PD 데이터에 대해 제각기 다른 Ω와 Σ값들을 주고 모델링해야 한다.\index{잔차 / residual error}\index{residual error / 잔차} -\hypertarget{pd-uxb370uxc774uxd130uxb97c-uxbaa8uxb378uxb9c1uxd560-uxb54c-uxace0uxb824uxd560-uxc810}{% -\subsection{PD 데이터를 모델링할 때 고려할 점}\label{pd-uxb370uxc774uxd130uxb97c-uxbaa8uxb378uxb9c1uxd560-uxb54c-uxace0uxb824uxd560-uxc810}} +\subsection{PD 데이터를 모델링할 때 고려할 점}\label{pd-uxb370uxc774uxd130uxb97c-uxbaa8uxb378uxb9c1uxd560-uxb54c-uxace0uxb824uxd560-uxc810} 앞에서도 나왔듯이 PD 데이터의 기저치와 개일리듬(circadian rhythm)의 존재여부, 농도와 효과 간의 이미 알려진 작용기전의 존재여부, 시간차(time delay), 설명할 수 있는 모델의 선택 등을 먼저 고려해야 한다. 또한 PK와 PD 모델링을 PK를 먼저, PD는 다음에 하는 식으로 순차적으로 수행할지, 동시에 할지, 순차적으로 한다면 PK 모델의 정보를 어느 선까지 PD 모델링 단계에서 쓸지 등을 고려해야 한다. 데이터셋을 만들 때 PK와 PD 자료를 한꺼번에 넣으려 하면 혼란이 생길 수 있어서 Dosing 데이터셋, PK 데이터셋, PD 데이터셋을 각각 만든 후 병합하는 것을 추천한다. 또 실제 관찰한 시간 이외에도 이후 모델 진단 등을 위해 time after dose(TAD, 여러 번 투약 시 직전 투약시간 이후 경과시간을 표시한 것) 칼럼도 함께 넣어주는 것이 좋다.\index{time after dose / time after dose}\index{time after dose / time after dose} -\hypertarget{pkuxc640-pduxc758-uxad00uxacc4}{% -\section{PK와 PD의 관계}\label{pkuxc640-pduxc758-uxad00uxacc4}} +\section{PK와 PD의 관계}\label{pkuxc640-pduxc758-uxad00uxacc4} 혈장약물농도와 약효(또는 바이오마커)의 관계는 이 책의 다음 장들에서 자세히 나와 있다. 약물농도와 약효의 관계는 시험관내 실험에서 약효가 포화되는 Emax, sigmoid Emax, 또는 비례적인 선형관계 등이 있지만, 이와 같은 관계만으로 생체 내에서의 혈장약물농도와 약효의 관계를 설명하기에 충분치 않다. 이 책의 이어지는 장들에서 자세히 나오겠지만, 많은 약들의 경우 그림 \ref{fig:conc-hysteresis}와 같이 혈장농도의 상승, 하강보다 약효의 상승, 하강이 더 늦게 나타나는 현상이 나타나고 이를 설명하고 예측하기 위한 다양한 모델들 중 가장 적절한 것을 선택하는 것이 PK-PD 모델링의 핵심이다. 이 중에서 많이 쓰이는 것들이 생리학적 모델(또는 turnover 모델)과 약효구획모델(effect compartment 모델)이다. @@ -4789,15 +4729,14 @@ \section{PK와 PD의 관계}\label{pkuxc640-pduxc758-uxad00uxacc4}} } -\caption{혈장약물농도와 약효의 시간적 관계 (Primary Psychiatry \protect\hyperlink{ref-dementia}{2013})}\label{fig:conc-hysteresis} +\caption{혈장약물농도와 약효의 시간적 관계 (\citeproc{ref-dementia}{Primary Psychiatry 2013})}\label{fig:conc-hysteresis} \end{figure} 약효의 변화가 약물농도의 변화보다 늦게 나타날 경우 오른쪽 아래 그림과 같은 반시계방향 히스테레시스 현상이 나타나게 된다. -\hypertarget{pkpd-link}{% -\chapter{PK-PD 연결 방법과 적합법}\label{pkpd-link}} +\chapter{PK-PD 연결 방법과 적합법}\label{pkpd-link} \Large\hfill @@ -4823,21 +4762,19 @@ \chapter{PK-PD 연결 방법과 적합법}\label{pkpd-link}} -\hypertarget{pd-uxb370uxc774uxd130-uxbc0f-pd-uxbaa8uxb378uxc758-uxd2b9uxc9d5}{% -\section{PD 데이터 및 PD 모델의 특징}\label{pd-uxb370uxc774uxd130-uxbc0f-pd-uxbaa8uxb378uxc758-uxd2b9uxc9d5}} +\section{PD 데이터 및 PD 모델의 특징}\label{pd-uxb370uxc774uxd130-uxbc0f-pd-uxbaa8uxb378uxc758-uxd2b9uxc9d5} PK-PD 모델링을 수행하는 경우, 우선적으로 PK 모델이 구축되어 있어야 하며 PD 데이터를 획득하여 PK 모델과 PD 모델을 `동시에' 또는 `순차적으로' 적합 시킬 수 있다. PD 모델링을 위해서 PD 데이터의 특성을 파악하는 것이 중요하며, 모델링 결과를 유용하게 활용하기 위해서는 충분한 효과를 보이는 것으로 알려진 약력학적 기준 (PD threshold 또는 target level)을 선정하는 것이 중요하다. -우선, PD 데이터의 특성을 살펴보자. PD 데이터는 대부분 환자 또는 동물 질환모델에서 얻어진 관측값이며, 질병의 경과와 약물의 작용의 복잡한 과정으로 인해 개인(개체) 간 변이에 대한 원인을 정확히 설명할 수 없는 경우가 많다. 따라서 PD 데이터는 약물의 효과는 PK와의 관계, 반응의 기저치, 일중변동, 질병 진행, 내성 발현 등과 같은 많은 요소들의 영향이 합쳐져서 나타나는 결과이다. (Owen \protect\hyperlink{ref-kelly}{2014}) 이와 같은 영향들을 고려하기 위해 위약군에서의 PD 데이터를 측정하기도 한다. 또한, 환자 간 PD 모델은 본질적으로 PK 모델에 비해 복잡한 특성을 지니며, PD 모델링 시의 고려할 점은 아래와 같다. PD 파라미터의 기저치 값이 존재하는지(또는 위에 언급된 PD 데이터에 영향을 주는 다양한 요인들에 의한 영향을 어떻게 고려할지), 약물농도의 증가에 따라 PD 측정값이 증가(또는 감소)하는지, 약물 농도와 효과 간에 이미 알려진 기전이 있는지, 농도-효과 간의 시간 지연(time delay)이 있는지, 농도-효과 간의 관계를 어떤 모델로 설명할 것인지(예를 들어, Emax 모델 등), PK 및 PD 파라미터 추정을 동시에 진행할 것인지 또는 순차적으로 진행할 것인지(순차적으로 수행할 경우 PK 데이터 및 PK 모델을 얼마만큼 활용할 것인지) 등에 대한 고려가 필요하다. (Ette \protect\hyperlink{ref-ette}{2007}; Gabrielsson \protect\hyperlink{ref-gabrielsson}{2006}) PK 와 PD 모델을 적합하는 다양한 방법에 대해서는 \ref{pkpd-link-method}에서 자세히 다루도록 한다. +우선, PD 데이터의 특성을 살펴보자. PD 데이터는 대부분 환자 또는 동물 질환모델에서 얻어진 관측값이며, 질병의 경과와 약물의 작용의 복잡한 과정으로 인해 개인(개체) 간 변이에 대한 원인을 정확히 설명할 수 없는 경우가 많다. 따라서 PD 데이터는 약물의 효과는 PK와의 관계, 반응의 기저치, 일중변동, 질병 진행, 내성 발현 등과 같은 많은 요소들의 영향이 합쳐져서 나타나는 결과이다. (\citeproc{ref-kelly}{Owen 2014}) 이와 같은 영향들을 고려하기 위해 위약군에서의 PD 데이터를 측정하기도 한다. 또한, 환자 간 PD 모델은 본질적으로 PK 모델에 비해 복잡한 특성을 지니며, PD 모델링 시의 고려할 점은 아래와 같다. PD 파라미터의 기저치 값이 존재하는지(또는 위에 언급된 PD 데이터에 영향을 주는 다양한 요인들에 의한 영향을 어떻게 고려할지), 약물농도의 증가에 따라 PD 측정값이 증가(또는 감소)하는지, 약물 농도와 효과 간에 이미 알려진 기전이 있는지, 농도-효과 간의 시간 지연(time delay)이 있는지, 농도-효과 간의 관계를 어떤 모델로 설명할 것인지(예를 들어, Emax 모델 등), PK 및 PD 파라미터 추정을 동시에 진행할 것인지 또는 순차적으로 진행할 것인지(순차적으로 수행할 경우 PK 데이터 및 PK 모델을 얼마만큼 활용할 것인지) 등에 대한 고려가 필요하다. (\citeproc{ref-ette}{Ette 2007}; \citeproc{ref-gabrielsson}{Gabrielsson 2006}) PK 와 PD 모델을 적합하는 다양한 방법에 대해서는 \ref{pkpd-link-method}에서 자세히 다루도록 한다. -\hypertarget{pk-pd-uxb370uxc774uxd130uxb97c-uxb2e4uxb8f0-uxb54c-uxace0uxb824uxd560-uxc810}{% -\section{PK-PD 데이터를 다룰 때 고려할 점}\label{pk-pd-uxb370uxc774uxd130uxb97c-uxb2e4uxb8f0-uxb54c-uxace0uxb824uxd560-uxc810}} +\section{PK-PD 데이터를 다룰 때 고려할 점}\label{pk-pd-uxb370uxc774uxd130uxb97c-uxb2e4uxb8f0-uxb54c-uxace0uxb824uxd560-uxc810} PK-PD 모델링을 수행하는 과정에서 우리는 PK 와 PD 데이터를 모두 다루게 된다. 이 경우, 주의해야할 점이 몇 가지 있다. 데이터셋에 구획 정보를 포함하여 두 종류의 데이터를 구분하여 주어야 한다. -예를 들어 아래의 clopidogrel PK-PD 모델의 구조를 살펴보면, `Central' 구획에서 관측되는 값은 clopidogrel의 PK 데이터이고, `Effect' 구획에서 관측되는 값은 PD 데이터로, 이 경우 platelet aggregation을 나타낸다(그림 \ref{fig:clopidogrel}). (Lee et al. \protect\hyperlink{ref-lee2012population}{2012}) 구획 번호는 모델의 구조에 맞추어 변경하여 진행한다. +예를 들어 아래의 clopidogrel PK-PD 모델의 구조를 살펴보면, `Central' 구획에서 관측되는 값은 clopidogrel의 PK 데이터이고, `Effect' 구획에서 관측되는 값은 PD 데이터로, 이 경우 platelet aggregation을 나타낸다(그림 \ref{fig:clopidogrel}). (\citeproc{ref-lee2012population}{Joomi Lee et al. 2012}) 구획 번호는 모델의 구조에 맞추어 변경하여 진행한다. 또한 PK 와 PD 가 같은 대상자(또는 같은 질환 모델 개체)에서 얻어진 값인지 파악해야 한다. PK 데이터와 PD 데이터는 다른 시간에서 얻어질 수 있으며, 각각의 관측치의 차이의 폭(scale)이 다를 수 있음을 염두해야 두어야 한다. @@ -4847,19 +4784,18 @@ \section{PK-PD 데이터를 다룰 때 고려할 점}\label{pk-pd-uxb370uxc774ux } -\caption{Clopidogrel의 PK-PD 모델 구조 (Lee et al. \protect\hyperlink{ref-lee2012population}{2012})}\label{fig:clopidogrel} +\caption{Clopidogrel의 PK-PD 모델 구조 (\citeproc{ref-lee2012population}{Joomi Lee et al. 2012})}\label{fig:clopidogrel} \end{figure} -\hypertarget{pkpd-link-method}{% -\section{PK-PD 연결 방법 (적합법)}\label{pkpd-link-method}} +\section{PK-PD 연결 방법 (적합법)}\label{pkpd-link-method} PK-PD 연결 방법(적합법)은 크게 두 가지로 구분될 수 있다. 적합법 선택에 있어 고려하는 요소는 데이터의 특성, 모델링 과정에 소요되는 시간, 최종 파라미터 추정값의 정밀도 등이 있으며, 이 요소들 간의 적절한 균형을 고려하여 적합법을 선택할 수 있다. -첫 번째 방법은 PK-PD 모델의 동시적합법(SIM, simultaneous fitting)으로, 이는 PK 모델과 PD 모델을 동시에 데이터에 적합시켜 PK 파라미터와 PD 파라미터를 동시에 추정하는 방법이다. 다른 방법은 PK 모델을 적합시킨 후, 추정된 PK 파라미터를 PD 모델에 대한 입력값으로 사용하여 PD 파라미터를 추정하는 순차적합법(sequential fitting)이 있다. (Owen \protect\hyperlink{ref-kelly}{2014}; Zhang, Beal, and Sheiner \protect\hyperlink{ref-zhang1}{2003}\protect\hyperlink{ref-zhang1}{a}, \protect\hyperlink{ref-zhang2}{2003}\protect\hyperlink{ref-zhang2}{b}) \index{동시적합법 / simulatneous fitting}\index{순차적합법 / sequential fitting}\index{sequential fitting / 순차적합법}\index{simulatneous fitting / 동시적합법} +첫 번째 방법은 PK-PD 모델의 동시적합법(SIM, simultaneous fitting)으로, 이는 PK 모델과 PD 모델을 동시에 데이터에 적합시켜 PK 파라미터와 PD 파라미터를 동시에 추정하는 방법이다. 다른 방법은 PK 모델을 적합시킨 후, 추정된 PK 파라미터를 PD 모델에 대한 입력값으로 사용하여 PD 파라미터를 추정하는 순차적합법(sequential fitting)이 있다. (\citeproc{ref-kelly}{Owen 2014}; \citeproc{ref-zhang1}{Zhang, Beal, and Sheiner 2003a}, \citeproc{ref-zhang2}{2003b}) \index{동시적합법 / simulatneous fitting}\index{순차적합법 / sequential fitting}\index{sequential fitting / 순차적합법}\index{simulatneous fitting / 동시적합법} -순차적합법은 PD 모델의 추정방법에 따라(어떤 데이터에 비중을 두고 PD 모델링을 진행할지에 따라) 최소 세가지로 나눌 수 있다. 이 세가지 방법은 PPP\&D (Population PK Parameter \& Data), PPP (Population PK Parameter), 그리고 IPP (Individual PK Parameters)로, 이 이름들은 각 방법에 대한 간단한 설명으로 생각할 수 있다. (Zhang, Beal, and Sheiner \protect\hyperlink{ref-zhang1}{2003}\protect\hyperlink{ref-zhang1}{a}, \protect\hyperlink{ref-zhang2}{2003}\protect\hyperlink{ref-zhang2}{b})\index{순차적합법 / sequential fitting}\index{sequential fitting / 순차적합법} +순차적합법은 PD 모델의 추정방법에 따라(어떤 데이터에 비중을 두고 PD 모델링을 진행할지에 따라) 최소 세가지로 나눌 수 있다. 이 세가지 방법은 PPP\&D (Population PK Parameter \& Data), PPP (Population PK Parameter), 그리고 IPP (Individual PK Parameters)로, 이 이름들은 각 방법에 대한 간단한 설명으로 생각할 수 있다. (\citeproc{ref-zhang1}{Zhang, Beal, and Sheiner 2003a}, \citeproc{ref-zhang2}{2003b})\index{순차적합법 / sequential fitting}\index{sequential fitting / 순차적합법} 우선, 순차적합법 중 첫번째 방법인 PPP\&D는 PK 파라미터 집단 대표값을 고정하고, PK 데이터와 PD 데이터를 모두 데이터셋에 포함하여 개인의 PK 파라미터 및 PD 파라미터를 추정하는 방법이다.\index{순차적합법 / sequential fitting}\index{sequential fitting / 순차적합법} @@ -4904,13 +4840,11 @@ \section{PK-PD 연결 방법 (적합법)}\label{pkpd-link-method}} -\hypertarget{direct-pkpd}{% -\section{직접효과 PK-PD 모델의 예(Examples of direct effect PK-PD model)}\label{direct-pkpd}} +\section{직접효과 PK-PD 모델의 예(Examples of direct effect PK-PD model)}\label{direct-pkpd} \index{직접 효과 모델 / direct-effect model}\index{direct-effect model / 직접 효과 모델} -\hypertarget{uxb3d9uxc2dcuxc801uxd569uxbc95sim-simultaneous-fitting}{% -\subsection{동시적합법(SIM, Simultaneous fitting)}\label{uxb3d9uxc2dcuxc801uxd569uxbc95sim-simultaneous-fitting}} +\subsection{동시적합법(SIM, Simultaneous fitting)}\label{uxb3d9uxc2dcuxc801uxd569uxbc95sim-simultaneous-fitting} \index{동시적합법 / simulatneous fitting}\index{simulatneous fitting / 동시적합법} @@ -4934,42 +4868,43 @@ \subsection{동시적합법(SIM, Simultaneous fitting)}\label{uxb3d9uxc2dcuxc801 \begin{example} -\protect\hypertarget{exm:SIM-control}{}{\label{exm:SIM-control} }SIM 방법의 제어구문의 예 +\protect\hypertarget{exm:SIM-control}{}\label{exm:SIM-control}SIM 방법의 제어구문의 예 \end{example} + \vspace{-5ex} \begin{Shaded} \begin{Highlighting}[] -\OperatorTok{$}\NormalTok{PK } -\NormalTok{CL =}\StringTok{ }\KeywordTok{THETA}\NormalTok{(}\DecValTok{1}\NormalTok{) }\OperatorTok{*}\StringTok{ }\KeywordTok{EXP}\NormalTok{(}\KeywordTok{ETA}\NormalTok{(}\DecValTok{1}\NormalTok{)) } -\NormalTok{V1 =}\StringTok{ }\KeywordTok{THETA}\NormalTok{(}\DecValTok{2}\NormalTok{) }\OperatorTok{*}\StringTok{ }\KeywordTok{EXP}\NormalTok{(}\KeywordTok{ETA}\NormalTok{(}\DecValTok{2}\NormalTok{)) } -\NormalTok{K =}\StringTok{ }\NormalTok{CL }\OperatorTok{/}\StringTok{ }\NormalTok{V1 } -\NormalTok{EMAX =}\StringTok{ }\KeywordTok{THETA}\NormalTok{(}\DecValTok{3}\NormalTok{) }\OperatorTok{*}\StringTok{ }\KeywordTok{EXP}\NormalTok{(}\KeywordTok{ETA}\NormalTok{(}\DecValTok{3}\NormalTok{)) } -\NormalTok{EC50 =}\StringTok{ }\KeywordTok{THETA}\NormalTok{(}\DecValTok{4}\NormalTok{) }\OperatorTok{*}\StringTok{ }\KeywordTok{EXP}\NormalTok{(}\KeywordTok{ETA}\NormalTok{(}\DecValTok{4}\NormalTok{))} - -\OperatorTok{$}\NormalTok{DES } -\NormalTok{CP =}\StringTok{ }\KeywordTok{A}\NormalTok{(}\DecValTok{1}\NormalTok{) }\OperatorTok{/}\StringTok{ }\NormalTok{V1 } -\KeywordTok{DADT}\NormalTok{(}\DecValTok{1}\NormalTok{) =}\StringTok{ }\OperatorTok{{-}}\NormalTok{K }\OperatorTok{*}\StringTok{ }\KeywordTok{A}\NormalTok{(}\DecValTok{1}\NormalTok{)} - -\OperatorTok{$}\NormalTok{ERROR } -\NormalTok{Y1 =}\StringTok{ }\NormalTok{CP } -\NormalTok{Y2 =}\StringTok{ }\NormalTok{EMAX}\OperatorTok{*}\NormalTok{CP }\OperatorTok{/}\StringTok{ }\NormalTok{(EC50}\OperatorTok{+}\NormalTok{CP) } -\KeywordTok{IF}\NormalTok{ (CMT.LE}\FloatTok{.1}\NormalTok{) Y =}\StringTok{ }\NormalTok{Y1 }\OperatorTok{+}\StringTok{ }\KeywordTok{ERR}\NormalTok{(}\DecValTok{1}\NormalTok{) } -\KeywordTok{IF}\NormalTok{ (CMT.EQ}\FloatTok{.2}\NormalTok{) Y =}\StringTok{ }\NormalTok{Y2 }\OperatorTok{+}\StringTok{ }\KeywordTok{ERR}\NormalTok{(}\DecValTok{2}\NormalTok{)} - -\OperatorTok{$}\NormalTok{THETA } +\SpecialCharTok{$}\NormalTok{PK } +\NormalTok{CL }\OtherTok{=} \FunctionTok{THETA}\NormalTok{(}\DecValTok{1}\NormalTok{) }\SpecialCharTok{*} \FunctionTok{EXP}\NormalTok{(}\FunctionTok{ETA}\NormalTok{(}\DecValTok{1}\NormalTok{)) } +\NormalTok{V1 }\OtherTok{=} \FunctionTok{THETA}\NormalTok{(}\DecValTok{2}\NormalTok{) }\SpecialCharTok{*} \FunctionTok{EXP}\NormalTok{(}\FunctionTok{ETA}\NormalTok{(}\DecValTok{2}\NormalTok{)) } +\NormalTok{K }\OtherTok{=}\NormalTok{ CL }\SpecialCharTok{/}\NormalTok{ V1 } +\NormalTok{EMAX }\OtherTok{=} \FunctionTok{THETA}\NormalTok{(}\DecValTok{3}\NormalTok{) }\SpecialCharTok{*} \FunctionTok{EXP}\NormalTok{(}\FunctionTok{ETA}\NormalTok{(}\DecValTok{3}\NormalTok{)) } +\NormalTok{EC50 }\OtherTok{=} \FunctionTok{THETA}\NormalTok{(}\DecValTok{4}\NormalTok{) }\SpecialCharTok{*} \FunctionTok{EXP}\NormalTok{(}\FunctionTok{ETA}\NormalTok{(}\DecValTok{4}\NormalTok{))} + +\SpecialCharTok{$}\NormalTok{DES } +\NormalTok{CP }\OtherTok{=} \FunctionTok{A}\NormalTok{(}\DecValTok{1}\NormalTok{) }\SpecialCharTok{/}\NormalTok{ V1 } +\FunctionTok{DADT}\NormalTok{(}\DecValTok{1}\NormalTok{) }\OtherTok{=} \SpecialCharTok{{-}}\NormalTok{K }\SpecialCharTok{*} \FunctionTok{A}\NormalTok{(}\DecValTok{1}\NormalTok{)} + +\SpecialCharTok{$}\NormalTok{ERROR } +\NormalTok{Y1 }\OtherTok{=}\NormalTok{ CP } +\NormalTok{Y2 }\OtherTok{=}\NormalTok{ EMAX}\SpecialCharTok{*}\NormalTok{CP }\SpecialCharTok{/}\NormalTok{ (EC50}\SpecialCharTok{+}\NormalTok{CP) } +\FunctionTok{IF}\NormalTok{ (CMT.LE}\FloatTok{.1}\NormalTok{) Y }\OtherTok{=}\NormalTok{ Y1 }\SpecialCharTok{+} \FunctionTok{ERR}\NormalTok{(}\DecValTok{1}\NormalTok{) } +\FunctionTok{IF}\NormalTok{ (CMT.EQ}\FloatTok{.2}\NormalTok{) Y }\OtherTok{=}\NormalTok{ Y2 }\SpecialCharTok{+} \FunctionTok{ERR}\NormalTok{(}\DecValTok{2}\NormalTok{)} + +\SpecialCharTok{$}\NormalTok{THETA } \NormalTok{(}\DecValTok{0}\NormalTok{, }\DecValTok{1}\NormalTok{) } \NormalTok{(}\DecValTok{0}\NormalTok{, }\DecValTok{10}\NormalTok{) } \NormalTok{(}\DecValTok{0}\NormalTok{, }\DecValTok{15}\NormalTok{) } \NormalTok{(}\DecValTok{0}\NormalTok{, }\DecValTok{20}\NormalTok{)} -\OperatorTok{$}\NormalTok{OMEGA } +\SpecialCharTok{$}\NormalTok{OMEGA } \FloatTok{0.1} \FloatTok{0.15} \FloatTok{0.2} \FloatTok{0.25} -\OperatorTok{$}\NormalTok{SIGMA } +\SpecialCharTok{$}\NormalTok{SIGMA } \FloatTok{0.025} \FloatTok{0.04} \end{Highlighting} @@ -4979,13 +4914,13 @@ \subsection{동시적합법(SIM, Simultaneous fitting)}\label{uxb3d9uxc2dcuxc801 \begin{Shaded} \begin{Highlighting}[] -\OperatorTok{$}\NormalTok{PROB }\DecValTok{1}\NormalTok{ comp IV Emax model } -\OperatorTok{$}\NormalTok{INPUT ID TIME AMT DV MDV CMT } -\OperatorTok{$}\NormalTok{DATA DATAFILENAME.csv IGNORE=}\ErrorTok{@}\StringTok{ } -\ErrorTok{$}\NormalTok{SUBROUTIN ADVAN6 TOL=}\DecValTok{3} -\OperatorTok{$}\NormalTok{MODEL } -\KeywordTok{COMP}\NormalTok{ (CENT, DEFDOSE, DEFOBS) } -\KeywordTok{COMP}\NormalTok{ (PD)} +\SpecialCharTok{$}\NormalTok{PROB }\DecValTok{1}\NormalTok{ comp IV Emax model } +\SpecialCharTok{$}\NormalTok{INPUT ID TIME AMT DV MDV CMT } +\SpecialCharTok{$}\NormalTok{DATA DATAFILENAME.csv IGNORE}\OtherTok{=}\ErrorTok{@} +\ErrorTok{$}\NormalTok{SUBROUTIN ADVAN6 TOL}\OtherTok{=}\DecValTok{3} +\SpecialCharTok{$}\NormalTok{MODEL } +\FunctionTok{COMP}\NormalTok{ (CENT, DEFDOSE, DEFOBS) } +\FunctionTok{COMP}\NormalTok{ (PD)} \end{Highlighting} \end{Shaded} @@ -4993,30 +4928,28 @@ \subsection{동시적합법(SIM, Simultaneous fitting)}\label{uxb3d9uxc2dcuxc801 \begin{Shaded} \begin{Highlighting}[] -\OperatorTok{$}\NormalTok{ERROR } -\KeywordTok{IF}\NormalTok{ (CMT.EQ}\FloatTok{.1}\NormalTok{) THEN } -\NormalTok{ IPRED =}\StringTok{ }\NormalTok{CP } -\NormalTok{ W =}\StringTok{ }\KeywordTok{SQRT}\NormalTok{(}\KeywordTok{THETA}\NormalTok{(}\DecValTok{10}\NormalTok{)}\OperatorTok{**}\DecValTok{2} \OperatorTok{+}\StringTok{ }\KeywordTok{THETA}\NormalTok{(}\DecValTok{11}\NormalTok{)}\OperatorTok{**}\DecValTok{2} \OperatorTok{*}\StringTok{ }\NormalTok{IPRED}\OperatorTok{**}\DecValTok{2}\NormalTok{) } -\NormalTok{ IRES =}\StringTok{ }\NormalTok{DV }\OperatorTok{{-}}\StringTok{ }\NormalTok{IPRED } -\NormalTok{ IWRES =}\StringTok{ }\NormalTok{IRES }\OperatorTok{/}\StringTok{ }\NormalTok{W } -\NormalTok{ Y =}\StringTok{ }\NormalTok{IPRED }\OperatorTok{+}\StringTok{ }\NormalTok{W }\OperatorTok{*}\StringTok{ }\KeywordTok{EPS}\NormalTok{(}\DecValTok{1}\NormalTok{) } -\KeywordTok{IF}\NormalTok{ (CMT.EQ}\FloatTok{.2}\NormalTok{) THEN } -\NormalTok{ IPRED =}\StringTok{ }\NormalTok{EMAX}\OperatorTok{*}\NormalTok{CP}\OperatorTok{/}\NormalTok{(EC50}\OperatorTok{+}\NormalTok{CP) } -\NormalTok{ W =}\StringTok{ }\KeywordTok{THETA}\NormalTok{(}\DecValTok{12}\NormalTok{) } -\NormalTok{ IRES =}\StringTok{ }\NormalTok{DV }\OperatorTok{{-}}\StringTok{ }\NormalTok{IPRED } -\NormalTok{ IWRES =}\StringTok{ }\NormalTok{IRES }\OperatorTok{/}\StringTok{ }\NormalTok{W } -\NormalTok{ Y =}\StringTok{ }\NormalTok{IPRED }\OperatorTok{+}\StringTok{ }\NormalTok{W }\OperatorTok{*}\StringTok{ }\KeywordTok{EPS}\NormalTok{(}\DecValTok{2}\NormalTok{) } +\SpecialCharTok{$}\NormalTok{ERROR } +\FunctionTok{IF}\NormalTok{ (CMT.EQ}\FloatTok{.1}\NormalTok{) THEN } +\NormalTok{ IPRED }\OtherTok{=}\NormalTok{ CP } +\NormalTok{ W }\OtherTok{=} \FunctionTok{SQRT}\NormalTok{(}\FunctionTok{THETA}\NormalTok{(}\DecValTok{10}\NormalTok{)}\SpecialCharTok{**}\DecValTok{2} \SpecialCharTok{+} \FunctionTok{THETA}\NormalTok{(}\DecValTok{11}\NormalTok{)}\SpecialCharTok{**}\DecValTok{2} \SpecialCharTok{*}\NormalTok{ IPRED}\SpecialCharTok{**}\DecValTok{2}\NormalTok{) } +\NormalTok{ IRES }\OtherTok{=}\NormalTok{ DV }\SpecialCharTok{{-}}\NormalTok{ IPRED } +\NormalTok{ IWRES }\OtherTok{=}\NormalTok{ IRES }\SpecialCharTok{/}\NormalTok{ W } +\NormalTok{ Y }\OtherTok{=}\NormalTok{ IPRED }\SpecialCharTok{+}\NormalTok{ W }\SpecialCharTok{*} \FunctionTok{EPS}\NormalTok{(}\DecValTok{1}\NormalTok{) } +\FunctionTok{IF}\NormalTok{ (CMT.EQ}\FloatTok{.2}\NormalTok{) THEN } +\NormalTok{ IPRED }\OtherTok{=}\NormalTok{ EMAX}\SpecialCharTok{*}\NormalTok{CP}\SpecialCharTok{/}\NormalTok{(EC50}\SpecialCharTok{+}\NormalTok{CP) } +\NormalTok{ W }\OtherTok{=} \FunctionTok{THETA}\NormalTok{(}\DecValTok{12}\NormalTok{) } +\NormalTok{ IRES }\OtherTok{=}\NormalTok{ DV }\SpecialCharTok{{-}}\NormalTok{ IPRED } +\NormalTok{ IWRES }\OtherTok{=}\NormalTok{ IRES }\SpecialCharTok{/}\NormalTok{ W } +\NormalTok{ Y }\OtherTok{=}\NormalTok{ IPRED }\SpecialCharTok{+}\NormalTok{ W }\SpecialCharTok{*} \FunctionTok{EPS}\NormalTok{(}\DecValTok{2}\NormalTok{) } \NormalTok{ENDIF} \end{Highlighting} \end{Shaded} -\hypertarget{uxc21cuxcc28uxc801uxd569uxbc95-sequential-fitting}{% -\subsection{순차적합법 (Sequential fitting)}\label{uxc21cuxcc28uxc801uxd569uxbc95-sequential-fitting}} +\subsection{순차적합법 (Sequential fitting)}\label{uxc21cuxcc28uxc801uxd569uxbc95-sequential-fitting} \index{순차적합법 / sequential fitting}\index{sequential fitting / 순차적합법} -\hypertarget{pppd-population-pk-parameters-data}{% -\subsubsection{PPP\&D (Population PK Parameters \& Data)}\label{pppd-population-pk-parameters-data}} +\subsubsection{PPP\&D (Population PK Parameters \& Data)}\label{pppd-population-pk-parameters-data} PPP\&D는 SIM 방법과 마찬가지로 PK 데이터 및 PD 데이터가 모두 포함된다. 따라서, SIM에서 사용한 데이터셋의 구조와 동일하다(그림 \ref{fig:pppd}). PPP\&D에서는 PK 모델을 통해 얻어진 집단 PK 파라미터 추정치를 고정하여 진행하며, 이는 \$THETA, \$OMEGA, \$SIGMA 블록 내의 θ1\textsubscript{CL}, θ\textsubscript{V1}, ω\textsubscript{CL2}, ω\textsubscript{V12}그리고 σ\textsubscript{12}에 해당한다(코드 \ref{exm:pppd-code}).\index{\$OMEGA}\index{\$SIGMA}\index{\$THETA} @@ -5032,49 +4965,49 @@ \subsubsection{PPP\&D (Population PK Parameters \& Data)}\label{pppd-population- \begin{example} -\protect\hypertarget{exm:pppd-code}{}{\label{exm:pppd-code} }PPP\&D 방법의 제어구문의 예 +\protect\hypertarget{exm:pppd-code}{}\label{exm:pppd-code}PPP\&D 방법의 제어구문의 예 \end{example} + \vspace{-5ex} \begin{Shaded} \begin{Highlighting}[] -\OperatorTok{$}\NormalTok{PK } -\NormalTok{CL =}\StringTok{ }\KeywordTok{THETA}\NormalTok{(}\DecValTok{1}\NormalTok{) }\OperatorTok{*}\StringTok{ }\KeywordTok{EXP}\NormalTok{(}\KeywordTok{ETA}\NormalTok{(}\DecValTok{1}\NormalTok{)) } -\NormalTok{V1 =}\StringTok{ }\KeywordTok{THETA}\NormalTok{(}\DecValTok{2}\NormalTok{) }\OperatorTok{*}\StringTok{ }\KeywordTok{EXP}\NormalTok{(}\KeywordTok{ETA}\NormalTok{(}\DecValTok{2}\NormalTok{)) } -\NormalTok{K =}\StringTok{ }\NormalTok{CL }\OperatorTok{/}\StringTok{ }\NormalTok{V1 } -\NormalTok{EMAX =}\StringTok{ }\KeywordTok{THETA}\NormalTok{(}\DecValTok{3}\NormalTok{) }\OperatorTok{*}\StringTok{ }\KeywordTok{EXP}\NormalTok{(}\KeywordTok{ETA}\NormalTok{(}\DecValTok{3}\NormalTok{)) } -\NormalTok{EC50 =}\StringTok{ }\KeywordTok{THETA}\NormalTok{(}\DecValTok{4}\NormalTok{) }\OperatorTok{*}\StringTok{ }\KeywordTok{EXP}\NormalTok{(}\KeywordTok{ETA}\NormalTok{(}\DecValTok{4}\NormalTok{))} - -\OperatorTok{$}\NormalTok{DES } -\NormalTok{CP =}\StringTok{ }\KeywordTok{A}\NormalTok{(}\DecValTok{1}\NormalTok{) }\OperatorTok{/}\StringTok{ }\NormalTok{V1 } -\KeywordTok{DADT}\NormalTok{(}\DecValTok{1}\NormalTok{) =}\StringTok{ }\OperatorTok{{-}}\NormalTok{K }\OperatorTok{*}\StringTok{ }\KeywordTok{A}\NormalTok{(}\DecValTok{1}\NormalTok{)} - -\OperatorTok{$}\NormalTok{ERROR } -\NormalTok{Y1 =}\StringTok{ }\NormalTok{CP } -\NormalTok{Y2 =}\StringTok{ }\NormalTok{EMAX}\OperatorTok{*}\NormalTok{CP }\OperatorTok{/}\StringTok{ }\NormalTok{(EC50}\OperatorTok{+}\NormalTok{CP) } -\KeywordTok{IF}\NormalTok{ (CMT.LE}\FloatTok{.1}\NormalTok{) Y =}\StringTok{ }\NormalTok{Y1 }\OperatorTok{+}\StringTok{ }\KeywordTok{ERR}\NormalTok{(}\DecValTok{1}\NormalTok{) } -\KeywordTok{IF}\NormalTok{ (CMT.EQ}\FloatTok{.2}\NormalTok{) Y =}\StringTok{ }\NormalTok{Y2 }\OperatorTok{+}\StringTok{ }\KeywordTok{ERR}\NormalTok{(}\DecValTok{2}\NormalTok{)} - -\OperatorTok{$}\NormalTok{THETA } +\SpecialCharTok{$}\NormalTok{PK } +\NormalTok{CL }\OtherTok{=} \FunctionTok{THETA}\NormalTok{(}\DecValTok{1}\NormalTok{) }\SpecialCharTok{*} \FunctionTok{EXP}\NormalTok{(}\FunctionTok{ETA}\NormalTok{(}\DecValTok{1}\NormalTok{)) } +\NormalTok{V1 }\OtherTok{=} \FunctionTok{THETA}\NormalTok{(}\DecValTok{2}\NormalTok{) }\SpecialCharTok{*} \FunctionTok{EXP}\NormalTok{(}\FunctionTok{ETA}\NormalTok{(}\DecValTok{2}\NormalTok{)) } +\NormalTok{K }\OtherTok{=}\NormalTok{ CL }\SpecialCharTok{/}\NormalTok{ V1 } +\NormalTok{EMAX }\OtherTok{=} \FunctionTok{THETA}\NormalTok{(}\DecValTok{3}\NormalTok{) }\SpecialCharTok{*} \FunctionTok{EXP}\NormalTok{(}\FunctionTok{ETA}\NormalTok{(}\DecValTok{3}\NormalTok{)) } +\NormalTok{EC50 }\OtherTok{=} \FunctionTok{THETA}\NormalTok{(}\DecValTok{4}\NormalTok{) }\SpecialCharTok{*} \FunctionTok{EXP}\NormalTok{(}\FunctionTok{ETA}\NormalTok{(}\DecValTok{4}\NormalTok{))} + +\SpecialCharTok{$}\NormalTok{DES } +\NormalTok{CP }\OtherTok{=} \FunctionTok{A}\NormalTok{(}\DecValTok{1}\NormalTok{) }\SpecialCharTok{/}\NormalTok{ V1 } +\FunctionTok{DADT}\NormalTok{(}\DecValTok{1}\NormalTok{) }\OtherTok{=} \SpecialCharTok{{-}}\NormalTok{K }\SpecialCharTok{*} \FunctionTok{A}\NormalTok{(}\DecValTok{1}\NormalTok{)} + +\SpecialCharTok{$}\NormalTok{ERROR } +\NormalTok{Y1 }\OtherTok{=}\NormalTok{ CP } +\NormalTok{Y2 }\OtherTok{=}\NormalTok{ EMAX}\SpecialCharTok{*}\NormalTok{CP }\SpecialCharTok{/}\NormalTok{ (EC50}\SpecialCharTok{+}\NormalTok{CP) } +\FunctionTok{IF}\NormalTok{ (CMT.LE}\FloatTok{.1}\NormalTok{) Y }\OtherTok{=}\NormalTok{ Y1 }\SpecialCharTok{+} \FunctionTok{ERR}\NormalTok{(}\DecValTok{1}\NormalTok{) } +\FunctionTok{IF}\NormalTok{ (CMT.EQ}\FloatTok{.2}\NormalTok{) Y }\OtherTok{=}\NormalTok{ Y2 }\SpecialCharTok{+} \FunctionTok{ERR}\NormalTok{(}\DecValTok{2}\NormalTok{)} + +\SpecialCharTok{$}\NormalTok{THETA } \DecValTok{1}\NormalTok{ FIX} \DecValTok{10}\NormalTok{ FIX} \NormalTok{(}\DecValTok{0}\NormalTok{, }\DecValTok{15}\NormalTok{) } \NormalTok{(}\DecValTok{0}\NormalTok{, }\DecValTok{20}\NormalTok{)} -\OperatorTok{$}\NormalTok{OMEGA } +\SpecialCharTok{$}\NormalTok{OMEGA } \FloatTok{0.1}\NormalTok{ FIX } \FloatTok{0.15}\NormalTok{ FIX} \FloatTok{0.2} \FloatTok{0.25} -\OperatorTok{$}\NormalTok{SIGMA } +\SpecialCharTok{$}\NormalTok{SIGMA } \FloatTok{0.025}\NormalTok{ FIX} \FloatTok{0.04} \end{Highlighting} \end{Shaded} -\hypertarget{ppp-population-pk-parameters}{% -\subsubsection{PPP (Population PK Parameters)}\label{ppp-population-pk-parameters}} +\subsubsection{PPP (Population PK Parameters)}\label{ppp-population-pk-parameters} PPP로 PK-PD 모델링 수행 시 PPP\&D 와 마찬가지로 PK 모델을 통해 얻어진 집단 PK 파라미터 추정치를 고정하여 진행한다. 이는 \$THETA, \$OMEGA 블록 내의 θ1\textsubscript{CL}, θ\textsubscript{V1}, ω\textsubscript{CL2}, ω\textsubscript{V12}에 해당한다.\index{\$OMEGA}\index{\$THETA} @@ -5092,46 +5025,46 @@ \subsubsection{PPP (Population PK Parameters)}\label{ppp-population-pk-parameter \begin{example} -\protect\hypertarget{exm:control-ppp}{}{\label{exm:control-ppp} }Example of control file for PPP +\protect\hypertarget{exm:control-ppp}{}\label{exm:control-ppp}Example of control file for PPP \end{example} + \vspace{-5ex} \begin{Shaded} \begin{Highlighting}[] -\OperatorTok{$}\NormalTok{PK } -\NormalTok{CL =}\StringTok{ }\KeywordTok{THETA}\NormalTok{(}\DecValTok{1}\NormalTok{) }\OperatorTok{*}\StringTok{ }\KeywordTok{EXP}\NormalTok{(}\KeywordTok{ETA}\NormalTok{(}\DecValTok{1}\NormalTok{)) } -\NormalTok{V1 =}\StringTok{ }\KeywordTok{THETA}\NormalTok{(}\DecValTok{2}\NormalTok{) }\OperatorTok{*}\StringTok{ }\KeywordTok{EXP}\NormalTok{(}\KeywordTok{ETA}\NormalTok{(}\DecValTok{2}\NormalTok{)) } -\NormalTok{K =}\StringTok{ }\NormalTok{CL }\OperatorTok{/}\StringTok{ }\NormalTok{V1 } -\NormalTok{EMAX =}\StringTok{ }\KeywordTok{THETA}\NormalTok{(}\DecValTok{3}\NormalTok{) }\OperatorTok{*}\StringTok{ }\KeywordTok{EXP}\NormalTok{(}\KeywordTok{ETA}\NormalTok{(}\DecValTok{3}\NormalTok{)) } -\NormalTok{EC50 =}\StringTok{ }\KeywordTok{THETA}\NormalTok{(}\DecValTok{4}\NormalTok{) }\OperatorTok{*}\StringTok{ }\KeywordTok{EXP}\NormalTok{(}\KeywordTok{ETA}\NormalTok{(}\DecValTok{4}\NormalTok{))} - -\OperatorTok{$}\NormalTok{DES } -\NormalTok{CP =}\StringTok{ }\KeywordTok{A}\NormalTok{(}\DecValTok{1}\NormalTok{) }\OperatorTok{/}\StringTok{ }\NormalTok{V1 } -\KeywordTok{DADT}\NormalTok{(}\DecValTok{1}\NormalTok{) =}\StringTok{ }\OperatorTok{{-}}\NormalTok{K }\OperatorTok{*}\StringTok{ }\KeywordTok{A}\NormalTok{(}\DecValTok{1}\NormalTok{)} - -\OperatorTok{$}\NormalTok{ERROR } -\NormalTok{EFF =}\StringTok{ }\NormalTok{EMAX}\OperatorTok{*}\NormalTok{CP }\OperatorTok{/}\StringTok{ }\NormalTok{(EC50}\OperatorTok{+}\NormalTok{CP) } -\NormalTok{Y =}\StringTok{ }\NormalTok{EFF }\OperatorTok{+}\StringTok{ }\KeywordTok{ERR}\NormalTok{(}\DecValTok{1}\NormalTok{)} - -\OperatorTok{$}\NormalTok{THETA } +\SpecialCharTok{$}\NormalTok{PK } +\NormalTok{CL }\OtherTok{=} \FunctionTok{THETA}\NormalTok{(}\DecValTok{1}\NormalTok{) }\SpecialCharTok{*} \FunctionTok{EXP}\NormalTok{(}\FunctionTok{ETA}\NormalTok{(}\DecValTok{1}\NormalTok{)) } +\NormalTok{V1 }\OtherTok{=} \FunctionTok{THETA}\NormalTok{(}\DecValTok{2}\NormalTok{) }\SpecialCharTok{*} \FunctionTok{EXP}\NormalTok{(}\FunctionTok{ETA}\NormalTok{(}\DecValTok{2}\NormalTok{)) } +\NormalTok{K }\OtherTok{=}\NormalTok{ CL }\SpecialCharTok{/}\NormalTok{ V1 } +\NormalTok{EMAX }\OtherTok{=} \FunctionTok{THETA}\NormalTok{(}\DecValTok{3}\NormalTok{) }\SpecialCharTok{*} \FunctionTok{EXP}\NormalTok{(}\FunctionTok{ETA}\NormalTok{(}\DecValTok{3}\NormalTok{)) } +\NormalTok{EC50 }\OtherTok{=} \FunctionTok{THETA}\NormalTok{(}\DecValTok{4}\NormalTok{) }\SpecialCharTok{*} \FunctionTok{EXP}\NormalTok{(}\FunctionTok{ETA}\NormalTok{(}\DecValTok{4}\NormalTok{))} + +\SpecialCharTok{$}\NormalTok{DES } +\NormalTok{CP }\OtherTok{=} \FunctionTok{A}\NormalTok{(}\DecValTok{1}\NormalTok{) }\SpecialCharTok{/}\NormalTok{ V1 } +\FunctionTok{DADT}\NormalTok{(}\DecValTok{1}\NormalTok{) }\OtherTok{=} \SpecialCharTok{{-}}\NormalTok{K }\SpecialCharTok{*} \FunctionTok{A}\NormalTok{(}\DecValTok{1}\NormalTok{)} + +\SpecialCharTok{$}\NormalTok{ERROR } +\NormalTok{EFF }\OtherTok{=}\NormalTok{ EMAX}\SpecialCharTok{*}\NormalTok{CP }\SpecialCharTok{/}\NormalTok{ (EC50}\SpecialCharTok{+}\NormalTok{CP) } +\NormalTok{Y }\OtherTok{=}\NormalTok{ EFF }\SpecialCharTok{+} \FunctionTok{ERR}\NormalTok{(}\DecValTok{1}\NormalTok{)} + +\SpecialCharTok{$}\NormalTok{THETA } \DecValTok{1}\NormalTok{ FIX } \DecValTok{10}\NormalTok{ FIX } \NormalTok{(}\DecValTok{0}\NormalTok{, }\DecValTok{15}\NormalTok{) } \NormalTok{(}\DecValTok{0}\NormalTok{, }\DecValTok{20}\NormalTok{)} -\OperatorTok{$}\NormalTok{OMEGA } +\SpecialCharTok{$}\NormalTok{OMEGA } \FloatTok{0.1}\NormalTok{ FIX } \FloatTok{0.15}\NormalTok{ FIX } \FloatTok{0.2} \FloatTok{0.25} -\OperatorTok{$}\NormalTok{SIGMA } +\SpecialCharTok{$}\NormalTok{SIGMA } \FloatTok{0.04} \end{Highlighting} \end{Shaded} -\hypertarget{ipp-individual-pk-parameters}{% -\subsection{IPP (Individual PK Parameters)}\label{ipp-individual-pk-parameters}} +\subsection{IPP (Individual PK Parameters)}\label{ipp-individual-pk-parameters} 순차적합법 중 마지막으로 소개할 방법은 IPP이며 이는 개인 PK 파라미터 추정치를 데이터셋 상에서 고정하여 PD 모델에 대한\index{순차적합법 / sequential fitting}\index{sequential fitting / 순차적합법} 입력값으로 사용하여 PD파라미터를 추정한다. IPP에서 사용하는 데이터셋은 PPP 데이터셋 구조와 기본적으로 동일하며 PD 데이터를 포함한다. 데이터셋에서 추가되는 부분은 PK 모델링을 통해 얻은 개인의 파라미터 추정치로 이 경우 각 해당 대상자의 CL, V1 값에 해당된다. 개인의 CL, V1과 같은 posthoc 파라미터 값은 PK 모델링 수행 시 제어구문 파일의 \$TABLE 블록 내에 IPRED를 기재하여 생성된 표에서 IPRED 결과를 얻을 수 있다.\index{\$TABLE}\index{IPRED}\index{PRED} @@ -5149,45 +5082,44 @@ \subsection{IPP (Individual PK Parameters)}\label{ipp-individual-pk-parameters}} \begin{example} -\protect\hypertarget{exm:IPP-example}{}{\label{exm:IPP-example} }IPP 방법의 제어구문의 예 +\protect\hypertarget{exm:IPP-example}{}\label{exm:IPP-example}IPP 방법의 제어구문의 예 \end{example} + \vspace{-5ex} \begin{Shaded} \begin{Highlighting}[] -\OperatorTok{$}\NormalTok{PK} -\NormalTok{ CL =}\StringTok{ }\NormalTok{ICL} -\NormalTok{ V1 =}\StringTok{ }\NormalTok{IV} -\NormalTok{ K =}\StringTok{ }\NormalTok{CL }\OperatorTok{/}\StringTok{ }\NormalTok{V1} -\NormalTok{ EMAX =}\StringTok{ }\KeywordTok{THETA}\NormalTok{(}\DecValTok{3}\NormalTok{) }\OperatorTok{*}\StringTok{ }\KeywordTok{EXP}\NormalTok{(}\KeywordTok{ETA}\NormalTok{(}\DecValTok{3}\NormalTok{))} -\NormalTok{ EC50 =}\StringTok{ }\KeywordTok{THETA}\NormalTok{(}\DecValTok{4}\NormalTok{) }\OperatorTok{*}\StringTok{ }\KeywordTok{EXP}\NormalTok{(}\KeywordTok{ETA}\NormalTok{(}\DecValTok{4}\NormalTok{))} - -\OperatorTok{$}\NormalTok{DES} -\NormalTok{ CP =}\StringTok{ }\KeywordTok{A}\NormalTok{(}\DecValTok{1}\NormalTok{) }\OperatorTok{/}\StringTok{ }\NormalTok{V1} - \KeywordTok{DADT}\NormalTok{(}\DecValTok{1}\NormalTok{) =}\StringTok{ }\OperatorTok{{-}}\NormalTok{K }\OperatorTok{*}\StringTok{ }\KeywordTok{A}\NormalTok{(}\DecValTok{1}\NormalTok{)} - -\OperatorTok{$}\NormalTok{ERROR} -\NormalTok{ EFF =}\StringTok{ }\NormalTok{EMAX}\OperatorTok{*}\NormalTok{CP }\OperatorTok{/}\StringTok{ }\NormalTok{(EC50}\OperatorTok{+}\NormalTok{CP)} -\NormalTok{ Y =}\StringTok{ }\NormalTok{EFF }\OperatorTok{+}\StringTok{ }\KeywordTok{ERR}\NormalTok{(}\DecValTok{1}\NormalTok{)} - -\OperatorTok{$}\NormalTok{THETA} +\SpecialCharTok{$}\NormalTok{PK} +\NormalTok{ CL }\OtherTok{=}\NormalTok{ ICL} +\NormalTok{ V1 }\OtherTok{=}\NormalTok{ IV} +\NormalTok{ K }\OtherTok{=}\NormalTok{ CL }\SpecialCharTok{/}\NormalTok{ V1} +\NormalTok{ EMAX }\OtherTok{=} \FunctionTok{THETA}\NormalTok{(}\DecValTok{3}\NormalTok{) }\SpecialCharTok{*} \FunctionTok{EXP}\NormalTok{(}\FunctionTok{ETA}\NormalTok{(}\DecValTok{3}\NormalTok{))} +\NormalTok{ EC50 }\OtherTok{=} \FunctionTok{THETA}\NormalTok{(}\DecValTok{4}\NormalTok{) }\SpecialCharTok{*} \FunctionTok{EXP}\NormalTok{(}\FunctionTok{ETA}\NormalTok{(}\DecValTok{4}\NormalTok{))} + +\SpecialCharTok{$}\NormalTok{DES} +\NormalTok{ CP }\OtherTok{=} \FunctionTok{A}\NormalTok{(}\DecValTok{1}\NormalTok{) }\SpecialCharTok{/}\NormalTok{ V1} + \FunctionTok{DADT}\NormalTok{(}\DecValTok{1}\NormalTok{) }\OtherTok{=} \SpecialCharTok{{-}}\NormalTok{K }\SpecialCharTok{*} \FunctionTok{A}\NormalTok{(}\DecValTok{1}\NormalTok{)} + +\SpecialCharTok{$}\NormalTok{ERROR} +\NormalTok{ EFF }\OtherTok{=}\NormalTok{ EMAX}\SpecialCharTok{*}\NormalTok{CP }\SpecialCharTok{/}\NormalTok{ (EC50}\SpecialCharTok{+}\NormalTok{CP)} +\NormalTok{ Y }\OtherTok{=}\NormalTok{ EFF }\SpecialCharTok{+} \FunctionTok{ERR}\NormalTok{(}\DecValTok{1}\NormalTok{)} + +\SpecialCharTok{$}\NormalTok{THETA} \NormalTok{ (}\DecValTok{0}\NormalTok{, }\DecValTok{15}\NormalTok{)} \NormalTok{ (}\DecValTok{0}\NormalTok{, }\DecValTok{20}\NormalTok{)} -\OperatorTok{$}\NormalTok{OMEGA} +\SpecialCharTok{$}\NormalTok{OMEGA} \FloatTok{0.2} \FloatTok{0.25} -\OperatorTok{$}\NormalTok{SIGMA} +\SpecialCharTok{$}\NormalTok{SIGMA} \FloatTok{0.04} \end{Highlighting} \end{Shaded} -\hypertarget{indirect-pkpd}{% -\section{간접효과 PK-PD 모델의 예 (Examples of PK-PD model with Indirect response)}\label{indirect-pkpd}} +\section{간접효과 PK-PD 모델의 예 (Examples of PK-PD model with Indirect response)}\label{indirect-pkpd} -\hypertarget{simuxacfc-pppd-uxb370uxc774uxd130uxc14b-uxbc0f-uxc81cuxc5b4uxad6cuxbb38}{% -\subsection{SIM과 PPP\&D 데이터셋 및 제어구문}\label{simuxacfc-pppd-uxb370uxc774uxd130uxc14b-uxbc0f-uxc81cuxc5b4uxad6cuxbb38}} +\subsection{SIM과 PPP\&D 데이터셋 및 제어구문}\label{simuxacfc-pppd-uxb370uxc774uxd130uxc14b-uxbc0f-uxc81cuxc5b4uxad6cuxbb38} 이 장에서는 앞서 소개한 \ref{direct-pkpd} 예시보다는 조금 복잡한 경우의 PK-PD 모델링에 필요한 데이터셋과 제어구문 파일의 구조를 살펴보자. 본 예시는 약물이 경구투여되어 나타나는 PK, PD 양상을 2구획 PK모델과 효과구획이 포함된 PD모델로 설명하였다. 따라서, 구획은 흡수, 중심, 말초, 효과의 총 4개의 구획으로 나뉘어지며, PD는 단순 Emax 모델을 따르고, PK 와 PD 간의 간접효과 모델을 사용(시간지연이 보인다고 가정)하여 약물의 농도가 효과 생성에 억제(Kin을 inhibit 시키는 것을 가정) 시키는 것을 나타냈다. @@ -5209,53 +5141,53 @@ \subsection{SIM과 PPP\&D 데이터셋 및 제어구문}\label{simuxacfc-pppd-ux 제어구문 파일에서 SIM과 PPP\&D를 구분할 수 있게 해 주는 부분은 \$ERROR 뒤에 이어지는 \$THETA, \$OMEGA, \$SIGMA제어구문이며, 이 때 집단 PK 파라미터 추정치를 고정하지 않고 진행하는 것이 SIM방법이고, 고정하여 진행하는 것이 PPP\&D 방법이라고 할 수 있다.\index{\$ERROR}\index{\$OMEGA}\index{\$SIGMA}\index{\$THETA} \begin{example} -\protect\hypertarget{exm:sim-pppd-similarity}{}{\label{exm:sim-pppd-similarity} }SIM 방법과 PPP\&D 방법 쓸 때 제어구문의 공통된 부분 +\protect\hypertarget{exm:sim-pppd-similarity}{}\label{exm:sim-pppd-similarity}SIM 방법과 PPP\&D 방법 쓸 때 제어구문의 공통된 부분 \end{example} + \vspace{-5ex} \begin{Shaded} \begin{Highlighting}[] -\OperatorTok{$}\NormalTok{PROB HO\_PO\_2comp} -\OperatorTok{$}\NormalTok{DATA SIM\_S.csv IGNORE=}\ErrorTok{@} +\SpecialCharTok{$}\NormalTok{PROB HO\_PO\_2comp} +\SpecialCharTok{$}\NormalTok{DATA SIM\_S.csv IGNORE}\OtherTok{=}\ErrorTok{@} \ErrorTok{$}\NormalTok{INPUT ID TIME AMT DMT DV MDV SEX AGE WT HT} -\OperatorTok{$}\NormalTok{SUBROUTINE ADVAN6 TOL=}\DecValTok{3} - -\OperatorTok{$}\NormalTok{MODEL NCOMP=}\DecValTok{4} - \KeywordTok{COMP}\NormalTok{(DEPOT, DEFDOSE)} - \KeywordTok{COMP}\NormalTok{(CENT)} - \KeywordTok{COMP}\NormalTok{(PERI)} - \KeywordTok{COMP}\NormalTok{(EFFE, DEFOBS)} - -\OperatorTok{$}\NormalTok{PK} -\NormalTok{;}\OperatorTok{{-}{-}{-}{-}}\StringTok{ }\NormalTok{PK FIXED EFFECT }\OperatorTok{{-}{-}{-}{-}} -\StringTok{ }\NormalTok{TVCL =}\StringTok{ }\KeywordTok{THETA}\NormalTok{(}\DecValTok{1}\NormalTok{)} -\NormalTok{ TVV2 =}\StringTok{ }\KeywordTok{THETA}\NormalTok{(}\DecValTok{2}\NormalTok{)} -\NormalTok{ TVV3 =}\StringTok{ }\KeywordTok{THETA}\NormalTok{(}\DecValTok{3}\NormalTok{)} -\NormalTok{ TVQ =}\StringTok{ }\KeywordTok{THETA}\NormalTok{(}\DecValTok{4}\NormalTok{)} -\NormalTok{ TVKA =}\StringTok{ }\KeywordTok{THETA}\NormalTok{(}\DecValTok{5}\NormalTok{)} - -\NormalTok{;}\OperatorTok{{-}{-}{-}{-}}\StringTok{ }\NormalTok{PK RANDOM EFFECT }\OperatorTok{{-}{-}{-}{-}} -\StringTok{ }\NormalTok{CL =}\StringTok{ }\NormalTok{TVCL }\OperatorTok{*}\StringTok{ }\KeywordTok{EXP}\NormalTok{(}\KeywordTok{ETA}\NormalTok{(}\DecValTok{1}\NormalTok{))} -\NormalTok{ V2 =}\StringTok{ }\NormalTok{TVV2 }\OperatorTok{*}\StringTok{ }\KeywordTok{EXP}\NormalTok{(}\KeywordTok{ETA}\NormalTok{(}\DecValTok{2}\NormalTok{))} -\NormalTok{ V3 =}\StringTok{ }\NormalTok{TVV3 }\OperatorTok{*}\StringTok{ }\KeywordTok{EXP}\NormalTok{(}\KeywordTok{ETA}\NormalTok{(}\DecValTok{3}\NormalTok{))} -\NormalTok{ Q =}\StringTok{ }\NormalTok{TVQ }\OperatorTok{*}\StringTok{ }\KeywordTok{EXP}\NormalTok{(}\KeywordTok{ETA}\NormalTok{(}\DecValTok{4}\NormalTok{))} -\NormalTok{ KA =}\StringTok{ }\NormalTok{TVKA }\OperatorTok{*}\StringTok{ }\KeywordTok{EXP}\NormalTok{(}\KeywordTok{ETA}\NormalTok{(}\DecValTok{5}\NormalTok{))} - -\NormalTok{;}\OperatorTok{{-}{-}{-}{-}}\StringTok{ }\NormalTok{PK PARAMETER RELATIONSHIP }\OperatorTok{{-}{-}{-}{-}} -\StringTok{ }\NormalTok{S2 =}\StringTok{ }\NormalTok{V2} -\NormalTok{ K23 =}\StringTok{ }\NormalTok{Q}\OperatorTok{/}\NormalTok{V2} -\NormalTok{ K32 =}\StringTok{ }\NormalTok{Q}\OperatorTok{/}\NormalTok{V3} -\NormalTok{ KE =}\StringTok{ }\NormalTok{CL}\OperatorTok{/}\NormalTok{V2} +\SpecialCharTok{$}\NormalTok{SUBROUTINE ADVAN6 TOL}\OtherTok{=}\DecValTok{3} + +\SpecialCharTok{$}\NormalTok{MODEL NCOMP}\OtherTok{=}\DecValTok{4} + \FunctionTok{COMP}\NormalTok{(DEPOT, DEFDOSE)} + \FunctionTok{COMP}\NormalTok{(CENT)} + \FunctionTok{COMP}\NormalTok{(PERI)} + \FunctionTok{COMP}\NormalTok{(EFFE, DEFOBS)} + +\SpecialCharTok{$}\NormalTok{PK} +\NormalTok{;}\SpecialCharTok{{-}{-}{-}{-}}\NormalTok{ PK FIXED EFFECT }\SpecialCharTok{{-}{-}{-}{-}} +\NormalTok{ TVCL }\OtherTok{=} \FunctionTok{THETA}\NormalTok{(}\DecValTok{1}\NormalTok{)} +\NormalTok{ TVV2 }\OtherTok{=} \FunctionTok{THETA}\NormalTok{(}\DecValTok{2}\NormalTok{)} +\NormalTok{ TVV3 }\OtherTok{=} \FunctionTok{THETA}\NormalTok{(}\DecValTok{3}\NormalTok{)} +\NormalTok{ TVQ }\OtherTok{=} \FunctionTok{THETA}\NormalTok{(}\DecValTok{4}\NormalTok{)} +\NormalTok{ TVKA }\OtherTok{=} \FunctionTok{THETA}\NormalTok{(}\DecValTok{5}\NormalTok{)} + +\NormalTok{;}\SpecialCharTok{{-}{-}{-}{-}}\NormalTok{ PK RANDOM EFFECT }\SpecialCharTok{{-}{-}{-}{-}} +\NormalTok{ CL }\OtherTok{=}\NormalTok{ TVCL }\SpecialCharTok{*} \FunctionTok{EXP}\NormalTok{(}\FunctionTok{ETA}\NormalTok{(}\DecValTok{1}\NormalTok{))} +\NormalTok{ V2 }\OtherTok{=}\NormalTok{ TVV2 }\SpecialCharTok{*} \FunctionTok{EXP}\NormalTok{(}\FunctionTok{ETA}\NormalTok{(}\DecValTok{2}\NormalTok{))} +\NormalTok{ V3 }\OtherTok{=}\NormalTok{ TVV3 }\SpecialCharTok{*} \FunctionTok{EXP}\NormalTok{(}\FunctionTok{ETA}\NormalTok{(}\DecValTok{3}\NormalTok{))} +\NormalTok{ Q }\OtherTok{=}\NormalTok{ TVQ }\SpecialCharTok{*} \FunctionTok{EXP}\NormalTok{(}\FunctionTok{ETA}\NormalTok{(}\DecValTok{4}\NormalTok{))} +\NormalTok{ KA }\OtherTok{=}\NormalTok{ TVKA }\SpecialCharTok{*} \FunctionTok{EXP}\NormalTok{(}\FunctionTok{ETA}\NormalTok{(}\DecValTok{5}\NormalTok{))} + +\NormalTok{;}\SpecialCharTok{{-}{-}{-}{-}}\NormalTok{ PK PARAMETER RELATIONSHIP }\SpecialCharTok{{-}{-}{-}{-}} +\NormalTok{ S2 }\OtherTok{=}\NormalTok{ V2} +\NormalTok{ K23 }\OtherTok{=}\NormalTok{ Q}\SpecialCharTok{/}\NormalTok{V2} +\NormalTok{ K32 }\OtherTok{=}\NormalTok{ Q}\SpecialCharTok{/}\NormalTok{V3} +\NormalTok{ KE }\OtherTok{=}\NormalTok{ CL}\SpecialCharTok{/}\NormalTok{V2} \end{Highlighting} \end{Shaded} -\hypertarget{pppuxc758-uxb370uxc774uxd130uxc14b-uxbc0f-uxc81cuxc5b4uxad6cuxbb38}{% -\subsection{PPP의 데이터셋 및 제어구문}\label{pppuxc758-uxb370uxc774uxd130uxc14b-uxbc0f-uxc81cuxc5b4uxad6cuxbb38}} +\subsection{PPP의 데이터셋 및 제어구문}\label{pppuxc758-uxb370uxc774uxd130uxc14b-uxbc0f-uxc81cuxc5b4uxad6cuxbb38} -PPP 방법을 사용할 때의 데이터셋 형태는 아래와 같다(그림 \ref{fig:ppp-pkpd-dataset}). 데이터셋은 PK 데이터를 제외한 용량 정보와 PD 데이터만을 포함하며, 이와 같은 경우 PD 데이터를 CMT 4에 기입한다. 기존 SIM 및 PPP\&D 방법을 사용하여 PK-PD 모델링을 수행한 바 있고 이 때의 데이터셋(그림 \ref{fig:sim-pppd-dataset})을 활용하고자 한다면, 제어구문 파일에서 간단한 제어구문을 통해 PPP에 적합한 데이터셋으로 변형하여 사용할 수 있다. 이는 \$DATA 제어구문내의 `IGNORE'이라는 명령어를 사용하여 CMT 2에 해당하는 PK 데이터를 받아들이지 않고, 그 외의 정보(용량 정보 및 PD 데이터)만을 받아들이게 할 수 있다(\$DATA 내의 \texttt{IGNORE=(CMT.EQ.2)}를 추가함). 이 명령어를 사용하지 않는다면, 물론 엑셀 상에서 데이터셋 자체를 PPP 방법에 적합하도록 수정하여 사용할 수 있다.\index{\$DATA}\index{CMT}\index{IGNORE} +PPP 방법을 사용할 때의 데이터셋 형태는 아래와 같다(그림 \ref{fig:ppp-pkpd-dataset}). 데이터셋은 PK 데이터를 제외한 용량 정보와 PD 데이터만을 포함하며, 이와 같은 경우 PD 데이터를 CMT 4에 기입한다. 기존 SIM 및 PPP\&D 방법을 사용하여 PK-PD 모델링을 수행한 바 있고 이 때의 데이터셋(그림 \ref{fig:sim-pppd-dataset})을 활용하고자 한다면, 제어구문 파일에서 간단한 제어구문을 통해 PPP에 적합한 데이터셋으로 변형하여 사용할 수 있다. 이는 \$DATA 제어구문내의 'IGNORE'이라는 명령어를 사용하여 CMT 2에 해당하는 PK 데이터를 받아들이지 않고, 그 외의 정보(용량 정보 및 PD 데이터)만을 받아들이게 할 수 있다(\$DATA 내의 \texttt{IGNORE=(CMT.EQ.2)}를 추가함). 이 명령어를 사용하지 않는다면, 물론 엑셀 상에서 데이터셋 자체를 PPP 방법에 적합하도록 수정하여 사용할 수 있다.\index{\$DATA}\index{CMT}\index{IGNORE} PPP의 제어구문은 위의 코드 \ref{exm:sim-pppd-similarity}과 동일한 형태로 사용될 수 있으며, 다만 다른 점은 \$ERROR에서 PK(CMT 2)에 대한 오차모델이 삭제되고, PD (CMT 4)에 대한 오차모델만 남아있다고 생각하면 된다.\index{\$ERROR}\index{CMT} @@ -5270,12 +5202,11 @@ \subsection{PPP의 데이터셋 및 제어구문}\label{pppuxc758-uxb370uxc774ux -\hypertarget{ippuxc758-uxb370uxc774uxd130uxc14b-uxbc0f-uxc81cuxc5b4uxad6cuxbb38}{% -\subsection{IPP의 데이터셋 및 제어구문}\label{ippuxc758-uxb370uxc774uxd130uxc14b-uxbc0f-uxc81cuxc5b4uxad6cuxbb38}} +\subsection{IPP의 데이터셋 및 제어구문}\label{ippuxc758-uxb370uxc774uxd130uxc14b-uxbc0f-uxc81cuxc5b4uxad6cuxbb38} IPP 방법의 데이터셋은 PPP와 마찬가지로 용량정보와 PD 데이터를 포함한다. 다만, PK 모델을 통해 얻은 개인의 파라미터 추정치(예를 들어, CL, V2, V3, KA)를 바로 데이터셋에 기입해 준다. IPP에 적합한 데이터셋 형태는 아래와 같다(그림 \ref{fig:ipp-dataset}). -이 방법으로 PK-PD 모델링을 수행시, PK 파라미터는 각 개인의 값으로 고정하며, 이를 제어구문 파일에 \$PK 내에 ICL, IV2, IV3, IKA 와 같이 나타낸다(코드 \ref{exm:ipp-control-stream}). 이와 같이 파라미터 이름을 명명한 이유는 NONMEM이 사용하는 기존 PK 파라미터 이름들과 구분지음으로써 계산 시 오류가 나타나지 않도록 하기 위함이다. 이 경우, 임의로 individual의 첫 자인 `I'를 파라미터 이름 앞에 붙여주었으며, 이외의 다른 이름으로도 표기가 가능하다 (예를 들어, ACL, AV2, AV3, AKA 등). 오차모델은 IPP에서는 PPP에서와 마찬가지로 PD 데이터만을 가지고 모델링을 수행하는 단계이기 때문에 PD에 대한 오차모델만 존재한다.\index{\$PK} +이 방법으로 PK-PD 모델링을 수행시, PK 파라미터는 각 개인의 값으로 고정하며, 이를 제어구문 파일에 \$PK 내에 ICL, IV2, IV3, IKA 와 같이 나타낸다(코드 \ref{exm:ipp-control-stream}). 이와 같이 파라미터 이름을 명명한 이유는 NONMEM이 사용하는 기존 PK 파라미터 이름들과 구분지음으로써 계산 시 오류가 나타나지 않도록 하기 위함이다. 이 경우, 임의로 individual의 첫 자인 'I'를 파라미터 이름 앞에 붙여주었으며, 이외의 다른 이름으로도 표기가 가능하다 (예를 들어, ACL, AV2, AV3, AKA 등). 오차모델은 IPP에서는 PPP에서와 마찬가지로 PD 데이터만을 가지고 모델링을 수행하는 단계이기 때문에 PD에 대한 오차모델만 존재한다.\index{\$PK} \begin{figure} @@ -5289,71 +5220,69 @@ \subsection{IPP의 데이터셋 및 제어구문}\label{ippuxc758-uxb370uxc774ux \begin{example} -\protect\hypertarget{exm:ipp-control-stream}{}{\label{exm:ipp-control-stream} }IPP 방법의 제어구문의 예 +\protect\hypertarget{exm:ipp-control-stream}{}\label{exm:ipp-control-stream}IPP 방법의 제어구문의 예 \end{example} + \vspace{-5ex} \begin{Shaded} \begin{Highlighting}[] -\OperatorTok{$}\NormalTok{PROB HO\_PO\_2comp} -\OperatorTok{$}\NormalTok{DATA IPP\_S.csv IGNORE=}\ErrorTok{@} +\SpecialCharTok{$}\NormalTok{PROB HO\_PO\_2comp} +\SpecialCharTok{$}\NormalTok{DATA IPP\_S.csv IGNORE}\OtherTok{=}\ErrorTok{@} \ErrorTok{$}\NormalTok{INPUT ID TIME AMT CMT DV MDV SEX AGE WT HT ICL IV2 IV3 IKA} -\OperatorTok{$}\NormalTok{SUBROUTINE ADVAN6 TOL=}\DecValTok{3} +\SpecialCharTok{$}\NormalTok{SUBROUTINE ADVAN6 TOL}\OtherTok{=}\DecValTok{3} -\OperatorTok{$}\NormalTok{MODEL NCOMP=}\DecValTok{4} - \KeywordTok{COMP}\NormalTok{(DEPOT, DEFDOSE)} - \KeywordTok{COMP}\NormalTok{(CENT)} - \KeywordTok{COMP}\NormalTok{(PERI)} - \KeywordTok{COMP}\NormalTok{(EFFE, DEFOBS)} +\SpecialCharTok{$}\NormalTok{MODEL NCOMP}\OtherTok{=}\DecValTok{4} + \FunctionTok{COMP}\NormalTok{(DEPOT, DEFDOSE)} + \FunctionTok{COMP}\NormalTok{(CENT)} + \FunctionTok{COMP}\NormalTok{(PERI)} + \FunctionTok{COMP}\NormalTok{(EFFE, DEFOBS)} -\OperatorTok{$}\NormalTok{PK} +\SpecialCharTok{$}\NormalTok{PK} -\NormalTok{ CL =}\StringTok{ }\NormalTok{ICL} -\NormalTok{ V2 =}\StringTok{ }\NormalTok{IV2} -\NormalTok{ V3 =}\StringTok{ }\NormalTok{IV3} -\NormalTok{ Q =}\StringTok{ }\FloatTok{4.97} -\NormalTok{ KA =}\StringTok{ }\NormalTok{IKA} +\NormalTok{ CL }\OtherTok{=}\NormalTok{ ICL} +\NormalTok{ V2 }\OtherTok{=}\NormalTok{ IV2} +\NormalTok{ V3 }\OtherTok{=}\NormalTok{ IV3} +\NormalTok{ Q }\OtherTok{=} \FloatTok{4.97} +\NormalTok{ KA }\OtherTok{=}\NormalTok{ IKA} -\NormalTok{ S2 =}\StringTok{ }\NormalTok{V2} +\NormalTok{ S2 }\OtherTok{=}\NormalTok{ V2} -\NormalTok{ K23 =}\StringTok{ }\NormalTok{Q}\OperatorTok{/}\NormalTok{V2} -\NormalTok{ K32 =}\StringTok{ }\NormalTok{Q}\OperatorTok{/}\NormalTok{V3} +\NormalTok{ K23 }\OtherTok{=}\NormalTok{ Q}\SpecialCharTok{/}\NormalTok{V2} +\NormalTok{ K32 }\OtherTok{=}\NormalTok{ Q}\SpecialCharTok{/}\NormalTok{V3} -\NormalTok{ KE =}\StringTok{ }\NormalTok{CL}\OperatorTok{/}\NormalTok{V2} +\NormalTok{ KE }\OtherTok{=}\NormalTok{ CL}\SpecialCharTok{/}\NormalTok{V2} -\NormalTok{ EMAX =}\StringTok{ }\KeywordTok{THETA}\NormalTok{(}\DecValTok{1}\NormalTok{) }\OperatorTok{*}\StringTok{ }\KeywordTok{EXP}\NormalTok{(}\KeywordTok{ETA}\NormalTok{(}\DecValTok{1}\NormalTok{))} -\NormalTok{ EC50 =}\StringTok{ }\KeywordTok{THETA}\NormalTok{(}\DecValTok{2}\NormalTok{) }\OperatorTok{*}\StringTok{ }\KeywordTok{EXP}\NormalTok{(}\KeywordTok{ETA}\NormalTok{(}\DecValTok{2}\NormalTok{))} -\NormalTok{ KIN =}\StringTok{ }\KeywordTok{THETA}\NormalTok{(}\DecValTok{3}\NormalTok{) }\OperatorTok{*}\StringTok{ }\KeywordTok{EXP}\NormalTok{(}\KeywordTok{ETA}\NormalTok{(}\DecValTok{3}\NormalTok{))} -\NormalTok{ BASE =}\StringTok{ }\KeywordTok{THETA}\NormalTok{(}\DecValTok{4}\NormalTok{) }\OperatorTok{*}\StringTok{ }\KeywordTok{EXP}\NormalTok{(}\KeywordTok{ETA}\NormalTok{(}\DecValTok{4}\NormalTok{))} - \KeywordTok{A\_0}\NormalTok{(}\DecValTok{4}\NormalTok{)=}\StringTok{ }\NormalTok{BASE} -\NormalTok{ KOUT =}\StringTok{ }\NormalTok{KIN}\OperatorTok{/}\NormalTok{BASE} +\NormalTok{ EMAX }\OtherTok{=} \FunctionTok{THETA}\NormalTok{(}\DecValTok{1}\NormalTok{) }\SpecialCharTok{*} \FunctionTok{EXP}\NormalTok{(}\FunctionTok{ETA}\NormalTok{(}\DecValTok{1}\NormalTok{))} +\NormalTok{ EC50 }\OtherTok{=} \FunctionTok{THETA}\NormalTok{(}\DecValTok{2}\NormalTok{) }\SpecialCharTok{*} \FunctionTok{EXP}\NormalTok{(}\FunctionTok{ETA}\NormalTok{(}\DecValTok{2}\NormalTok{))} +\NormalTok{ KIN }\OtherTok{=} \FunctionTok{THETA}\NormalTok{(}\DecValTok{3}\NormalTok{) }\SpecialCharTok{*} \FunctionTok{EXP}\NormalTok{(}\FunctionTok{ETA}\NormalTok{(}\DecValTok{3}\NormalTok{))} +\NormalTok{ BASE }\OtherTok{=} \FunctionTok{THETA}\NormalTok{(}\DecValTok{4}\NormalTok{) }\SpecialCharTok{*} \FunctionTok{EXP}\NormalTok{(}\FunctionTok{ETA}\NormalTok{(}\DecValTok{4}\NormalTok{))} + \FunctionTok{A\_0}\NormalTok{(}\DecValTok{4}\NormalTok{)}\OtherTok{=}\NormalTok{ BASE} +\NormalTok{ KOUT }\OtherTok{=}\NormalTok{ KIN}\SpecialCharTok{/}\NormalTok{BASE} \end{Highlighting} \end{Shaded} -\hypertarget{pk-pd-uxc5f0uxacb0uxbc29uxbc95uxc801uxd569uxbc95-uxbe44uxad50}{% -\section{PK-PD 연결방법(적합법) 비교}\label{pk-pd-uxc5f0uxacb0uxbc29uxbc95uxc801uxd569uxbc95-uxbe44uxad50}} +\section{PK-PD 연결방법(적합법) 비교}\label{pk-pd-uxc5f0uxacb0uxbc29uxbc95uxc801uxd569uxbc95-uxbe44uxad50} -\hypertarget{uxac01-uxbc29uxbc95uxc758-uxc7a5uxc810-uxbc0f-uxb2e8uxc810}{% -\subsection{각 방법의 장점 및 단점}\label{uxac01-uxbc29uxbc95uxc758-uxc7a5uxc810-uxbc0f-uxb2e8uxc810}} +\subsection{각 방법의 장점 및 단점}\label{uxac01-uxbc29uxbc95uxc758-uxc7a5uxc810-uxbc0f-uxb2e8uxc810} 위에서 PK-PD를 연결시키는 네 가지 방법(동시적합법: SIM, 순차적합법: PPP\&D, PPP, IPP)과 이 때 사용하는 데이터셋 형태 및 제어구문 구조에 대해 살펴보았다. 이 장에서는 각 방법의 장점 및 단점과 어떤 경우에 어떤 방법을 사용하는 것이 적합한지에 대해 살펴보도록 하자.\index{동시적합법 / simulatneous fitting}\index{순차적합법 / sequential fitting}\index{sequential fitting / 순차적합법}\index{simulatneous fitting / 동시적합법} 앞서 소개한 순서에 따라 SIM, PPP\&D, PPP, IPP 방법으로 갈수록 PK 정보를 세세하게 고정하여 사용하기 때문에, PK와 PD 간의 양방향의 상호작용에 대한 고려가 줄어들고, PD 모델의 유연성(flexibility)은 낮아진다고 할 수 있다. 그리고 이에 따라 시간적으로는 효율성이 더 높은 PD 모델링이 가능하다. -SIM 방법은 전산적으로 가장 계산이 복잡하며, 시간이 가장 많이 소요되는 방법이다. 많은 PK 및 PD 파라미터를 동시에 추정하기 때문에 안정적으로 추정이 어려울 수 있으며, 따라서 실행시간이 길어질 수 있다. 하지만 모든 파라미터를 동시에 추정 가능할 정도의 충분한 데이터가 확보된 경우라면 SIM 방법은 PK와 PD 파라미터 간의 양방향의 상호작용이 가능하다는 점에서 문헌에서는 가장 이상적인 방법이라고 말하고 있다. (Zhang, Beal, and Sheiner \protect\hyperlink{ref-zhang1}{2003}\protect\hyperlink{ref-zhang1}{a}, \protect\hyperlink{ref-zhang2}{2003}\protect\hyperlink{ref-zhang2}{b}) 하지만, 현실적으로 모델링에 소요되는 시간을 절약할 수 있고 파라미터들의 안정적인 추정이 가능한 순차적합법이 많이 사용된다.\index{순차적합법 / sequential fitting}\index{sequential fitting / 순차적합법} +SIM 방법은 전산적으로 가장 계산이 복잡하며, 시간이 가장 많이 소요되는 방법이다. 많은 PK 및 PD 파라미터를 동시에 추정하기 때문에 안정적으로 추정이 어려울 수 있으며, 따라서 실행시간이 길어질 수 있다. 하지만 모든 파라미터를 동시에 추정 가능할 정도의 충분한 데이터가 확보된 경우라면 SIM 방법은 PK와 PD 파라미터 간의 양방향의 상호작용이 가능하다는 점에서 문헌에서는 가장 이상적인 방법이라고 말하고 있다. (\citeproc{ref-zhang1}{Zhang, Beal, and Sheiner 2003a}, \citeproc{ref-zhang2}{2003b}) 하지만, 현실적으로 모델링에 소요되는 시간을 절약할 수 있고 파라미터들의 안정적인 추정이 가능한 순차적합법이 많이 사용된다.\index{순차적합법 / sequential fitting}\index{sequential fitting / 순차적합법} PPP\&D와 PPP 방법에서는 집단 PK 파라미터 추정치를 입력값으로 사용하여 PD 파라미터를 추정한다. 이 둘의 차이점은 PPP\&D에서는 PK 데이터를 기반으로 개인의 PK 파라미터를 추정한다는 것이고, PPP에서는 PD데이터를 기반으로 개인의 PK 파라미터를 추정한다는 것이다. 따라서 PPP 방법은 PD 데이터에 더 신뢰도 및 중요도를 두고 있는 방법이라고 할 수 있다. IPP 방법은 약물의 PK가 잘 못 측정될 가능성이 PD가 잘 못 측정될 가능성보다 작다고 보는 경우라고 할 수 있으며, 따라서 개인의 PK 파라미터 추정치를 충분히 믿을 만한 값으로 고려하고, 이를 고정하여 PD 파라미터를 추정하는 방법이다. IPP에서는 개인 PK 파라미터 추정치와 개인의 PD 데이터를 일대일로 대응시키기 때문에, PK와 PD 데이터를 얻은 대상자(또는 개체)는 동일하다는 전제가 있다(같은 ID로 설명함). 만약 PK와 PD 데이터를 얻은 대상자(또는 개체)가 다를 경우, 다른 연결방법, 즉 집단의 PK 파라미터 추정치를 기반으로 PD 파라미터를 추정하는 방법(PPP\&D 또는 PPP)을 선택하여 진행하는 것이 적합하다.\index{ID} -\hypertarget{uxac01-uxbc29uxbc95uxc758-uxc18cuxc694uxc2dcuxac04-uxbc0f-uxc815uxbc00uxb3c4-uxbe44uxad50}{% -\subsection{각 방법의 소요시간 및 정밀도 비교}\label{uxac01-uxbc29uxbc95uxc758-uxc18cuxc694uxc2dcuxac04-uxbc0f-uxc815uxbc00uxb3c4-uxbe44uxad50}} +\subsection{각 방법의 소요시간 및 정밀도 비교}\label{uxac01-uxbc29uxbc95uxc758-uxc18cuxc694uxc2dcuxac04-uxbc0f-uxc815uxbc00uxb3c4-uxbe44uxad50} -SIM 방법과 비교하여 순차적합법 사용 시 NONMEM에서 파라미터 추정에 소요되는 시간(estimation time)이 대략 40 -- 75\% 가량 절약된다. 그 중 IPP 방법은 목적함수를 최소화하는 시간을 대략 75\% 절약할 수 있는 것으로 나타났다(그림 \ref{fig:time-comparison}). (Zhang, Beal, and Sheiner \protect\hyperlink{ref-zhang1}{2003}\protect\hyperlink{ref-zhang1}{a}) \index{목적함수 / objective function}\index{순차적합법 / sequential fitting}\index{objective function / 목적함수}\index{sequential fitting / 순차적합법} +SIM 방법과 비교하여 순차적합법 사용 시 NONMEM에서 파라미터 추정에 소요되는 시간(estimation time)이 대략 40 -- 75\% 가량 절약된다. 그 중 IPP 방법은 목적함수를 최소화하는 시간을 대략 75\% 절약할 수 있는 것으로 나타났다(그림 \ref{fig:time-comparison}). (\citeproc{ref-zhang1}{Zhang, Beal, and Sheiner 2003a}) \index{목적함수 / objective function}\index{순차적합법 / sequential fitting}\index{objective function / 목적함수}\index{sequential fitting / 순차적합법} 또한, PD 파라미터 추정의 성공 빈도와 정밀도 면에서 순차적합법이 SIM 방법보다 나은 것으로 나타났으며, 순차적합법 중 IPP\index{순차적합법 / sequential fitting}\index{sequential fitting / 순차적합법} -방법이 성공률이 가장 높은 것으로 나타났다. (Zhang, Beal, and Sheiner \protect\hyperlink{ref-zhang1}{2003}\protect\hyperlink{ref-zhang1}{a}) +방법이 성공률이 가장 높은 것으로 나타났다. (\citeproc{ref-zhang1}{Zhang, Beal, and Sheiner 2003a}) \begin{figure} @@ -5361,12 +5290,12 @@ \subsection{각 방법의 소요시간 및 정밀도 비교}\label{uxac01-uxbc29 } -\caption{순차적 방법과 SIM 방법 쓸 때의 절약되는 시간 비교 (N=200) (Zhang, Beal, and Sheiner \protect\hyperlink{ref-zhang1}{2003}\protect\hyperlink{ref-zhang1}{a})}\label{fig:time-comparison} +\caption{순차적 방법과 SIM 방법 쓸 때의 절약되는 시간 비교 (N=200) (\citeproc{ref-zhang1}{Zhang, Beal, and Sheiner 2003a})}\label{fig:time-comparison} \end{figure} -그림 \ref{fig:absolute-signed}은 네 가지의 PK-PD 연결방법 사용시 얻은 PD 파라미터 추정치들(Emax, EC50 등)의 각각의 오차의 크기를 보여준다. 이를 통해 전체적으로 SIM 과 PPP\&D 방법으로 얻은 PD 파라미터 추정치들의 오차가 다른 방법에 비해 적은 것을 확인할 수 있다. (Zhang, Beal, and Sheiner \protect\hyperlink{ref-zhang1}{2003}\protect\hyperlink{ref-zhang1}{a}) +그림 \ref{fig:absolute-signed}은 네 가지의 PK-PD 연결방법 사용시 얻은 PD 파라미터 추정치들(Emax, EC50 등)의 각각의 오차의 크기를 보여준다. 이를 통해 전체적으로 SIM 과 PPP\&D 방법으로 얻은 PD 파라미터 추정치들의 오차가 다른 방법에 비해 적은 것을 확인할 수 있다. (\citeproc{ref-zhang1}{Zhang, Beal, and Sheiner 2003a}) \begin{figure} @@ -5374,13 +5303,12 @@ \subsection{각 방법의 소요시간 및 정밀도 비교}\label{uxac01-uxbc29 } -\caption{Average absolute (A) and signed error (B) of PD parameter estimates (Zhang, Beal, and Sheiner \protect\hyperlink{ref-zhang1}{2003}\protect\hyperlink{ref-zhang1}{a})}\label{fig:absolute-signed} +\caption{Average absolute (A) and signed error (B) of PD parameter estimates (\citeproc{ref-zhang1}{Zhang, Beal, and Sheiner 2003a})}\label{fig:absolute-signed} \end{figure} -\hypertarget{pk-pd-uxc5f0uxacb0uxbc29uxbc95uxc801uxd569uxbc95-uxc694uxc57d-uxbc0f-uxacb0uxb860}{% -\section{PK-PD 연결방법(적합법) 요약 및 결론}\label{pk-pd-uxc5f0uxacb0uxbc29uxbc95uxc801uxd569uxbc95-uxc694uxc57d-uxbc0f-uxacb0uxb860}} +\section{PK-PD 연결방법(적합법) 요약 및 결론}\label{pk-pd-uxc5f0uxacb0uxbc29uxbc95uxc801uxd569uxbc95-uxc694uxc57d-uxbc0f-uxacb0uxb860} 이번 장에서는 총 네 가지의 PK-PD 연결방법을 살펴보았다. 보유한 데이터의 특성과 모델링의 목적에 맞게 적절한 방법을 선택하여 PK-PD 모델링을 진행해야 한다. 풍부한 PK 및 PD 데이터를 보유하였을 경우, 위의 네 가지 방법으로 얻은 결과는 유사할 것으로 생각되며, 어떠한 방법으로 모델링을 진행하여도 정밀도가 높은 PD 파라미터 추정치가 나올 것으로 생각된다. @@ -5407,8 +5335,7 @@ \section{PK-PD 연결방법(적합법) 요약 및 결론}\label{pk-pd-uxc5f0uxac 우리는 이와 같은 다양한 PK-PD 모델링 방법을 사용하여 궁극적으로 PD 파라미터 값을 얻을 수 있다. 내가 가진 데이터의 성격을 탐색하여 상황에 따라 적절한 PK-PD 연결방법을 선택하여 사용하는 것이 가장 이상적이라고 할 수 있다. PK-PD 모델링을 통해 얻은 PD 파라미터 값을 기반으로 시뮬레이션을 하여 다양한 용량 별 시간에 따른 효과의 변화를 예측할 수 있다. 결론적으로, 이 결과를 가지고 우리는 임상에서 알고자 하는 약물의 효과에 대한 질문의 답을 얻을 수 있다.\index{시뮬레이션 / simulation}\index{simulation / 시뮬레이션} -\hypertarget{effect-model}{% -\chapter{다양한 약물효과 모델링}\label{effect-model}} +\chapter{다양한 약물효과 모델링}\label{effect-model} \Large\hfill @@ -5419,13 +5346,11 @@ \chapter{다양한 약물효과 모델링}\label{effect-model}} 약을 투여한 후 그 결과는 효과와 부작용으로 나타날 수 있으며, 다양한 형태로 표현될 수 있기 때문에 약물농도와 효과와의 관계를 설명하는 PD 모델은 PK 모델에 비해 복잡하며, PK/PD 모델링을 위해 PD 데이터 특성뿐만 아니라 PK와의 관계, 질병의 진행 등을 고려하여야 하므로 보다 높은 수준의 모델링 기술이 요구된다. 이 장에서는 약물 효과와 혈중농도와의 관계를 설명하는 PD 모델을 소개한다. -\hypertarget{pd-model}{% -\section{PD 모델의 종류}\label{pd-model}} +\section{PD 모델의 종류}\label{pd-model} PD 모델은 혈중농도와 약효와의 관계를 설명하기 위하여 사용된다. 약효를 설명하는 데이터의 종류 및 특성에 따라 PD 모델을 선택하며, 정확한 모델을 만들기 위해서는 PD 데이터의 특성을 잘 파악하여야 한다. PD 데이터는 혈압, 혈당 및 약물이 결합하는 특정 수용체(receptor)의 농도 변화 등과 같은 연속적인 데이터와 통증점수(pain score), 치료성공(0) 또는 실패 (1) 등과 같은 비연속적인 데이터로 구분될 수 있다. 이 단원에서는 연속적인 데이터를 설명하는 PD 모델의 종류에 대하여 소개한다. -\hypertarget{uxc120uxd615uxbaa8uxb378linear-model}{% -\subsection{선형모델(linear model)}\label{uxc120uxd615uxbaa8uxb378linear-model}} +\subsection{선형모델(linear model)}\label{uxc120uxd615uxbaa8uxb378linear-model} 선형모델은 약효와 약물농도를 일차식으로 설명하는, PD 모델 중 가장 단순한 모델이다. 약물농도와 약효가 단순 비례 또는 반비례 관계에 있어 약물농도 증가에 따라 일정 비율로 약효가 증가 또는 감소하는 경우이다. \begin{equation} @@ -5446,8 +5371,7 @@ \subsection{선형모델(linear model)}\label{uxc120uxd615uxbaa8uxb378linear-mod -\hypertarget{uxb85cuxadf8-uxc120uxd615uxbaa8uxb378log-linear-model}{% -\subsection{로그-선형모델(log-linear model)}\label{uxb85cuxadf8-uxc120uxd615uxbaa8uxb378log-linear-model}} +\subsection{로그-선형모델(log-linear model)}\label{uxb85cuxadf8-uxc120uxd615uxbaa8uxb378log-linear-model} 농도범위가 큰 경우, 약효와 농도와의 관계가 로그-선형모델을 따를 수 있다. 이 경우, 농도(x 축)를 로그로 바꾸어 나타내면 아래와 같다. \begin{equation} @@ -5470,10 +5394,9 @@ \subsection{로그-선형모델(log-linear model)}\label{uxb85cuxadf8-uxc120uxd6 그림 \ref{fig:log-linear-model}의 관찰값을 보면, 측정 농도 내에서 plateau가 보이지 않으며, 선형-로그모델을 이용한 예측선이 E\textsubscript{max} 모델을 이용한 경우보다 고농도에서의 데이터를 더 잘 설명한다. 한가지 고려할 점은, \(E_0 = m \cdot ln(C) + A_0\)로 위 식을 사용하게 되면, 혈중농도가 1이하의 경우 효과가 음수로 나올 수 있으므로 주의하여야 한다. 또한, 선형 모델처럼, 모델 구축에 이용한 농도보다 더 높은 농도에서의 약효 예측(extrapolation)에는 사용할 수 없다. -\hypertarget{emax-model}{% -\subsection{\texorpdfstring{E\textsubscript{max} model}{Emax model}}\label{emax-model}} +\subsection{\texorpdfstring{E\textsubscript{max} model}{Emax model}}\label{emax-model} -약물 반응은 혈중 약물농도와 수용체와 약물간의 결합력에 따라 달라지며, 혈중 약물농도가 증가하면 반응은 그에 비례하여 증가하며, 일정 농도 이상이 되면 반응의 증가폭은 점점 감소하다가 반응의 최대치(R\textsubscript{max})에 도달하게 된다.\footnote{참고로, R\textsubscript{max}는 약효를 설명하는 데이터 즉, 관찰값의 최대치를 말하며, E\textsubscript{max}는 약물농도에 따른 최대약물효과를 말한다.} +약물 반응은 혈중 약물농도와 수용체와 약물간의 결합력에 따라 달라지며, 혈중 약물농도가 증가하면 반응은 그에 비례하여 증가하며, 일정 농도 이상이 되면 반응의 증가폭은 점점 감소하다가 반응의 최대치(R\textsubscript{max})에 도달하게 된다. \footnote{참고로, R\textsubscript{max}는 약효를 설명하는 데이터 즉, 관찰값의 최대치를 말하며, E\textsubscript{max}는 약물농도에 따른 최대약물효과를 말한다.} \begin{equation} E = \frac{E_{max} \cdot [C]}{EC_{50} + [C]} @@ -5602,8 +5525,7 @@ \subsection{\texorpdfstring{E\textsubscript{max} model}{Emax model}}\label{emax- \label{eq:anta-emax-effect} \end{equation} -\hypertarget{sigmoid-emax-model-hill-uxbc29uxc815uxc2dd}{% -\subsection{\texorpdfstring{Sigmoid E\textsubscript{max} model (Hill 방정식)}{Sigmoid Emax model (Hill 방정식)}}\label{sigmoid-emax-model-hill-uxbc29uxc815uxc2dd}} +\subsection{\texorpdfstring{Sigmoid E\textsubscript{max} model (Hill 방정식)}{Sigmoid Emax model (Hill 방정식)}}\label{sigmoid-emax-model-hill-uxbc29uxc815uxc2dd} Sigmoid E\textsubscript{max} model은 여러 결합부위를 가지고 있는 수용체와 약물 간의 관계를 설명하기 위해 사용된다. 약물과 수용체의 1:1 결합을 가정하는 일반적인 E\textsubscript{max} model과 달리 n개의 약물 분자가 수용체의 작용부위와 결합한다. \begin{equation} @@ -5659,14 +5581,12 @@ \subsection{\texorpdfstring{Sigmoid E\textsubscript{max} model (Hill 방정식)} \end{equation} \end{rmdtip} -\hypertarget{pd-uxbaa8uxb378uxc758-uxc801uxc6a9}{% -\section{PD 모델의 적용}\label{pd-uxbaa8uxb378uxc758-uxc801uxc6a9}} +\section{PD 모델의 적용}\label{pd-uxbaa8uxb378uxc758-uxc801uxc6a9} \ref{pd-model}에서 PD 모델의 종류에 대하여 알아보았다. 몇 가지 예를 통하여 데이터의 종류와 상황에 따라 PD 모델을 어떻게 적용할지 살펴보자. -\hypertarget{uxc77cuxbc18uxc801uxc778-imax-model-vs.-sigmoid-imax-model}{% -\subsection{\texorpdfstring{일반적인 I\textsubscript{max} model vs.~Sigmoid I\textsubscript{max} model}{일반적인 Imax model vs.~Sigmoid Imax model}}\label{uxc77cuxbc18uxc801uxc778-imax-model-vs.-sigmoid-imax-model}} +\subsection{\texorpdfstring{일반적인 I\textsubscript{max} model vs.~Sigmoid I\textsubscript{max} model}{일반적인 Imax model vs.~Sigmoid Imax model}}\label{uxc77cuxbc18uxc801uxc778-imax-model-vs.-sigmoid-imax-model} 그림 \ref{fig:sigmoid-imax}은 혈중 약물농도의 변화에 따른 저해반응을 그래프로 나타내었다. 동일한 관찰값을 이용하여 각각 I\textsubscript{max} model과 sigmoid I\textsubscript{max} model을 사용하여 각 파라미터를 추정하고, 예측값을 그려보면, 그림에서 알 수 있듯이, sigmoid I\textsubscript{max} model은 좀 더 유연성을 지니며, 데이터의 곡률을 더 잘 포착한다. 데이터의 특성(약물농도와 반응 관계가 약물의 기전상 1:1의 관계인지 아닌지) 등을 잘 파악하여, 모델 구축의 목적에 맞게 모델을 선정해야 할 것이다. @@ -5681,17 +5601,17 @@ \subsection{\texorpdfstring{일반적인 I\textsubscript{max} model vs.~Sigmoid -\hypertarget{uxb2e4uxc911-uxc57duxbb3cuxacb0uxd569-uxbaa8uxb378multiple-binding-site-model}{% -\subsection{다중 약물결합 모델(multiple binding site model)}\label{uxb2e4uxc911-uxc57duxbb3cuxacb0uxd569-uxbaa8uxb378multiple-binding-site-model}} +\subsection{다중 약물결합 모델(multiple binding site model)}\label{uxb2e4uxc911-uxc57duxbb3cuxacb0uxd569-uxbaa8uxb378multiple-binding-site-model} 약물이 결합하는 결합부위가 여러 개인 경우에 약효(E)는 다음과 같이 나타낼 수 있다. + \begin{equation} [C] + [R] \xrightleftharpoons[k_{-1}]{k_1} [CR] + [C] \xrightleftharpoons[k_{-2}]{k_2} [C2R] -\label{eq:multiplebinding} +\label{eq:multiplebinding3} \end{equation} \begin{equation} @@ -5717,21 +5637,18 @@ \subsection{다중 약물결합 모델(multiple binding site model)}\label{uxb2e -\hypertarget{uxacb0uxb860}{% -\section{결론}\label{uxacb0uxb860}} +\section{결론}\label{uxacb0uxb860-1} 올바른 PD 모델의 선정을 위해서는 무엇보다도 모델 구축에 사용될 데이터의 특성을 잘 파악해야 한다. 작용기전에 따른 약물반응의 관계를 명확하게 알고 있다면, PD 모델 선정이 비교적 쉬울 수 있으나, 그렇지 않은 경우이거나 희박 데이터(sparse data)를 사용할 경우, 잘못된 모델 선정을 통해 오류를 범하지 않도록 주의하여야 한다. 또한, 적절한 PD 모델을 선정하였다 하더라도 혈중농도와 약물반응의 관계에 시간지연 등이 있는지를 고려하여, 궁극적으로 가장 적절한 PK/PD 모델링을 수행해야 할 것이다.\index{sparse data / 희박자료}\index{sparse data / 희박자료} -\hypertarget{delayed-effect}{% -\chapter{지연효과 모델}\label{delayed-effect}} +\chapter{지연효과 모델}\label{delayed-effect} \Large\hfill 김정렬, 임동석 \normalsize -\hypertarget{uxc9c0uxc5f0uxd6a8uxacfc-uxac1cuxc694}{% -\section{지연효과 개요}\label{uxc9c0uxc5f0uxd6a8uxacfc-uxac1cuxc694}} +\section{지연효과 개요}\label{uxc9c0uxc5f0uxd6a8uxacfc-uxac1cuxc694} 약물 투여 시 기대하는 반응의 시간에 따른 양상이 해당 약물의 유효성분 혈중 농도 양상과 유사하게 나타나기도 하지만, 최대 혈중 농도 이후 상당한 시간이 경과한 시점에 최대 반응이 발생하는 경우도 있다. 이러한 지연효과는 투여 약물의 체내 노출을 대변하는 약동학(PK) 측면뿐만 아니라 그 노출에 따른 약리작용을 설명하는 약력학(PD) 측면의 여러 원인으로 발생할 수 있다. @@ -5739,8 +5656,7 @@ \section{지연효과 개요}\label{uxc9c0uxc5f0uxd6a8uxacfc-uxac1cuxc694}} 약물을 경구로 투여하면 투약 시점과 비교 시 혈중 농도가 지연되어 보이는 것처럼 수용체와 같은 약물이 목표로 하는 부위에서의 농도도 혈중 농도에 비해 지연될 수 있다. 그런데 혈중 농도와 달리 목표 부위에서의 농도는 쉽게 측정할 수 없어 이러한 지연 현상을 직접적으로 확인하기 어려운 경우가 대부분이다. 또한 목표 수용체 수준에서의 약물에 의한 조절로 인하여 시간에 따른 바이오마커 변화 양상이 지연되어 관찰될 수 있다. 한편 이러한 바이오마커의 변화가 직접적으로 임상적 변화를 초래하지 못하는 경우도 있다. -\hypertarget{uxc2dcuxac04uxc5d0-uxb530uxb978-pk-pd-uxad00uxacc4}{% -\section{시간에 따른 PK-PD 관계}\label{uxc2dcuxac04uxc5d0-uxb530uxb978-pk-pd-uxad00uxacc4}} +\section{시간에 따른 PK-PD 관계}\label{uxc2dcuxac04uxc5d0-uxb530uxb978-pk-pd-uxad00uxacc4} 시간에 따른 PK-PD 관계가 즉시효과를 보이는 경우, 시간에 따른 농도와 효과간 관계를 도식화하면 최대 농도에서 최대 효과를 보이는 등 변화 양상이 유사하다. 이를 동일한 시점에서의 농도와 효과간 관계로 도식화하면 동일한 농도에서는 동일한 효과를 보이게 된다. 이에 반해, 지연효과를 보이는 약물의 경우 최대 농도와 최대 효과를 보이는 시점간 시간적인 지연이 발생한다. 또한 동일한 농도에서의 효과가 한가지로 정해져 있지 않고 농도가 증가하는 시점과 감소하는 시점에서 각각 다르게 나타나는 현상을 보인다. (그림 \ref{fig:pkpd-relationship}) @@ -5750,7 +5666,7 @@ \section{시간에 따른 PK-PD 관계}\label{uxc2dcuxac04uxc5d0-uxb530uxb978-pk } -\caption{PK와 PD의 관련성 (Gabrielsson \protect\hyperlink{ref-gabrielsson}{2006})}\label{fig:pkpd-relationship} +\caption{PK와 PD의 관련성 (\citeproc{ref-gabrielsson}{Gabrielsson 2006})}\label{fig:pkpd-relationship} \end{figure} @@ -5770,8 +5686,7 @@ \section{시간에 따른 PK-PD 관계}\label{uxc2dcuxac04uxc5d0-uxb530uxb978-pk -\hypertarget{uxd6a8uxacfcuxad6cuxd68d-uxbaa8uxb378}{% -\section{효과구획 모델}\label{uxd6a8uxacfcuxad6cuxd68d-uxbaa8uxb378}} +\section{효과구획 모델}\label{uxd6a8uxacfcuxad6cuxd68d-uxbaa8uxb378} 약물의 체내 노출을 대변하는 농도 중에서 혈중 농도는 쉽게 측정할 수 있는 반면 수용체처럼 약물이 실제 작용을 나타내는 부위에서의 농도는 측정하는데 현실적 제약이 많다. 그런데 직접 측정하지 않았더라도 약물이 작용 부위로 분포한다는 점에 착안하여 이 부위를 가상의 공간인 효과구획으로 설정한 모델을 구축할 수 있으며, 이를 효과구획 모델이라고 한다. 약이 혈액에서 효과구획까지 분포되는데 시간이 걸려서 혈중농도의 변화보다 약효의 변화가 느리게 나타나는 반시계방향 히스테레시스가 발생한다고 설명하는 것이 효과구획 모델이다. 예컨데 아래 그림과 같이 말초정맥에 bolus로 약을 주사했을 때, 약효구획의 약물농도(Ce)는 천천히 변화하며, 그 Ce와 약효와의 관계가 sigmoid Emax를 따를 때 관찰되는 약효의 시간에 따른 변화는 맨 우측과 같게 된다.(그림 \ref{fig:effect-comp}) @@ -5781,7 +5696,7 @@ \section{효과구획 모델}\label{uxd6a8uxacfcuxad6cuxd68d-uxbaa8uxb378}} } -\caption{효과구획의 도식 (C: plasma concentration (Actually observed), Ce: effect compartment concentration (NOT observed, produced), R: response (Actually observed) (Gabrielsson \protect\hyperlink{ref-gabrielsson}{2006})}\label{fig:effect-comp} +\caption{효과구획의 도식 (C: plasma concentration (Actually observed), Ce: effect compartment concentration (NOT observed, produced), R: response (Actually observed) (\citeproc{ref-gabrielsson}{Gabrielsson 2006})}\label{fig:effect-comp} \end{figure} @@ -5791,8 +5706,9 @@ \section{효과구획 모델}\label{uxd6a8uxacfcuxad6cuxd68d-uxbaa8uxb378}} \begin{example} -\protect\hypertarget{exm:effect-model-code}{}{\label{exm:effect-model-code} }효과구획 모델 코드: PREDPP Linear Model (ADVAN3, Two compartment) (Beal \protect\hyperlink{ref-nonmem}{2018})\index{ADVAN3}\index{PRED}\index{PREDPP} +\protect\hypertarget{exm:effect-model-code}{}\label{exm:effect-model-code}효과구획 모델 코드: PREDPP Linear Model (ADVAN3, Two compartment) (\citeproc{ref-nonmem}{Beal 2018})\index{ADVAN3}\index{PRED}\index{PREDPP} \end{example} + \vspace{-5ex} \begin{Shaded} @@ -5818,8 +5734,9 @@ \section{효과구획 모델}\label{uxd6a8uxacfcuxad6cuxd68d-uxbaa8uxb378}} 또다른 방식으로는 아래 코드 \ref{exm:effect-comp-advan6}와 같이 중심구획에서 약물이 제거되는 속도는 K10으로 표현되지만, 중심구획의 약물의 양이나 농도가 효과구획으로 약물이 분포하는 것으로 인해 영향을 받는 현상이 아예 일어나지 않도록 해 놓고(DADT(1)의 수식에 D10이외에 다른 속도상수가 나타나지 않고 있음)대신 효과구획의 약물농도는 K20이라는 속도상수에 의해 중심구획으로부터 들어와서 올라가고, 같은 속도상수로 제거된다고 가정한다. 위에 예시된 코드와의 또다른 차이는 효과구획에서 약이 중심구획으로 되돌아가지 않고 아예 사라져 버린다고 가정하는 것인데,이는 결국 중심구획의 약물농도에 어떤 영향도 끼치지 않는다는 가정에 충실하기 위한 것이다. 아래 코드의 A(2)는 효과구획의 약물의 양이 아니라 농도임을 유의해야 한다. \index{D1} \begin{example} -\protect\hypertarget{exm:effect-comp-advan6}{}{\label{exm:effect-comp-advan6} }효과구획 모델 코드: Using General Nonlinear model (ADVAN6) (Beal \protect\hyperlink{ref-nonmem}{2018})\index{ADVAN6} +\protect\hypertarget{exm:effect-comp-advan6}{}\label{exm:effect-comp-advan6}효과구획 모델 코드: Using General Nonlinear model (ADVAN6) (\citeproc{ref-nonmem}{Beal 2018})\index{ADVAN6} \end{example} + \vspace{-5ex} \begin{Shaded} @@ -5837,7 +5754,7 @@ \section{효과구획 모델}\label{uxd6a8uxacfcuxad6cuxd68d-uxbaa8uxb378}} \NormalTok{ EMAX= THETA(}\DecValTok{5}\NormalTok{)}\DataTypeTok{*EXP}\NormalTok{(ETA(}\DecValTok{5}\NormalTok{))} \DataTypeTok{$DES} \NormalTok{ DADT(}\DecValTok{1}\NormalTok{)={-}K10}\DataTypeTok{*A}\NormalTok{(}\DecValTok{1}\NormalTok{) ; NOTE NO LOSS TO A(}\DecValTok{2}\NormalTok{)} -\NormalTok{ DADT(}\DecValTok{2}\NormalTok{)= K20*(A(}\DecValTok{1}\NormalTok{)/V1}\KeywordTok{{-}A}\NormalTok{(}\DecValTok{2}\NormalTok{)) ; A(}\DecValTok{2}\NormalTok{) IS CE} +\NormalTok{ DADT(}\DecValTok{2}\NormalTok{)= K20*(A(}\DecValTok{1}\NormalTok{)/V1}\OtherTok{{-}A}\NormalTok{(}\DecValTok{2}\NormalTok{)) ; A(}\DecValTok{2}\NormalTok{) IS CE} \DataTypeTok{$ERROR} \NormalTok{ IF (CMT.EQ.}\DecValTok{2}\NormalTok{) THEN} \NormalTok{ Y = EMAX}\DataTypeTok{*F}\NormalTok{/(C50+F)}\DataTypeTok{*EXP}\NormalTok{(ERR(}\DecValTok{2}\NormalTok{)) ; DV = EFFECT IF CMT=}\DecValTok{2} @@ -5847,8 +5764,7 @@ \section{효과구획 모델}\label{uxd6a8uxacfcuxad6cuxd68d-uxbaa8uxb378}} \end{Highlighting} \end{Shaded} -\hypertarget{uxc9c1uxc811uxd6a8uxacfc-vs.-uxac04uxc811uxd6a8uxacfc}{% -\section{직접효과 vs.~간접효과}\label{uxc9c1uxc811uxd6a8uxacfc-vs.-uxac04uxc811uxd6a8uxacfc}} +\section{직접효과 vs.~간접효과}\label{uxc9c1uxc811uxd6a8uxacfc-vs.-uxac04uxc811uxd6a8uxacfc} \index{직접 효과 모델 / direct-effect model}\index{direct-effect model / 직접 효과 모델} @@ -5860,13 +5776,12 @@ \section{직접효과 vs.~간접효과}\label{uxc9c1uxc811uxd6a8uxacfc-vs.-uxac0 } -\caption{직접효과와 간접효과의 모식도 (Gabrielsson \protect\hyperlink{ref-gabrielsson}{2006})\index{직접 효과 모델 / direct-effect model}\index{direct-effect model / 직접 효과 모델}}\label{fig:direct-indirect} +\caption{직접효과와 간접효과의 모식도 (\citeproc{ref-gabrielsson}{Gabrielsson 2006})\index{직접 효과 모델 / direct-effect model}\index{direct-effect model / 직접 효과 모델}}\label{fig:direct-indirect} \end{figure} -\hypertarget{turnover-uxbaa8uxb378}{% -\section{Turnover 모델}\label{turnover-uxbaa8uxb378}} +\section{Turnover 모델}\label{turnover-uxbaa8uxb378} 약물 투여 후 관찰된 반응 자체가 아닌 이를 조절하는 대상이 약물의 직접적인 목표이고 이를 통해 궁극적으로 반응이 증가되거나 감소되는 간접효과 양상은 turnover 모델로 설명할 수 있다. 아래 미분방정식에서 R은 특정 시점에서 관찰된 반응을 뜻하고, Kin은 반응을 증가시키는 속도를 설명하는 0차 속도상수이며, kout은 반응을 감소시키는데 관여하는 1차 속도상수를 의미한다. \begin{equation} @@ -5882,13 +5797,12 @@ \section{Turnover 모델}\label{turnover-uxbaa8uxb378}} } -\caption{Turnover 모델(간접효과 모델)의 네 가지 (Sharma and Jusko \protect\hyperlink{ref-sharma1998characteristics}{1998})}\label{fig:turnover-4} +\caption{Turnover 모델(간접효과 모델)의 네 가지 (\citeproc{ref-sharma1998characteristics}{Sharma and Jusko 1998})}\label{fig:turnover-4} \end{figure} -\hypertarget{inhibition-on-production-model-i}{% -\subsection{Inhibition on production (Model I)}\label{inhibition-on-production-model-i}} +\subsection{Inhibition on production (Model I)}\label{inhibition-on-production-model-i} 관찰된 반응이 증가되는 걸 약물이 억제하는 경우를 말하며, H2 수용체 길항제에 의한 위산분비 억제를 예로 들 수 있다. 생리적으로 H2 수용체 자극에 의해 위산 분비가 증가되는데 약물이 이러한 H2 수용체를 통한 상호작용을 차단함으로써 궁극적으로 위산 분비를 억제하게 된다. 이런 간접효과 모델은 반응 증가와 관련된 Kin에 억제 함수가 적용된 식으로 표현될 수 있고 아래와 같은 NONMEM 코드를 사용할 수 있다. (그림 \ref{fig:model-i}) \begin{equation} @@ -5914,13 +5828,12 @@ \subsection{Inhibition on production (Model I)}\label{inhibition-on-production-m } -\caption{Inhibition on production (Sharma and Jusko \protect\hyperlink{ref-sharma1998characteristics}{1998})}\label{fig:model-i} +\caption{Inhibition on production (\citeproc{ref-sharma1998characteristics}{Sharma and Jusko 1998})}\label{fig:model-i} \end{figure} -\hypertarget{inhibition-on-loss-model-ii}{% -\subsection{Inhibition on loss (Model II)}\label{inhibition-on-loss-model-ii}} +\subsection{Inhibition on loss (Model II)}\label{inhibition-on-loss-model-ii} 관찰된 반응이 감소되는 걸 약물이 억제하는 경우를 말하며, 혈중 acetylcholine 농도 증가를 위해 cholinesterase 길항제를 투여하는 것이 이에 해당된다. 신경전달물질 역할을 하는 acetylcholine은 cholinesterase에 의해 분해되지만, 이 분해 효소의 기능을 억제함으로써 acetylcholine 농도를 높일 수 있다. 이런 간접효과 모델은 반응 감소와 관련된 Kout에 억제 함수가 적용된 식으로 표현될 수 있고 아래와 같은 NONMEM 코드를 사용할 수 있다. (그림 \ref{fig:model-ii}) \begin{equation} @@ -5946,13 +5859,12 @@ \subsection{Inhibition on loss (Model II)}\label{inhibition-on-loss-model-ii}} } -\caption{Inhibition on loss (Sharma and Jusko \protect\hyperlink{ref-sharma1998characteristics}{1998})}\label{fig:model-ii} +\caption{Inhibition on loss (\citeproc{ref-sharma1998characteristics}{Sharma and Jusko 1998})}\label{fig:model-ii} \end{figure} -\hypertarget{stimulation-on-production-model-iii}{% -\subsection{Stimulation on production (Model III)}\label{stimulation-on-production-model-iii}} +\subsection{Stimulation on production (Model III)}\label{stimulation-on-production-model-iii} 관찰된 반응이 증가되는 걸 약물이 촉진하는 경우를 말하며, erythropoietin이 혈중 적혈구의 전구물질을 증가시켜 궁극적으로 적혈구를 증가시키는 현상이 이에 부합한다. 실제 관측한 것은 적혈구 수치인데 erythropoietin은 직접적으로 이 수치를 증가시키는 것이 아니라, 그 전구물질의 양을 증가시킴으로써 궁극적으로 적혈구 수치를 증가시키게 된다. 이런 간접효과 모델은 반응 증가와 관련된 Kin에 촉진 함수가 적용된 식으로 표현될 수 있고 아래와 같은 NONMEM 코드를 사용할 수 있다. (그림 \ref{fig:model-iii}) \begin{equation} @@ -5978,13 +5890,12 @@ \subsection{Stimulation on production (Model III)}\label{stimulation-on-producti } -\caption{Stimulation on production (Sharma and Jusko \protect\hyperlink{ref-sharma1998characteristics}{1998})}\label{fig:model-iii} +\caption{Stimulation on production (\citeproc{ref-sharma1998characteristics}{Sharma and Jusko 1998})}\label{fig:model-iii} \end{figure} -\hypertarget{stimulation-on-loss-model-iv}{% -\subsection{Stimulation on loss (Model IV)}\label{stimulation-on-loss-model-iv}} +\subsection{Stimulation on loss (Model IV)}\label{stimulation-on-loss-model-iv} 관찰된 반응이 감소되는 걸 약물이 촉진하는 경우를 말하며, PPARγ 작용제 투여로 인한 혈당 감소가 이에 해당된다고 볼 수 있다. PPARγ 주요 약리작용은 혈당을 직접 감소시키는 insulin의 작용을 증강시키는 것이다. 이런 간접효과 모델은 반응 감소와 관련된 Kout에 촉진 함수가 적용된 식으로 표현될 수 있고 아래와 같은 NONMEM 코드를 사용할 수 있다. (그림 \ref{fig:model-iv}) \begin{equation} @@ -6010,13 +5921,12 @@ \subsection{Stimulation on loss (Model IV)}\label{stimulation-on-loss-model-iv}} } -\caption{Stimulation on loss (Sharma and Jusko \protect\hyperlink{ref-sharma1998characteristics}{1998})}\label{fig:model-iv} +\caption{Stimulation on loss (\citeproc{ref-sharma1998characteristics}{Sharma and Jusko 1998})}\label{fig:model-iv} \end{figure} -\hypertarget{uxae30uxc800uxac12}{% -\subsection{기저값}\label{uxae30uxc800uxac12}} +\subsection{기저값}\label{uxae30uxc800uxac12} 간접효과 모델에서 약물 투여 전 상태에서의 반응을 기저값으로 간주하며, 반응이 증가하거나 감소하는 정도가 동일하여 겉보기에는 변화가 없는 것처럼 보인다. 앞서 언급한 간접효과 미분방정식으로부터 유도한 기저값은 아래와 같다. @@ -6029,41 +5939,39 @@ \subsection{기저값}\label{uxae30uxc800uxac12}} \cleardoublepage -\hypertarget{appendix-uxbcc4uxcca8}{% -\appendix \addcontentsline{toc}{chapter}{\appendixname}} +\appendix \addcontentsline{toc}{chapter}{\appendixname} -\hypertarget{nonmem-output}{% -\chapter{NONMEM 실행결과}\label{nonmem-output}} +\chapter{NONMEM 실행결과}\label{nonmem-output} -\protect\hyperlink{cov}{14장 NONMEM의 \$COVARIANCE}의 \ref{cov-example}에서 언급된 NONMEM 실행결과를 별첨으로 수록하였다. 지면 관계상 작은 글자 크기로 수록되었으나 웹\footnote{\url{http://pipet.or.kr/books/basic/nonmem-output.html}}에서 동일한 내용을 확인할 수 있다. +\hyperref[cov]{14장 NONMEM의 \$COVARIANCE}의 \ref{cov-example}에서 언급된 NONMEM 실행결과를 별첨으로 수록하였다. 지면 관계상 작은 글자 크기로 수록되었으나 웹\footnote{\url{http://pipet.or.kr/books/basic/nonmem-output.html}}에서 동일한 내용을 확인할 수 있다. \tiny \begin{Shaded} \begin{Highlighting}[] -\OperatorTok{**}\ErrorTok{*****************************************************************************************************} -\ErrorTok{********************}\StringTok{ }\ErrorTok{***} -\ErrorTok{********************}\StringTok{ }\NormalTok{FIRST ORDER }\OperatorTok{**}\ErrorTok{*} -\ErrorTok{********************}\StringTok{ }\NormalTok{STANDARD ERROR OF ESTIMATE }\OperatorTok{**}\ErrorTok{*} -\ErrorTok{********************}\StringTok{ }\ErrorTok{***} +\SpecialCharTok{**}\ErrorTok{*****************************************************************************************************} +\ErrorTok{********************} \ErrorTok{***} +\ErrorTok{********************}\NormalTok{ FIRST ORDER }\SpecialCharTok{**}\ErrorTok{*} +\ErrorTok{********************}\NormalTok{ STANDARD ERROR OF ESTIMATE }\SpecialCharTok{**}\ErrorTok{*} +\ErrorTok{********************} \ErrorTok{***} \ErrorTok{*******************************************************************************************************} -\StringTok{ } -\StringTok{ } -\StringTok{ } -\NormalTok{THETA }\OperatorTok{{-}}\StringTok{ }\NormalTok{VECTOR OF FIXED EFFECTS PARAMETERS }\OperatorTok{**}\ErrorTok{*******}\StringTok{ } -\StringTok{ } -\StringTok{ } -\StringTok{ }\NormalTok{TH }\DecValTok{1}\NormalTok{ TH }\DecValTok{2}\NormalTok{ TH }\DecValTok{3} + + + +\NormalTok{THETA }\SpecialCharTok{{-}}\NormalTok{ VECTOR OF FIXED EFFECTS PARAMETERS }\SpecialCharTok{**}\ErrorTok{*******} + + +\NormalTok{ TH }\DecValTok{1}\NormalTok{ TH }\DecValTok{2}\NormalTok{ TH }\DecValTok{3} \FloatTok{6.41E{-}01} \FloatTok{1.68E+00} \FloatTok{2.31E{-}02} -\NormalTok{OMEGA }\OperatorTok{{-}}\StringTok{ }\NormalTok{COV MATRIX FOR RANDOM EFFECTS }\OperatorTok{{-}}\StringTok{ }\NormalTok{ETAS }\OperatorTok{**}\ErrorTok{******}\StringTok{ } -\StringTok{ } -\StringTok{ } -\StringTok{ }\NormalTok{ETA1 ETA2 ETA3 } +\NormalTok{OMEGA }\SpecialCharTok{{-}}\NormalTok{ COV MATRIX FOR RANDOM EFFECTS }\SpecialCharTok{{-}}\NormalTok{ ETAS }\SpecialCharTok{**}\ErrorTok{******} + + +\NormalTok{ ETA1 ETA2 ETA3 } \NormalTok{ETA1 }\FloatTok{4.21E{-}01} @@ -6073,10 +5981,10 @@ \chapter{NONMEM 실행결과}\label{nonmem-output}} -\NormalTok{SIGMA }\OperatorTok{{-}}\StringTok{ }\NormalTok{COV MATRIX FOR RANDOM EFFECTS }\OperatorTok{{-}}\StringTok{ }\NormalTok{EPSILONS }\OperatorTok{**}\ErrorTok{**}\StringTok{ } -\StringTok{ } -\StringTok{ } -\StringTok{ }\NormalTok{EPS1 EPS2 } +\NormalTok{SIGMA }\SpecialCharTok{{-}}\NormalTok{ COV MATRIX FOR RANDOM EFFECTS }\SpecialCharTok{{-}}\NormalTok{ EPSILONS }\SpecialCharTok{**}\ErrorTok{**} + + +\NormalTok{ EPS1 EPS2 } \NormalTok{EPS1 }\FloatTok{3.58E{-}03} @@ -6085,10 +5993,10 @@ \chapter{NONMEM 실행결과}\label{nonmem-output}} -\NormalTok{OMEGA }\OperatorTok{{-}}\StringTok{ }\NormalTok{CORR MATRIX FOR RANDOM EFFECTS }\OperatorTok{{-}}\StringTok{ }\NormalTok{ETAS }\OperatorTok{**}\ErrorTok{*****}\StringTok{ } -\StringTok{ } -\StringTok{ } -\StringTok{ }\NormalTok{ETA1 ETA2 ETA3 } +\NormalTok{OMEGA }\SpecialCharTok{{-}}\NormalTok{ CORR MATRIX FOR RANDOM EFFECTS }\SpecialCharTok{{-}}\NormalTok{ ETAS }\SpecialCharTok{**}\ErrorTok{*****} + + +\NormalTok{ ETA1 ETA2 ETA3 } \NormalTok{ETA1 }\FloatTok{1.92E{-}01} @@ -6098,25 +6006,25 @@ \chapter{NONMEM 실행결과}\label{nonmem-output}} -\NormalTok{SIGMA }\OperatorTok{{-}}\StringTok{ }\NormalTok{CORR MATRIX FOR RANDOM EFFECTS }\OperatorTok{{-}}\StringTok{ }\NormalTok{EPSILONS }\OperatorTok{**}\ErrorTok{*}\StringTok{ } -\StringTok{ } -\StringTok{ } -\StringTok{ }\NormalTok{EPS1 EPS2 } +\NormalTok{SIGMA }\SpecialCharTok{{-}}\NormalTok{ CORR MATRIX FOR RANDOM EFFECTS }\SpecialCharTok{{-}}\NormalTok{ EPSILONS }\SpecialCharTok{**}\ErrorTok{*} + + +\NormalTok{ EPS1 EPS2 } \NormalTok{EPS1 }\FloatTok{1.63E{-}02} \NormalTok{EPS2 ......... }\FloatTok{6.88E{-}02} -\OperatorTok{**}\ErrorTok{*****************************************************************************************************} -\ErrorTok{********************}\StringTok{ }\ErrorTok{***} -\ErrorTok{********************}\StringTok{ }\NormalTok{FIRST ORDER }\OperatorTok{**}\ErrorTok{*} -\ErrorTok{********************}\StringTok{ }\NormalTok{COVARIANCE MATRIX OF ESTIMATE }\OperatorTok{**}\ErrorTok{*} -\ErrorTok{********************}\StringTok{ }\ErrorTok{***} +\SpecialCharTok{**}\ErrorTok{*****************************************************************************************************} +\ErrorTok{********************} \ErrorTok{***} +\ErrorTok{********************}\NormalTok{ FIRST ORDER }\SpecialCharTok{**}\ErrorTok{*} +\ErrorTok{********************}\NormalTok{ COVARIANCE MATRIX OF ESTIMATE }\SpecialCharTok{**}\ErrorTok{*} +\ErrorTok{********************} \ErrorTok{***} \ErrorTok{*******************************************************************************************************} -\StringTok{ } -\StringTok{ } -\StringTok{ }\NormalTok{TH }\DecValTok{1}\NormalTok{ TH }\DecValTok{2}\NormalTok{ TH }\DecValTok{3}\NormalTok{ OM11 OM12 OM13 OM22 OM23 OM33 SG} + + +\NormalTok{ TH }\DecValTok{1}\NormalTok{ TH }\DecValTok{2}\NormalTok{ TH }\DecValTok{3}\NormalTok{ OM11 OM12 OM13 OM22 OM23 OM33 SG} \NormalTok{TH }\DecValTok{1} \FloatTok{4.11E{-}01} @@ -6127,32 +6035,32 @@ \chapter{NONMEM 실행결과}\label{nonmem-output}} \NormalTok{OM11 }\FloatTok{2.06E{-}01} \FloatTok{3.37E{-}01} \FloatTok{1.63E{-}03} \FloatTok{1.77E{-}01} -\NormalTok{OM12 }\FloatTok{2.01E{-}03} \FloatTok{3.48E{-}02} \FloatTok{{-}1.04E{-}03} \FloatTok{1.95E{-}02} \FloatTok{6.75E{-}03} +\NormalTok{OM12 }\FloatTok{2.01E{-}03} \FloatTok{3.48E{-}02} \SpecialCharTok{{-}}\FloatTok{1.04E{-}03} \FloatTok{1.95E{-}02} \FloatTok{6.75E{-}03} -\NormalTok{OM13 }\FloatTok{1.22E{-}01} \FloatTok{1.49E{-}01} \FloatTok{7.11E{-}03} \FloatTok{5.75E{-}02} \FloatTok{{-}1.01E{-}02} \FloatTok{1.16E{-}01} +\NormalTok{OM13 }\FloatTok{1.22E{-}01} \FloatTok{1.49E{-}01} \FloatTok{7.11E{-}03} \FloatTok{5.75E{-}02} \SpecialCharTok{{-}}\FloatTok{1.01E{-}02} \FloatTok{1.16E{-}01} -\NormalTok{OM22 }\FloatTok{{-}2.19E{-}03} \FloatTok{1.28E{-}02} \FloatTok{{-}2.50E{-}04} \FloatTok{3.21E{-}03} \FloatTok{1.50E{-}03} \FloatTok{{-}2.83E{-}03} \FloatTok{3.92E{-}04} +\NormalTok{OM22 }\SpecialCharTok{{-}}\FloatTok{2.19E{-}03} \FloatTok{1.28E{-}02} \SpecialCharTok{{-}}\FloatTok{2.50E{-}04} \FloatTok{3.21E{-}03} \FloatTok{1.50E{-}03} \SpecialCharTok{{-}}\FloatTok{2.83E{-}03} \FloatTok{3.92E{-}04} \NormalTok{OM23 }\FloatTok{1.00E{-}03} \FloatTok{2.38E{-}02} \FloatTok{6.31E{-}05} \FloatTok{4.21E{-}03} \FloatTok{8.56E{-}04} \FloatTok{3.12E{-}03} \FloatTok{2.32E{-}04} \FloatTok{5.31E{-}04} -\NormalTok{OM33 }\FloatTok{6.70E{-}02} \FloatTok{5.74E{-}02} \FloatTok{6.22E{-}03} \FloatTok{1.80E{-}02} \FloatTok{{-}1.31E{-}02} \FloatTok{9.40E{-}02} \FloatTok{{-}3.27E{-}03} \FloatTok{1.87E{-}03} \FloatTok{8.38E{-}02} +\NormalTok{OM33 }\FloatTok{6.70E{-}02} \FloatTok{5.74E{-}02} \FloatTok{6.22E{-}03} \FloatTok{1.80E{-}02} \SpecialCharTok{{-}}\FloatTok{1.31E{-}02} \FloatTok{9.40E{-}02} \SpecialCharTok{{-}}\FloatTok{3.27E{-}03} \FloatTok{1.87E{-}03} \FloatTok{8.38E{-}02} -\NormalTok{SG11 }\FloatTok{1.05E{-}03} \FloatTok{1.81E{-}03} \FloatTok{5.81E{-}05} \FloatTok{5.14E{-}04} \FloatTok{{-}7.52E{-}05} \FloatTok{9.77E{-}04} \FloatTok{{-}2.05E{-}05} \FloatTok{2.79E{-}05} \FloatTok{8.05E{-}04} \FloatTok{1.28}\NormalTok{E} +\NormalTok{SG11 }\FloatTok{1.05E{-}03} \FloatTok{1.81E{-}03} \FloatTok{5.81E{-}05} \FloatTok{5.14E{-}04} \SpecialCharTok{{-}}\FloatTok{7.52E{-}05} \FloatTok{9.77E{-}04} \SpecialCharTok{{-}}\FloatTok{2.05E{-}05} \FloatTok{2.79E{-}05} \FloatTok{8.05E{-}04} \FloatTok{1.28}\NormalTok{E} \NormalTok{SG12 ......... ......... ......... ......... ......... ......... ......... ......... ......... ......} -\NormalTok{SG22 }\FloatTok{{-}4.97E{-}03} \FloatTok{{-}9.95E{-}03} \FloatTok{{-}4.79E{-}04} \FloatTok{{-}1.01E{-}03} \FloatTok{9.53E{-}04} \FloatTok{{-}3.86E{-}03} \FloatTok{1.81E{-}04} \FloatTok{2.20E{-}04} \FloatTok{{-}3.40E{-}03} \FloatTok{{-}2.82}\NormalTok{E} +\NormalTok{SG22 }\SpecialCharTok{{-}}\FloatTok{4.97E{-}03} \SpecialCharTok{{-}}\FloatTok{9.95E{-}03} \SpecialCharTok{{-}}\FloatTok{4.79E{-}04} \SpecialCharTok{{-}}\FloatTok{1.01E{-}03} \FloatTok{9.53E{-}04} \SpecialCharTok{{-}}\FloatTok{3.86E{-}03} \FloatTok{1.81E{-}04} \FloatTok{2.20E{-}04} \SpecialCharTok{{-}}\FloatTok{3.40E{-}03} \SpecialCharTok{{-}}\FloatTok{2.82}\NormalTok{E} -\OperatorTok{**}\ErrorTok{*****************************************************************************************************} -\ErrorTok{********************}\StringTok{ }\ErrorTok{***} -\ErrorTok{********************}\StringTok{ }\NormalTok{FIRST ORDER }\OperatorTok{**}\ErrorTok{*} -\ErrorTok{********************}\StringTok{ }\NormalTok{CORRELATION MATRIX OF ESTIMATE }\OperatorTok{**}\ErrorTok{*} -\ErrorTok{********************}\StringTok{ }\ErrorTok{***} +\SpecialCharTok{**}\ErrorTok{*****************************************************************************************************} +\ErrorTok{********************} \ErrorTok{***} +\ErrorTok{********************}\NormalTok{ FIRST ORDER }\SpecialCharTok{**}\ErrorTok{*} +\ErrorTok{********************}\NormalTok{ CORRELATION MATRIX OF ESTIMATE }\SpecialCharTok{**}\ErrorTok{*} +\ErrorTok{********************} \ErrorTok{***} \ErrorTok{*******************************************************************************************************} -\StringTok{ } -\StringTok{ } -\StringTok{ }\NormalTok{TH }\DecValTok{1}\NormalTok{ TH }\DecValTok{2}\NormalTok{ TH }\DecValTok{3}\NormalTok{ OM11 OM12 OM13 OM22 OM23 OM33 SG} + + +\NormalTok{ TH }\DecValTok{1}\NormalTok{ TH }\DecValTok{2}\NormalTok{ TH }\DecValTok{3}\NormalTok{ OM11 OM12 OM13 OM22 OM23 OM33 SG} \NormalTok{TH }\DecValTok{1} \FloatTok{6.41E{-}01} @@ -6163,142 +6071,142 @@ \chapter{NONMEM 실행결과}\label{nonmem-output}} \NormalTok{OM11 }\FloatTok{7.63E{-}01} \FloatTok{4.76E{-}01} \FloatTok{1.68E{-}01} \FloatTok{4.21E{-}01} -\NormalTok{OM12 }\FloatTok{3.81E{-}02} \FloatTok{2.52E{-}01} \FloatTok{{-}5.49E{-}01} \FloatTok{5.64E{-}01} \FloatTok{8.22E{-}02} +\NormalTok{OM12 }\FloatTok{3.81E{-}02} \FloatTok{2.52E{-}01} \SpecialCharTok{{-}}\FloatTok{5.49E{-}01} \FloatTok{5.64E{-}01} \FloatTok{8.22E{-}02} -\NormalTok{OM13 }\FloatTok{5.57E{-}01} \FloatTok{2.60E{-}01} \FloatTok{9.06E{-}01} \FloatTok{4.02E{-}01} \FloatTok{{-}3.61E{-}01} \FloatTok{3.40E{-}01} +\NormalTok{OM13 }\FloatTok{5.57E{-}01} \FloatTok{2.60E{-}01} \FloatTok{9.06E{-}01} \FloatTok{4.02E{-}01} \SpecialCharTok{{-}}\FloatTok{3.61E{-}01} \FloatTok{3.40E{-}01} -\NormalTok{OM22 }\FloatTok{{-}1.73E{-}01} \FloatTok{3.83E{-}01} \FloatTok{{-}5.48E{-}01} \FloatTok{3.85E{-}01} \FloatTok{9.24E{-}01} \FloatTok{{-}4.19E{-}01} \FloatTok{1.98E{-}02} +\NormalTok{OM22 }\SpecialCharTok{{-}}\FloatTok{1.73E{-}01} \FloatTok{3.83E{-}01} \SpecialCharTok{{-}}\FloatTok{5.48E{-}01} \FloatTok{3.85E{-}01} \FloatTok{9.24E{-}01} \SpecialCharTok{{-}}\FloatTok{4.19E{-}01} \FloatTok{1.98E{-}02} \NormalTok{OM23 }\FloatTok{6.79E{-}02} \FloatTok{6.14E{-}01} \FloatTok{1.19E{-}01} \FloatTok{4.35E{-}01} \FloatTok{4.52E{-}01} \FloatTok{3.98E{-}01} \FloatTok{5.09E{-}01} \FloatTok{2.30E{-}02} -\NormalTok{OM33 }\FloatTok{3.61E{-}01} \FloatTok{1.18E{-}01} \FloatTok{9.32E{-}01} \FloatTok{1.48E{-}01} \FloatTok{{-}5.50E{-}01} \FloatTok{9.54E{-}01} \FloatTok{{-}5.70E{-}01} \FloatTok{2.80E{-}01} \FloatTok{2.89E{-}01} +\NormalTok{OM33 }\FloatTok{3.61E{-}01} \FloatTok{1.18E{-}01} \FloatTok{9.32E{-}01} \FloatTok{1.48E{-}01} \SpecialCharTok{{-}}\FloatTok{5.50E{-}01} \FloatTok{9.54E{-}01} \SpecialCharTok{{-}}\FloatTok{5.70E{-}01} \FloatTok{2.80E{-}01} \FloatTok{2.89E{-}01} -\NormalTok{SG11 }\FloatTok{4.58E{-}01} \FloatTok{3.00E{-}01} \FloatTok{7.04E{-}01} \FloatTok{3.42E{-}01} \FloatTok{{-}2.56E{-}01} \FloatTok{8.02E{-}01} \FloatTok{{-}2.90E{-}01} \FloatTok{3.38E{-}01} \FloatTok{7.78E{-}01} \FloatTok{3.58}\NormalTok{E} +\NormalTok{SG11 }\FloatTok{4.58E{-}01} \FloatTok{3.00E{-}01} \FloatTok{7.04E{-}01} \FloatTok{3.42E{-}01} \SpecialCharTok{{-}}\FloatTok{2.56E{-}01} \FloatTok{8.02E{-}01} \SpecialCharTok{{-}}\FloatTok{2.90E{-}01} \FloatTok{3.38E{-}01} \FloatTok{7.78E{-}01} \FloatTok{3.58}\NormalTok{E} \NormalTok{SG12 ......... ......... ......... ......... ......... ......... ......... ......... ......... ......} -\NormalTok{SG22 }\FloatTok{{-}2.42E{-}01} \FloatTok{{-}1.84E{-}01} \FloatTok{{-}6.47E{-}01} \FloatTok{{-}7.52E{-}02} \FloatTok{3.61E{-}01} \FloatTok{{-}3.54E{-}01} \FloatTok{2.84E{-}01} \FloatTok{2.97E{-}01} \FloatTok{{-}3.66E{-}01} \FloatTok{{-}2.46}\NormalTok{E} +\NormalTok{SG22 }\SpecialCharTok{{-}}\FloatTok{2.42E{-}01} \SpecialCharTok{{-}}\FloatTok{1.84E{-}01} \SpecialCharTok{{-}}\FloatTok{6.47E{-}01} \SpecialCharTok{{-}}\FloatTok{7.52E{-}02} \FloatTok{3.61E{-}01} \SpecialCharTok{{-}}\FloatTok{3.54E{-}01} \FloatTok{2.84E{-}01} \FloatTok{2.97E{-}01} \SpecialCharTok{{-}}\FloatTok{3.66E{-}01} \SpecialCharTok{{-}}\FloatTok{2.46}\NormalTok{E} -\OperatorTok{**}\ErrorTok{*****************************************************************************************************} -\ErrorTok{********************}\StringTok{ }\ErrorTok{***} -\ErrorTok{********************}\StringTok{ }\NormalTok{FIRST ORDER }\OperatorTok{**}\ErrorTok{*} -\ErrorTok{********************}\StringTok{ }\NormalTok{INVERSE COVARIANCE MATRIX OF ESTIMATE }\OperatorTok{**}\ErrorTok{*} -\ErrorTok{********************}\StringTok{ }\ErrorTok{***} +\SpecialCharTok{**}\ErrorTok{*****************************************************************************************************} +\ErrorTok{********************} \ErrorTok{***} +\ErrorTok{********************}\NormalTok{ FIRST ORDER }\SpecialCharTok{**}\ErrorTok{*} +\ErrorTok{********************}\NormalTok{ INVERSE COVARIANCE MATRIX OF ESTIMATE }\SpecialCharTok{**}\ErrorTok{*} +\ErrorTok{********************} \ErrorTok{***} \ErrorTok{*******************************************************************************************************} -\StringTok{ } -\StringTok{ } -\StringTok{ }\NormalTok{TH }\DecValTok{1}\NormalTok{ TH }\DecValTok{2}\NormalTok{ TH }\DecValTok{3}\NormalTok{ OM11 OM12 OM13 OM22 OM23 OM33 SG} + + +\NormalTok{ TH }\DecValTok{1}\NormalTok{ TH }\DecValTok{2}\NormalTok{ TH }\DecValTok{3}\NormalTok{ OM11 OM12 OM13 OM22 OM23 OM33 SG} \NormalTok{TH }\DecValTok{1} \FloatTok{1.06E+02} -\NormalTok{TH }\DecValTok{2} \FloatTok{{-}6.86E+01} \FloatTok{5.80E+01} +\NormalTok{TH }\DecValTok{2} \SpecialCharTok{{-}}\FloatTok{6.86E+01} \FloatTok{5.80E+01} -\NormalTok{TH }\DecValTok{3} \FloatTok{6.45E+03} \FloatTok{{-}4.88E+03} \FloatTok{5.90E+05} +\NormalTok{TH }\DecValTok{3} \FloatTok{6.45E+03} \SpecialCharTok{{-}}\FloatTok{4.88E+03} \FloatTok{5.90E+05} -\NormalTok{OM11 }\FloatTok{3.36E+02} \FloatTok{{-}3.02E+02} \FloatTok{2.70E+04} \FloatTok{1.68E+03} +\NormalTok{OM11 }\FloatTok{3.36E+02} \SpecialCharTok{{-}}\FloatTok{3.02E+02} \FloatTok{2.70E+04} \FloatTok{1.68E+03} -\NormalTok{OM12 }\FloatTok{{-}2.55E+03} \FloatTok{2.18E+03} \FloatTok{{-}1.89E+05} \FloatTok{{-}1.17E+04} \FloatTok{8.48E+04} +\NormalTok{OM12 }\SpecialCharTok{{-}}\FloatTok{2.55E+03} \FloatTok{2.18E+03} \SpecialCharTok{{-}}\FloatTok{1.89E+05} \SpecialCharTok{{-}}\FloatTok{1.17E+04} \FloatTok{8.48E+04} -\NormalTok{OM13 }\FloatTok{{-}1.20E+03} \FloatTok{9.40E+02} \FloatTok{{-}9.03E+04} \FloatTok{{-}5.09E+03} \FloatTok{3.58E+04} \FloatTok{1.67E+04} +\NormalTok{OM13 }\SpecialCharTok{{-}}\FloatTok{1.20E+03} \FloatTok{9.40E+02} \SpecialCharTok{{-}}\FloatTok{9.03E+04} \SpecialCharTok{{-}}\FloatTok{5.09E+03} \FloatTok{3.58E+04} \FloatTok{1.67E+04} -\NormalTok{OM22 }\FloatTok{{-}3.88E+02} \FloatTok{5.71E+02} \FloatTok{{-}6.62E+04} \FloatTok{{-}3.41E+03} \FloatTok{1.37E+04} \FloatTok{1.09E+04} \FloatTok{7.22E+04} +\NormalTok{OM22 }\SpecialCharTok{{-}}\FloatTok{3.88E+02} \FloatTok{5.71E+02} \SpecialCharTok{{-}}\FloatTok{6.62E+04} \SpecialCharTok{{-}}\FloatTok{3.41E+03} \FloatTok{1.37E+04} \FloatTok{1.09E+04} \FloatTok{7.22E+04} -\NormalTok{OM23 }\FloatTok{1.08E+04} \FloatTok{{-}8.98E+03} \FloatTok{7.96E+05} \FloatTok{4.74E+04} \FloatTok{{-}3.37E+05} \FloatTok{{-}1.50E+05} \FloatTok{{-}1.17E+05} \FloatTok{1.42E+06} +\NormalTok{OM23 }\FloatTok{1.08E+04} \SpecialCharTok{{-}}\FloatTok{8.98E+03} \FloatTok{7.96E+05} \FloatTok{4.74E+04} \SpecialCharTok{{-}}\FloatTok{3.37E+05} \SpecialCharTok{{-}}\FloatTok{1.50E+05} \SpecialCharTok{{-}}\FloatTok{1.17E+05} \FloatTok{1.42E+06} -\NormalTok{OM33 }\FloatTok{{-}4.97E+01} \FloatTok{8.80E+01} \FloatTok{{-}1.06E+04} \FloatTok{{-}4.44E+02} \FloatTok{3.32E+03} \FloatTok{9.71E+02} \FloatTok{2.83E+03} \FloatTok{{-}1.41E+04} \FloatTok{9.57E+02} +\NormalTok{OM33 }\SpecialCharTok{{-}}\FloatTok{4.97E+01} \FloatTok{8.80E+01} \SpecialCharTok{{-}}\FloatTok{1.06E+04} \SpecialCharTok{{-}}\FloatTok{4.44E+02} \FloatTok{3.32E+03} \FloatTok{9.71E+02} \FloatTok{2.83E+03} \SpecialCharTok{{-}}\FloatTok{1.41E+04} \FloatTok{9.57E+02} -\NormalTok{SG11 }\FloatTok{1.17E+04} \FloatTok{{-}1.01E+04} \FloatTok{8.99E+05} \FloatTok{5.33E+04} \FloatTok{{-}3.79E+05} \FloatTok{{-}1.67E+05} \FloatTok{{-}1.39E+05} \FloatTok{1.59E+06} \FloatTok{{-}2.01E+04} \FloatTok{2.03}\NormalTok{E} +\NormalTok{SG11 }\FloatTok{1.17E+04} \SpecialCharTok{{-}}\FloatTok{1.01E+04} \FloatTok{8.99E+05} \FloatTok{5.33E+04} \SpecialCharTok{{-}}\FloatTok{3.79E+05} \SpecialCharTok{{-}}\FloatTok{1.67E+05} \SpecialCharTok{{-}}\FloatTok{1.39E+05} \FloatTok{1.59E+06} \SpecialCharTok{{-}}\FloatTok{2.01E+04} \FloatTok{2.03}\NormalTok{E} \NormalTok{SG12 ......... ......... ......... ......... ......... ......... ......... ......... ......... ......} -\NormalTok{SG22 }\FloatTok{{-}1.04E+03} \FloatTok{1.00E+03} \FloatTok{{-}4.72E+04} \FloatTok{{-}4.88E+03} \FloatTok{3.51E+04} \FloatTok{1.43E+04} \FloatTok{1.57E+04} \FloatTok{{-}1.52E+05} \FloatTok{9.39E+02} \FloatTok{{-}1.70}\NormalTok{E} +\NormalTok{SG22 }\SpecialCharTok{{-}}\FloatTok{1.04E+03} \FloatTok{1.00E+03} \SpecialCharTok{{-}}\FloatTok{4.72E+04} \SpecialCharTok{{-}}\FloatTok{4.88E+03} \FloatTok{3.51E+04} \FloatTok{1.43E+04} \FloatTok{1.57E+04} \SpecialCharTok{{-}}\FloatTok{1.52E+05} \FloatTok{9.39E+02} \SpecialCharTok{{-}}\FloatTok{1.70}\NormalTok{E} -\OperatorTok{**}\ErrorTok{*****************************************************************************************************} -\ErrorTok{********************}\StringTok{ }\ErrorTok{***} -\ErrorTok{********************}\StringTok{ }\NormalTok{FIRST ORDER }\OperatorTok{**}\ErrorTok{*} -\ErrorTok{********************}\StringTok{ }\NormalTok{EIGENVALUES OF COR MATRIX OF ESTIMATE }\OperatorTok{**}\ErrorTok{*} -\ErrorTok{********************}\StringTok{ }\ErrorTok{***} +\SpecialCharTok{**}\ErrorTok{*****************************************************************************************************} +\ErrorTok{********************} \ErrorTok{***} +\ErrorTok{********************}\NormalTok{ FIRST ORDER }\SpecialCharTok{**}\ErrorTok{*} +\ErrorTok{********************}\NormalTok{ EIGENVALUES OF COR MATRIX OF ESTIMATE }\SpecialCharTok{**}\ErrorTok{*} +\ErrorTok{********************} \ErrorTok{***} \ErrorTok{*******************************************************************************************************} -\StringTok{ } -\StringTok{ } -\StringTok{ }\DecValTok{1} \DecValTok{2} \DecValTok{3} \DecValTok{4} \DecValTok{5} \DecValTok{6} \DecValTok{7} \DecValTok{8} \DecValTok{9} \DecValTok{10} + + + \DecValTok{1} \DecValTok{2} \DecValTok{3} \DecValTok{4} \DecValTok{5} \DecValTok{6} \DecValTok{7} \DecValTok{8} \DecValTok{9} \DecValTok{10} \FloatTok{2.52E{-}04} \FloatTok{9.67E{-}03} \FloatTok{1.08E{-}02} \FloatTok{2.33E{-}02} \FloatTok{5.21E{-}02} \FloatTok{2.98E{-}01} \FloatTok{5.05E{-}01} \FloatTok{9.11E{-}01} \FloatTok{1.21E+00} \FloatTok{3.21}\NormalTok{E} -\OperatorTok{**}\ErrorTok{*****************************************************************************************************} -\ErrorTok{********************}\StringTok{ }\ErrorTok{***} -\ErrorTok{********************}\StringTok{ }\NormalTok{FIRST ORDER }\OperatorTok{**}\ErrorTok{*} -\ErrorTok{********************}\StringTok{ }\NormalTok{R MATRIX }\OperatorTok{**}\ErrorTok{*} -\ErrorTok{********************}\StringTok{ }\ErrorTok{***} +\SpecialCharTok{**}\ErrorTok{*****************************************************************************************************} +\ErrorTok{********************} \ErrorTok{***} +\ErrorTok{********************}\NormalTok{ FIRST ORDER }\SpecialCharTok{**}\ErrorTok{*} +\ErrorTok{********************}\NormalTok{ R MATRIX }\SpecialCharTok{**}\ErrorTok{*} +\ErrorTok{********************} \ErrorTok{***} \ErrorTok{*******************************************************************************************************} -\StringTok{ } -\StringTok{ } -\StringTok{ }\NormalTok{TH }\DecValTok{1}\NormalTok{ TH }\DecValTok{2}\NormalTok{ TH }\DecValTok{3}\NormalTok{ OM11 OM12 OM13 OM22 OM23 OM33 SG} + + +\NormalTok{ TH }\DecValTok{1}\NormalTok{ TH }\DecValTok{2}\NormalTok{ TH }\DecValTok{3}\NormalTok{ OM11 OM12 OM13 OM22 OM23 OM33 SG} \NormalTok{TH }\DecValTok{1} \FloatTok{1.79E+01} -\NormalTok{TH }\DecValTok{2} \FloatTok{{-}1.33E+00} \FloatTok{5.51E{-}01} +\NormalTok{TH }\DecValTok{2} \SpecialCharTok{{-}}\FloatTok{1.33E+00} \FloatTok{5.51E{-}01} -\NormalTok{TH }\DecValTok{3} \FloatTok{{-}1.63E+02} \FloatTok{{-}7.67E+00} \FloatTok{3.43E+04} +\NormalTok{TH }\DecValTok{3} \SpecialCharTok{{-}}\FloatTok{1.63E+02} \SpecialCharTok{{-}}\FloatTok{7.67E+00} \FloatTok{3.43E+04} -\NormalTok{OM11 }\FloatTok{{-}4.13E+00} \FloatTok{1.12E{-}01} \FloatTok{8.60E+01} \FloatTok{2.86E+01} +\NormalTok{OM11 }\SpecialCharTok{{-}}\FloatTok{4.13E+00} \FloatTok{1.12E{-}01} \FloatTok{8.60E+01} \FloatTok{2.86E+01} -\NormalTok{OM12 }\FloatTok{2.16E+01} \FloatTok{{-}1.46E+00} \FloatTok{4.34E+02} \FloatTok{{-}1.77E+02} \FloatTok{1.93E+03} +\NormalTok{OM12 }\FloatTok{2.16E+01} \SpecialCharTok{{-}}\FloatTok{1.46E+00} \FloatTok{4.34E+02} \SpecialCharTok{{-}}\FloatTok{1.77E+02} \FloatTok{1.93E+03} -\NormalTok{OM13 }\FloatTok{{-}1.10E+01} \FloatTok{2.99E+00} \FloatTok{{-}9.08E+01} \FloatTok{{-}5.29E+01} \FloatTok{2.11E+02} \FloatTok{2.13E+02} +\NormalTok{OM13 }\SpecialCharTok{{-}}\FloatTok{1.10E+01} \FloatTok{2.99E+00} \SpecialCharTok{{-}}\FloatTok{9.08E+01} \SpecialCharTok{{-}}\FloatTok{5.29E+01} \FloatTok{2.11E+02} \FloatTok{2.13E+02} -\NormalTok{OM22 }\FloatTok{1.02E+01} \FloatTok{{-}1.65E+01} \FloatTok{1.35E+01} \FloatTok{2.73E+02} \FloatTok{{-}4.27E+03} \FloatTok{{-}1.40E+02} \FloatTok{1.66E+04} +\NormalTok{OM22 }\FloatTok{1.02E+01} \SpecialCharTok{{-}}\FloatTok{1.65E+01} \FloatTok{1.35E+01} \FloatTok{2.73E+02} \SpecialCharTok{{-}}\FloatTok{4.27E+03} \SpecialCharTok{{-}}\FloatTok{1.40E+02} \FloatTok{1.66E+04} -\NormalTok{OM23 }\FloatTok{5.23E+01} \FloatTok{{-}1.83E+01} \FloatTok{9.57E+02} \FloatTok{1.64E+02} \FloatTok{{-}1.42E+03} \FloatTok{{-}5.56E+02} \FloatTok{1.11E+03} \FloatTok{4.05E+03} +\NormalTok{OM23 }\FloatTok{5.23E+01} \SpecialCharTok{{-}}\FloatTok{1.83E+01} \FloatTok{9.57E+02} \FloatTok{1.64E+02} \SpecialCharTok{{-}}\FloatTok{1.42E+03} \SpecialCharTok{{-}}\FloatTok{5.56E+02} \FloatTok{1.11E+03} \FloatTok{4.05E+03} -\NormalTok{OM33 }\FloatTok{7.05E+00} \FloatTok{{-}2.23E+00} \FloatTok{{-}1.35E+03} \FloatTok{2.45E+01} \FloatTok{{-}4.37E+01} \FloatTok{{-}1.51E+02} \FloatTok{1.87E+01} \FloatTok{1.31E+02} \FloatTok{2.37E+02} +\NormalTok{OM33 }\FloatTok{7.05E+00} \SpecialCharTok{{-}}\FloatTok{2.23E+00} \SpecialCharTok{{-}}\FloatTok{1.35E+03} \FloatTok{2.45E+01} \SpecialCharTok{{-}}\FloatTok{4.37E+01} \SpecialCharTok{{-}}\FloatTok{1.51E+02} \FloatTok{1.87E+01} \FloatTok{1.31E+02} \FloatTok{2.37E+02} -\NormalTok{SG11 }\FloatTok{2.49E+02} \FloatTok{{-}1.21E+02} \FloatTok{{-}7.03E+03} \FloatTok{5.03E+01} \FloatTok{{-}1.01E+03} \FloatTok{9.63E+01} \FloatTok{4.68E+03} \FloatTok{{-}5.57E+02} \FloatTok{{-}2.03E+01} \FloatTok{1.93}\NormalTok{E} +\NormalTok{SG11 }\FloatTok{2.49E+02} \SpecialCharTok{{-}}\FloatTok{1.21E+02} \SpecialCharTok{{-}}\FloatTok{7.03E+03} \FloatTok{5.03E+01} \SpecialCharTok{{-}}\FloatTok{1.01E+03} \FloatTok{9.63E+01} \FloatTok{4.68E+03} \SpecialCharTok{{-}}\FloatTok{5.57E+02} \SpecialCharTok{{-}}\FloatTok{2.03E+01} \FloatTok{1.93}\NormalTok{E} \NormalTok{SG12 ......... ......... ......... ......... ......... ......... ......... ......... ......... ......} -\NormalTok{SG22 }\FloatTok{{-}1.75E+00} \FloatTok{{-}5.21E+00} \FloatTok{{-}1.99E+03} \FloatTok{6.01E+00} \FloatTok{1.24E+02} \FloatTok{{-}6.30E+01} \FloatTok{{-}4.59E+01} \FloatTok{{-}2.01E+02} \FloatTok{9.27E+01} \FloatTok{6.57}\NormalTok{E} +\NormalTok{SG22 }\SpecialCharTok{{-}}\FloatTok{1.75E+00} \SpecialCharTok{{-}}\FloatTok{5.21E+00} \SpecialCharTok{{-}}\FloatTok{1.99E+03} \FloatTok{6.01E+00} \FloatTok{1.24E+02} \SpecialCharTok{{-}}\FloatTok{6.30E+01} \SpecialCharTok{{-}}\FloatTok{4.59E+01} \SpecialCharTok{{-}}\FloatTok{2.01E+02} \FloatTok{9.27E+01} \FloatTok{6.57}\NormalTok{E} -\OperatorTok{**}\ErrorTok{*****************************************************************************************************} -\ErrorTok{********************}\StringTok{ }\ErrorTok{***} -\ErrorTok{********************}\StringTok{ }\NormalTok{FIRST ORDER }\OperatorTok{**}\ErrorTok{*} -\ErrorTok{********************}\StringTok{ }\NormalTok{S MATRIX }\OperatorTok{**}\ErrorTok{*} -\ErrorTok{********************}\StringTok{ }\ErrorTok{***} +\SpecialCharTok{**}\ErrorTok{*****************************************************************************************************} +\ErrorTok{********************} \ErrorTok{***} +\ErrorTok{********************}\NormalTok{ FIRST ORDER }\SpecialCharTok{**}\ErrorTok{*} +\ErrorTok{********************}\NormalTok{ S MATRIX }\SpecialCharTok{**}\ErrorTok{*} +\ErrorTok{********************} \ErrorTok{***} \ErrorTok{*******************************************************************************************************} -\StringTok{ } -\StringTok{ } -\StringTok{ }\NormalTok{TH }\DecValTok{1}\NormalTok{ TH }\DecValTok{2}\NormalTok{ TH }\DecValTok{3}\NormalTok{ OM11 OM12 OM13 OM22 OM23 OM33 SG} + + +\NormalTok{ TH }\DecValTok{1}\NormalTok{ TH }\DecValTok{2}\NormalTok{ TH }\DecValTok{3}\NormalTok{ OM11 OM12 OM13 OM22 OM23 OM33 SG} \NormalTok{TH }\DecValTok{1} \FloatTok{7.83E+01} -\NormalTok{TH }\DecValTok{2} \FloatTok{{-}4.65E+00} \FloatTok{7.65E{-}01} +\NormalTok{TH }\DecValTok{2} \SpecialCharTok{{-}}\FloatTok{4.65E+00} \FloatTok{7.65E{-}01} -\NormalTok{TH }\DecValTok{3} \FloatTok{{-}1.30E+03} \FloatTok{6.44E+01} \FloatTok{1.84E+05} +\NormalTok{TH }\DecValTok{3} \SpecialCharTok{{-}}\FloatTok{1.30E+03} \FloatTok{6.44E+01} \FloatTok{1.84E+05} -\NormalTok{OM11 }\FloatTok{{-}1.19E+01} \FloatTok{2.62E+00} \FloatTok{{-}2.31E+02} \FloatTok{1.84E+01} +\NormalTok{OM11 }\SpecialCharTok{{-}}\FloatTok{1.19E+01} \FloatTok{2.62E+00} \SpecialCharTok{{-}}\FloatTok{2.31E+02} \FloatTok{1.84E+01} -\NormalTok{OM12 }\FloatTok{1.43E+02} \FloatTok{{-}2.86E+01} \FloatTok{8.40E+02} \FloatTok{{-}1.72E+02} \FloatTok{2.01E+03} +\NormalTok{OM12 }\FloatTok{1.43E+02} \SpecialCharTok{{-}}\FloatTok{2.86E+01} \FloatTok{8.40E+02} \SpecialCharTok{{-}}\FloatTok{1.72E+02} \FloatTok{2.01E+03} -\NormalTok{OM13 }\FloatTok{{-}2.67E+01} \FloatTok{2.39E{-}01} \FloatTok{3.80E+03} \FloatTok{{-}1.97E+01} \FloatTok{5.17E+01} \FloatTok{1.29E+02} +\NormalTok{OM13 }\SpecialCharTok{{-}}\FloatTok{2.67E+01} \FloatTok{2.39E{-}01} \FloatTok{3.80E+03} \SpecialCharTok{{-}}\FloatTok{1.97E+01} \FloatTok{5.17E+01} \FloatTok{1.29E+02} -\NormalTok{OM22 }\FloatTok{{-}1.46E+02} \FloatTok{2.95E+01} \FloatTok{9.00E+03} \FloatTok{2.92E+02} \FloatTok{{-}3.81E+03} \FloatTok{1.89E+02} \FloatTok{1.20E+04} +\NormalTok{OM22 }\SpecialCharTok{{-}}\FloatTok{1.46E+02} \FloatTok{2.95E+01} \FloatTok{9.00E+03} \FloatTok{2.92E+02} \SpecialCharTok{{-}}\FloatTok{3.81E+03} \FloatTok{1.89E+02} \FloatTok{1.20E+04} -\NormalTok{OM23 }\FloatTok{4.44E+01} \FloatTok{1.08E+01} \FloatTok{{-}1.08E+04} \FloatTok{8.49E+01} \FloatTok{{-}7.65E+02} \FloatTok{{-}2.93E+02} \FloatTok{6.68E+02} \FloatTok{1.12E+03} +\NormalTok{OM23 }\FloatTok{4.44E+01} \FloatTok{1.08E+01} \SpecialCharTok{{-}}\FloatTok{1.08E+04} \FloatTok{8.49E+01} \SpecialCharTok{{-}}\FloatTok{7.65E+02} \SpecialCharTok{{-}}\FloatTok{2.93E+02} \FloatTok{6.68E+02} \FloatTok{1.12E+03} -\NormalTok{OM33 }\FloatTok{1.40E+01} \FloatTok{{-}4.41E+00} \FloatTok{{-}6.40E+03} \FloatTok{3.47E+00} \FloatTok{8.80E+01} \FloatTok{{-}1.56E+02} \FloatTok{{-}7.13E+02} \FloatTok{2.95E+02} \FloatTok{3.28E+02} +\NormalTok{OM33 }\FloatTok{1.40E+01} \SpecialCharTok{{-}}\FloatTok{4.41E+00} \SpecialCharTok{{-}}\FloatTok{6.40E+03} \FloatTok{3.47E+00} \FloatTok{8.80E+01} \SpecialCharTok{{-}}\FloatTok{1.56E+02} \SpecialCharTok{{-}}\FloatTok{7.13E+02} \FloatTok{2.95E+02} \FloatTok{3.28E+02} -\NormalTok{SG11 }\FloatTok{2.04E+03} \FloatTok{{-}3.98E+02} \FloatTok{{-}4.14E+03} \FloatTok{{-}1.17E+03} \FloatTok{8.92E+03} \FloatTok{1.80E+03} \FloatTok{{-}3.83E+03} \FloatTok{{-}1.06E+04} \FloatTok{1.81E+03} \FloatTok{4.20}\NormalTok{E} +\NormalTok{SG11 }\FloatTok{2.04E+03} \SpecialCharTok{{-}}\FloatTok{3.98E+02} \SpecialCharTok{{-}}\FloatTok{4.14E+03} \SpecialCharTok{{-}}\FloatTok{1.17E+03} \FloatTok{8.92E+03} \FloatTok{1.80E+03} \SpecialCharTok{{-}}\FloatTok{3.83E+03} \SpecialCharTok{{-}}\FloatTok{1.06E+04} \FloatTok{1.81E+03} \FloatTok{4.20}\NormalTok{E} \NormalTok{SG12 ......... ......... ......... ......... ......... ......... ......... ......... ......... ......} -\NormalTok{SG22 }\FloatTok{2.80E+02} \FloatTok{{-}4.73E+01} \FloatTok{{-}6.05E+04} \FloatTok{{-}2.27E+01} \FloatTok{6.71E+02} \FloatTok{{-}1.11E+03} \FloatTok{{-}3.49E+03} \FloatTok{2.78E+03} \FloatTok{2.36E+03} \FloatTok{1.81}\NormalTok{E} +\NormalTok{SG22 }\FloatTok{2.80E+02} \SpecialCharTok{{-}}\FloatTok{4.73E+01} \SpecialCharTok{{-}}\FloatTok{6.05E+04} \SpecialCharTok{{-}}\FloatTok{2.27E+01} \FloatTok{6.71E+02} \SpecialCharTok{{-}}\FloatTok{1.11E+03} \SpecialCharTok{{-}}\FloatTok{3.49E+03} \FloatTok{2.78E+03} \FloatTok{2.36E+03} \FloatTok{1.81}\NormalTok{E} \end{Highlighting} \end{Shaded} @@ -6306,90 +6214,90 @@ \chapter{NONMEM 실행결과}\label{nonmem-output}} \backmatter -\hypertarget{uxcc38uxace0uxbb38uxd5cc}{% -\chapter*{참고문헌}\label{uxcc38uxace0uxbb38uxd5cc}} +\chapter*{참고문헌}\label{uxcc38uxace0uxbb38uxd5cc} -\hypertarget{refs}{} -\begin{cslreferences} -\leavevmode\hypertarget{ref-R-nmw}{}% +\phantomsection\label{refs} +\begin{CSLReferences}{1}{0} +\bibitem[\citeproctext]{ref-R-nmw} Bae, Kyun-Seop. 2018. \emph{Nmw: Understanding Nonlinear Mixed Effects Modeling for Population Pharmacokinetics}. \url{https://CRAN.R-project.org/package=nmw}. -\leavevmode\hypertarget{ref-nonmem}{}% +\bibitem[\citeproctext]{ref-nonmem} Beal, Sheiner, S. L. 2018. \emph{NONMEM 7.4 Users Guides}. Gaithersburg, Maryland: ICON plc. \url{https://nonmem.iconplc.com/nonmem743/guides}. -\leavevmode\hypertarget{ref-bonate}{}% +\bibitem[\citeproctext]{ref-bonate} Bonate, Peter. 2011. \emph{Pharmacokinetic-Pharmacodynamic Modeling and Simulation}. New York: Springer. \url{https://www.springer.com/gp/book/9781441994844}. -\leavevmode\hypertarget{ref-pmid17328581}{}% -Brendel, K., C. Dartois, E. Comets, A. Lemenuel-Diot, C. Laveille, B. Tranchand, P. Girard, C. M. Laffont, and F. Mentre. 2007. ``Are population pharmacokinetic and/or pharmacodynamic models adequately evaluated? A survey of the literature from 2002 to 2004.'' \emph{Clin Pharmacokinet} 46 (3): 221--34. +\bibitem[\citeproctext]{ref-pmid17328581} +Brendel, K., C. Dartois, E. Comets, A. Lemenuel-Diot, C. Laveille, B. Tranchand, P. Girard, C. M. Laffont, and F. Mentre. 2007. {``{{A}re population pharmacokinetic and/or pharmacodynamic models adequately evaluated? {A} survey of the literature from 2002 to 2004}.''} \emph{Clin Pharmacokinet} 46 (3): 221--34. -\leavevmode\hypertarget{ref-derendorf1999modeling}{}% -Derendorf, H, and B Meibohm. 1999. ``Modeling of Pharmacokinetic/Pharmacodynamic (PK/PD) Relationships: Concepts and Perspectives.'' \emph{Pharmaceutical Research} 16 (2): 176--85. \url{https://doi.org/10.1023/a:1011907920641}. +\bibitem[\citeproctext]{ref-derendorf1999modeling} +Derendorf, H, and B Meibohm. 1999. {``Modeling of Pharmacokinetic/Pharmacodynamic ({PK/PD}) Relationships: Concepts and Perspectives.''} \emph{Pharmaceutical Research} 16 (2): 176--85. \url{https://doi.org/10.1023/a:1011907920641}. -\leavevmode\hypertarget{ref-draper1998applied}{}% +\bibitem[\citeproctext]{ref-draper1998applied} Draper, Norman. 1998. \emph{Applied Regression Analysis}. New York: Wiley. -\leavevmode\hypertarget{ref-ette}{}% +\bibitem[\citeproctext]{ref-ette} Ette, Ene. 2007. \emph{Pharmacometrics : The Science of Quantitative Pharmacology}. Hoboken, N.J: John Wiley \& Sons. \url{https://onlinelibrary.wiley.com/doi/book/10.1002/0470087978}. -\leavevmode\hypertarget{ref-gabrielsson}{}% +\bibitem[\citeproctext]{ref-gabrielsson} Gabrielsson, Johan. 2006. \emph{Pharmacokinetic \& Pharmacodynamic Data Analysis : Concepts and Applications}. Stockholm: Apotekarsocieteten. -\leavevmode\hypertarget{ref-han2016tips}{}% -Han, Seunghoon, Sangil Jeon, and Dong-Seok Yim. 2016. ``Tips for the Choice of Initial Estimates in Nonmem.'' \emph{Translational and Clinical Pharmacology} 24 (3): 119--23. +\bibitem[\citeproctext]{ref-han2016tips} +Han, Seunghoon, Sangil Jeon, and Dong-Seok Yim. 2016. {``Tips for the Choice of Initial Estimates in NONMEM.''} \emph{Translational and Clinical Pharmacology} 24 (3): 119--23. -\leavevmode\hypertarget{ref-vpcnpc}{}% -Harling, Uekcert, K. 2018. \emph{VPC and Npc User Guide}. ICON plc. \url{https://github.com/UUPharmacometrics/PsN/releases/download/4.9.0/vpc_npc_userguide.pdf}. +\bibitem[\citeproctext]{ref-vpcnpc} +Harling, Uekcert, K. 2018. \emph{VPC and NPC User Guide}. ICON plc. \url{https://github.com/UUPharmacometrics/PsN/releases/download/4.9.0/vpc_npc_userguide.pdf}. -\leavevmode\hypertarget{ref-helmlinger2017drug}{}% -Helmlinger, Gabriel, Nidal Al-Huniti, Sergey Aksenov, Kirill Peskov, Karen M Hallow, Lulu Chu, David Boulton, et al. 2017. ``Drug-Disease Modeling in the Pharmaceutical Industry - Where Mechanistic Systems Pharmacology and Statistical Pharmacometrics Meet.'' \emph{European Journal of Pharmaceutical Sciences : Official Journal of the European Federation for Pharmaceutical Sciences} 109S (November): S39--S46. \url{https://doi.org/10.1016/j.ejps.2017.05.028}. +\bibitem[\citeproctext]{ref-helmlinger2017drug} +Helmlinger, Gabriel, Nidal Al-Huniti, Sergey Aksenov, Kirill Peskov, Karen M Hallow, Lulu Chu, David Boulton, et al. 2017. {``Drug-Disease Modeling in the Pharmaceutical Industry - Where Mechanistic Systems Pharmacology and Statistical Pharmacometrics Meet.''} \emph{European Journal of Pharmaceutical Sciences : Official Journal of the European Federation for Pharmaceutical Sciences} 109S (November): S39--46. \url{https://doi.org/10.1016/j.ejps.2017.05.028}. -\leavevmode\hypertarget{ref-nickholford}{}% -Holford, N. 2010. \emph{Differential Equation Models Using Nm-Tran}. Auckland, New Zealand: University of Auckland; University of Auckland. \url{http://holford.fmhs.auckland.ac.nz/docs/differential-equations.pdf}. +\bibitem[\citeproctext]{ref-nickholford} +Holford, N. 2010. \emph{Differential Equation Models Using NM-TRAN}. Auckland, New Zealand: University of Auckland; University of Auckland. \url{http://holford.fmhs.auckland.ac.nz/docs/differential-equations.pdf}. -\leavevmode\hypertarget{ref-R-xpose4}{}% +\bibitem[\citeproctext]{ref-R-xpose4} Hooker, Andrew C., Mats O. Karlsson, Justin J. Wilkins, and E. Niclas Jonsson. 2020. \emph{Xpose4: Diagnostics for Nonlinear Mixed-Effect Models}. \url{https://CRAN.R-project.org/package=xpose4}. -\leavevmode\hypertarget{ref-lee2013pharmacokinetic}{}% -Lee, Jongtae, Seunghoon Han, Sangil Jeon, Taegon Hong, and Dong-Seok Yim. 2013. ``Pharmacokinetic--Pharmacodynamic Model of Fimasartan Applied to Predict the Influence of a High Fat Diet on Its Blood Pressure-Lowering Effect in Healthy Subjects.'' \emph{European Journal of Clinical Pharmacology} 69 (1): 11--20. +\bibitem[\citeproctext]{ref-lee2013pharmacokinetic} +Lee, Jongtae, Seunghoon Han, Sangil Jeon, Taegon Hong, and Dong-Seok Yim. 2013. {``Pharmacokinetic--Pharmacodynamic Model of Fimasartan Applied to Predict the Influence of a High Fat Diet on Its Blood Pressure-Lowering Effect in Healthy Subjects.''} \emph{European Journal of Clinical Pharmacology} 69 (1): 11--20. -\leavevmode\hypertarget{ref-lee2012population}{}% -Lee, Joomi, Yangha Hwang, Wonku Kang, Sook Jin Seong, Mi-sun Lim, Hae Won Lee, Dong-Seok Yim, Dong Ryul Sohn, Seunghoon Han, and Young-Ran Yoon. 2012. ``Population Pharmacokinetic/Pharmacodynamic Modeling of Clopidogrel in Korean Healthy Volunteers and Stroke Patients.'' \emph{The Journal of Clinical Pharmacology} 52 (7): 985--95. +\bibitem[\citeproctext]{ref-lee2012population} +Lee, Joomi, Yangha Hwang, Wonku Kang, Sook Jin Seong, Mi-sun Lim, Hae Won Lee, Dong-Seok Yim, Dong Ryul Sohn, Seunghoon Han, and Young-Ran Yoon. 2012. {``Population Pharmacokinetic/Pharmacodynamic Modeling of Clopidogrel in Korean Healthy Volunteers and Stroke Patients.''} \emph{The Journal of Clinical Pharmacology} 52 (7): 985--95. -\leavevmode\hypertarget{ref-kelly}{}% +\bibitem[\citeproctext]{ref-kelly} Owen, Fiedler-Kelly, J. 2014. \emph{Introduction to Population Pharmacokinetic/Pharmacodynamic Analysis with Nonlinear Mixed Effects Models}. Hoboken, New Jersey: Wiley. \url{https://onlinelibrary.wiley.com/doi/book/10.1002/9781118784860}. -\leavevmode\hypertarget{ref-R-nlme}{}% +\bibitem[\citeproctext]{ref-R-nlme} Pinheiro, Jose, Douglas Bates, and R-core. 2020. \emph{Nlme: Linear and Nonlinear Mixed Effects Models}. \url{https://CRAN.R-project.org/package=nlme}. -\leavevmode\hypertarget{ref-post2008extensions}{}% -Post, Teun M, Jan I Freijer, Bart A Ploeger, and Meindert Danhof. 2008. ``Extensions to the Visual Predictive Check to Facilitate Model Performance Evaluation.'' \emph{Journal of Pharmacokinetics and Pharmacodynamics} 35 (2): 185. +\bibitem[\citeproctext]{ref-post2008extensions} +Post, Teun M, Jan I Freijer, Bart A Ploeger, and Meindert Danhof. 2008. {``Extensions to the Visual Predictive Check to Facilitate Model Performance Evaluation.''} \emph{Journal of Pharmacokinetics and Pharmacodynamics} 35 (2): 185. -\leavevmode\hypertarget{ref-dementia}{}% +\bibitem[\citeproctext]{ref-dementia} Primary Psychiatry. 2013. \emph{From Symptom Palliation to Disease Modification: Implications for Dementia Care}. \url{http://primarypsychiatry.com/from-symptom-palliation-to-disease-modification-implications-for-dementia-care/}. -\leavevmode\hypertarget{ref-uppsala}{}% +\bibitem[\citeproctext]{ref-uppsala} Savic, Karlsson, R. M. 2007. \emph{Shrinkage in Empirical Bayes Estimates for Diagnostics and Estimation: Problems and Solutions}. Uppsala, Sweden: Uppsala University; Uppsala University. \url{https://www.page-meeting.org/pdf_assets/9436-EBE_PAGE07_1_web.pdf}. -\leavevmode\hypertarget{ref-sharma1998characteristics}{}% -Sharma, A, and W J Jusko. 1998. ``Characteristics of Indirect Pharmacodynamic Models and Applications to Clinical Drug Responses.'' \emph{British Journal of Clinical Pharmacology} 45 (3): 229--39. \url{https://doi.org/10.1046/j.1365-2125.1998.00676.x}. +\bibitem[\citeproctext]{ref-sharma1998characteristics} +Sharma, A, and W J Jusko. 1998. {``Characteristics of Indirect Pharmacodynamic Models and Applications to Clinical Drug Responses.''} \emph{British Journal of Clinical Pharmacology} 45 (3): 229--39. \url{https://doi.org/10.1046/j.1365-2125.1998.00676.x}. -\leavevmode\hypertarget{ref-yano2001evaluating}{}% -Yano, Yoshitaka, Stuart L Beal, and Lewis B Sheiner. 2001. ``Evaluating Pharmacokinetic/Pharmacodynamic Models Using the Posterior Predictive Check.'' \emph{Journal of Pharmacokinetics and Pharmacodynamics} 28 (2): 171--92. +\bibitem[\citeproctext]{ref-yano2001evaluating} +Yano, Yoshitaka, Stuart L Beal, and Lewis B Sheiner. 2001. {``Evaluating Pharmacokinetic/Pharmacodynamic Models Using the Posterior Predictive Check.''} \emph{Journal of Pharmacokinetics and Pharmacodynamics} 28 (2): 171--92. -\leavevmode\hypertarget{ref-zhang1}{}% -Zhang, Liping, Stuart L Beal, and Lewis B Sheiner. 2003a. ``Simultaneous vs. Sequential Analysis for Population PK/PD Data I: Best-Case Performance.'' \emph{Journal of Pharmacokinetics and Pharmacodynamics} 30 (6): 387--404. +\bibitem[\citeproctext]{ref-zhang1} +Zhang, Liping, Stuart L Beal, and Lewis B Sheiner. 2003a. {``Simultaneous {vs.} Sequential Analysis for Population {PK/PD} Data {I}: Best-Case Performance.''} \emph{Journal of Pharmacokinetics and Pharmacodynamics} 30 (6): 387--404. -\leavevmode\hypertarget{ref-zhang2}{}% ----------. 2003b. ``Simultaneous vs. Sequential Analysis for Population PK/PD Data II: Robustness of Methods.'' \emph{Journal of Pharmacokinetics and Pharmacodynamics} 30 (6): 405--16. +\bibitem[\citeproctext]{ref-zhang2} +---------. 2003b. {``Simultaneous {vs.} Sequential Analysis for Population {PK/PD} Data {II}: Robustness of Methods.''} \emph{Journal of Pharmacokinetics and Pharmacodynamics} 30 (6): 405--16. -\leavevmode\hypertarget{ref-kim}{}% +\bibitem[\citeproctext]{ref-kim} 김우철. 2012. \emph{수리통계학}. 민영사. \url{https://books.google.co.kr/books?id=yBOWtwAACAAJ}. -\leavevmode\hypertarget{ref-poppk}{}% -식품의약품안전평가원 의약품심사부 종양약품과. 2015. \emph{의약품 개발 시 집단 약동학 활용을 위한 가이드라인}. \url{http://www.nifds.go.kr/nifds/08_part/part03_c_b.jsp?mode=view\&article_no=7038}. -\end{cslreferences} +\bibitem[\citeproctext]{ref-poppk} +식품의약품안전평가원 의약품심사부 종양약품과. 2015. \emph{의약품 개발 시 집단 약동학 활용을 위한 가이드라인}. \url{http://www.nifds.go.kr/nifds/08_part/part03_c_b.jsp?mode=view&article_no=7038}. + +\end{CSLReferences} \printindex diff --git a/docs/reference-keys.txt b/docs/reference-keys.txt deleted file mode 100644 index 733be9f..0000000 --- a/docs/reference-keys.txt +++ /dev/null @@ -1,385 +0,0 @@ -fig:pkpd-modeling-concept -fig:pkpd-population-concept -fig:diverse-concepts -fig:three-ways -eq:etaeps -fig:measured-weight -fig:nonmem-figure -tab:tab -fig:pred-predpp -fig:NONMEM-dataset -fig:example-dataset -tab:reserveditems -fig:id-dataset -fig:time-dataset -exm:date-dataset-chunk -fig:AMT-RATE -fig:dosing-dataset -tab:dosing-rec -fig:nm-tran -exm:one-comp -tab:advan-trans -exm:two-comp-pk -eq:scalingparam -tab:advan-param -eq:iivomega -eq:ccv-equation -exm:table-record -exm:advan4 -exm:advan5 -exm:advan6 -fig:model-parent-metabolite -eq:comp-mpr -exm:parent-metabolite -exm:linear-model -tab:specific-advan -fig:1comp-ex -fig:2comp-ex -tab:required-param-subroutine -tab:standard-pk-models -tab:additional-param -exm:code-example-advan4 -fig:2comp-structure -exm:code-if -tab:basic-additional -tab:gen-advan -fig:advan-code -tab:advan-lin-property -fig:advan-example -fig:nonlin-code -tab:advan-6-8 -fig:nonlin-advan-code-example -eq:2comp-oral -fig:des-example -fig:2comp-oral -exm:advan5-example -exm:advan6-example -fig:advan1112 -fig:first-order-pred -fig:pred-dataset -exm:formula -eq:updateparam -fig:newton-minimization -eq:multiplepoles -fig:limitation-newton-rhapson -tab:final-destination -fig:eda-ie -eq:twocompmodel -tab:fofoce -fig:obj -fig:OLS -eq:OLS -eq:wls -eq:els -fig:coin -eq:likelihood -eq:2ll -eq:taylor -fig:image-01 -fig:image-02 -fig:image-03 -fig:image-04 -tab:basic-data-format -fig:image-05 -fig:image-06 -fig:image-07 -fig:image-08 -fig:image-09 -exm:table-example -fig:basic-gof -fig:indi-plots -fig:workflow-covariate -fig:covariate-summary -fig:gfr -fig:improper-distribution -fig:cov-scatter -fig:visual-screening -fig:nonlinear-rel -fig:gam-step -fig:gam-summary -tab:cutpoint-param -fig:unnamed-chunk-2 -fig:ms-workflow -tab:diag-eval-property -tab:eval-summary -eq:aic -tab:unnamed-chunk-3 -fig:carousel -fig:def-residual -fig:pred-sd -exm:combined-upper -exm:combined-lower -fig:run-test -fig:basic-gof-plot -fig:wrong-models -fig:wrong-structure -fig:lag-gof -fig:u-curve -fig:addi-comb-gof -tab:diag-response -exm:theoph-control-stream -eq:mle-theory -eq:theta-differential -eq:diff-diff -eq:diff-diff-2 -eq:o-s-r -fig:theophconctime -eq:onecompfit -eq:au-lu -eq:a-li-zero -fig:ebe-cov -fig:eta-shrinkage -eq:eta-sh -fig:eta-shrinkage-plot -fig:ex2-cons -fig:ex3-cons -fig:induced-corr -fig:ex4-cons -eq:eps-iwres -eq:iwres-ipred -fig:concept-eps-shrinkage -fig:perfect-fit -fig:1comp-2comp -fig:linear-sigmoidal -fig:low-IWRES -tab:purpose-eval -fig:boot95 -fig:bootstrap-table -fig:ppc -fig:scatter-vpc -fig:ci-vpc -fig:strat-vpc -fig:npc -fig:unnamed-chunk-4 -tab:pd-data-property -fig:pd-time-course -fig:conc-hysteresis -fig:pkpd-link -fig:clopidogrel -tab:pk-pd-link-methods -fig:level-info -fig:SIM-dataset -exm:SIM-control -fig:pppd -exm:pppd-code -fig:PPP-dataset -exm:control-ppp -fig:ipp-dataset-ex -exm:IPP-example -fig:sim-pppd-dataset -exm:sim-pppd-similarity -fig:ppp-pkpd-dataset -fig:ipp-dataset -exm:ipp-control-stream -fig:time-comparison -fig:absolute-signed -tab:pkpd-link-summary -eq:linear -fig:linear-pd -eq:log-linear -fig:log-linear-model -eq:emax-model -eq:rate -eq:rstar -eq:alpha-rt -eq:emax-alpha-rt -eq:ec50-emax-half -eq:final-emax-model -eq:base-final-emax-model -fig:emax-model -eq:rmax-e0 -fig:emax-comparison -fig:anta-emax -eq:anta-emax-effect -eq:hill-n-molecule -fig:sigmoid-emax -fig:sigmoid-emax-block2 -eq:log-conc -eq:ec50-m -fig:sigmoid-imax -eq:multiplebinding3 -eq:multiplebinding2 -fig:K2 -fig:pkpd-relationship -fig:hys-proteresis -fig:effect-comp -exm:effect-model-code -exm:effect-comp-advan6 -fig:direct-indirect -eq:turnovereq -fig:turnover-4 -eq:model-i -fig:model-i -eq:model-ii -fig:model-ii -eq:model-iii -fig:model-iii -eq:model-iv -fig:model-iv -eq:baseline -intro -소개 -혼합효과-모델링-mixed-effects-modeling -집단의-데이터를-처리하는-세가지-방법 -naive-pooled-method -two-stage-method -mixed-effects-method -혼합효과-모델링의-개념 -체중-측정의-사례를-통한-설명 -약동학-자료로-본-혼합효과-모델링의-개념 -nonmem-dataset -필수-제어구문-작성-방법 -prob-레코드-작성 -data-레코드-작성 -input-레코드-작성 -predpp에-쓰는-데이터셋 -데이터셋-소개 -데이터셋-배열 -지정된-데이터-항목-레이블-reserved-labels -id -dv -mdv -evid -time -amt -rate -addl-ii -ss -cmt -covariates -control-stream -제어구문의-구성 -predpp와-pred -control-record -problem-data-input -subroutine-model-pk-des -특수-advan -일반-advan -theta-omega-sigma -estimation-simulation -covariance-table -모델-종류별-제어구문 -특수-advan과-일반-advan -일반-비선형-모델 -pred-모델 -specific-advan -general-advan -일반-선형-advan -일반-비선형-advan -newer-advan -advan9---general-nonlinear-model-with-equilibrium-compartments -advan10---one-compartment-model-with-michaelis-menten-elimination -advan11과-12---three-compartment-linear-model-iv-and-first-order-absorption -advan13---general-nonlinear-model-using-lsoda -PRED -pred와-predpp-library사용할-때의-차이 -pred를-써야-하는-경우 -IE -IE-role -왜-좋은-초기추정값을-선택해야-하는가 -fixed-random-meaning -theta의-초기추정값-지정 -omega의-초기추정값-지정 -sigma의-초기추정값-지정 -estimation-methods -추정-방법-및-관련-옵션 -noabort -maxeval -method -interaction -print -nonmem-추정 -ols-방식 -wls-방식 -els-방식 -likelihood -taylor-전개식 -likelihood-ratio-test -use-of-xpose4 -covariate-analysis -공변량-분석의-일반적-절차 -variable-eval -기술통계분석과-부적절한-항목-또는-수준의-제거 -결측치가-많은-항목 -improper -potential-cov -cov-screening -시각적-스크리닝-visual-screening -수치적-스크리닝-numerical-screening -colinearity -공변량-평가-전진선택forward-selection -forward-sel-def -cov-param -공변량-평가-후진제거backward-elimination -공변량-분석-관련-추가-고려-사항 -diag-eval -모델-진단과-평가의-일반-특성 -모델-진단평가의-요소 -적합도의-확인-방법 -파라미터의-정확성과-정밀성 -재현성 -맺음말 -fit -cov -cov-example -nonmem-document -이론적-배경---mle -r에서의-구현 -Theoph -eigenvalue -결론 -parameters -evaluation -외부검증external-validation내부검증internal-validation -붓스트랩-bootstrap -simulation-based-diagnostics -사후-예측-점검-posterior-predictive-check -시각적-예측-점검-visual-predictive-check -수치적-예측-점검-numerical-predictive-check -basic-pkpd -관련-개념 -약력학pd-및-약동-약력pk-pd-데이터의-특성 -pd-데이터 -pk-pd-데이터 -pd-데이터를-모델링할-때-고려할-점 -pk와-pd의-관계 -pkpd-link -pd-데이터-및-pd-모델의-특징 -pk-pd-데이터를-다룰-때-고려할-점 -pkpd-link-method -direct-pkpd -동시적합법sim-simultaneous-fitting -순차적합법-sequential-fitting -pppd-population-pk-parameters-data -ppp-population-pk-parameters -ipp-individual-pk-parameters -indirect-pkpd -sim과-pppd-데이터셋-및-제어구문 -ppp의-데이터셋-및-제어구문 -ipp의-데이터셋-및-제어구문 -pk-pd-연결방법적합법-비교 -각-방법의-장점-및-단점 -각-방법의-소요시간-및-정밀도-비교 -pk-pd-연결방법적합법-요약-및-결론 -effect-model -pd-model -선형모델linear-model -로그-선형모델log-linear-model -emax-model -sigmoid-emax-model-hill-방정식 -pd-모델의-적용 -일반적인-imax-model-vs.-sigmoid-imax-model -다중-약물결합-모델multiple-binding-site-model -결론-1 -delayed-effect -지연효과-개요 -시간에-따른-pk-pd-관계 -효과구획-모델 -직접효과-vs.-간접효과 -turnover-모델 -inhibition-on-production-model-i -inhibition-on-loss-model-ii -stimulation-on-production-model-iii -stimulation-on-loss-model-iv -기저값 -nonmem-output diff --git a/images/authors.docx b/images/authors.docx index 67d28eb..8e24e53 100644 Binary files a/images/authors.docx and b/images/authors.docx differ diff --git a/images/authors.pdf b/images/authors.pdf index 0ed653b..bf240e7 100644 Binary files a/images/authors.pdf and b/images/authors.pdf differ diff --git a/latex/preamble.tex b/latex/preamble.tex index f57fd6a..867ca88 100644 --- a/latex/preamble.tex +++ b/latex/preamble.tex @@ -9,7 +9,23 @@ % %axes,cross,pdftex,center %]{crop} -%sungpil defined above +\usepackage{graphicx} +%\usepackage{polyglossia} +%\usepackage{ctex} +%\usepackage{fontspec} +%\usepackage{xetexko} +\setmainfont{NanumMyeongjo} +%\setmainfont{Noto Serif CJK KR} +%\setmainhangulfont{Noto Serif CJK KR} +%\setmainhangulfont{NanumMyeongjo} +%\setmainhanjafont{Noto Serif CJK KR}[Language=Chinese Simplified] +%\setmainhanjafont{Noto Serif CJK KR} +\usepackage{kotex} +%\setmonohangulfont{NanumGothicCoding} +\usepackage[version=4]{mhchem} +%\usepackage{mhchem} + +%sungpil defined above -------------------------- \usepackage{booktabs} \usepackage{longtable} @@ -48,6 +64,7 @@ \renewcommand{\floatpagefraction}{0.75} \renewenvironment{quote}{\begin{VF}}{\end{VF}} +\usepackage{hyperref} \let\oldhref\href \renewcommand{\href}[2]{#2\footnote{\url{#1}}}