IBM SPSS Bioequivalence Full Replicate (Код IBM SPSS для репликативного дизайна биоэквивалентности)

Ниже представлен код для IBM SPSS для расчета 90% доверительных интервалов исследования биоэквивалентности. Код соответствует референсному коду SAS при условии положительной матрицы Гессе. Т.к. FDA допускает использование COVTYPE – CSH (Heterogeneous Compound Symmetry), а FA0() в SPSS отсутствует, то используется именно этот тип. Надо отметить, что в SPSS при использовании GENLINMIXED структура CSH – недоступна, поэтому остается только MIXED. В SAS использование FA0() и CSH дает идентичные результаты. При отрицательном гессиане меняется расчет степеней свободы и результаты уже не совпадают, но разница и ошибка остаются прежними. Об этом в другой записи. По умолчанию расчет степеней свободы в MIXED выполняется по Satterthwaite.

1
2
3
4
5
6
7
8
MIXED logAUC BY Period Formulation Sequence Subject
  /CRITERIA=CIN(90) MXITER(100) MXSTEP(10) SCORING(1) SINGULAR(0.000000000001) HCONVERGE(0,
    ABSOLUTE) LCONVERGE(0, ABSOLUTE) PCONVERGE(0.000001, ABSOLUTE)
  /FIXED=Period Formulation Sequence | SSTYPE(3)
  /METHOD=REML
  /RANDOM=Formulation | SUBJECT(Subject) COVTYPE(CSH)
  /REPEATED=Formulation | SUBJECT(Subject*Period) COVTYPE(DIAG)
  /EMMEANS=TABLES(Formulation) COMPARE REFCAT(LAST) ADJ(LSD).

Добровольцам исследований биоэквивалентности (на что стоит обратить внимание)

Не так много информации доступно для добровольцев клинических исследований. Здесь я опишу основные моменты, которые следует учесть перед принятием решения об участии в клиническом исследовании биоэквивалентности (это применимо и к участию в исследованиях первой фазы). Не буду подробно описывать то, что предстоит сделать добровольцу в ходе участия в исследовании – эта информация доступна в информационном листке пациента. Конкретные условия могут отличаться от исследования к исследованию, а задача этой статьи – составить представление о том, какие вопросы необходимо задать себе и исследователю, перед тем как дать согласие на участие. Существует множество аспектов исследования, часть из них связаны с протоколом исследования, другая часть не связана с протоколом, но связана с конкретными исследовательскими центрами, спонсором, контрактной исследовательской организацией. Существует также этические аспекты проведения исследования, при этом необходимо понимать, что этика распространяется не только на спонсора и/или исследователя, по большому счету правила этики распространяются и на участников, хоть и не так явно.   Разумеется, определяющей информацией в исследовании является протокол и его изложение в информационном листке пациента (далее ИЛП), но разбор начнем именно с исследователя, спонсора и клинической исследовательской организации (далее CRO), так как именно со знакомства с исследователем, как правило, для добровольца начинается участие в исследовании.

Читать далее →

IBM SPSS + R Project: Доверительные интервалы для пропорций, независимые группы

Сравнение пропорций является одним из основных методов описания данных и проверки статистических гипотез. И наиболее ценным является интервальная оценка методом построения доверительных интервалов. Гипотезы эффективности, не меньшей эффективности, эквивалентности могут быть проверены с помощью построения доверительных интервалов. Но если мы посмотрим на набор инструментов IBM SPSS, то нам может сперва стать немного дурно, так как SPSS предлагает нам очень скромные возможности. Вместо реализации всего того, что необходимо для оценки разности рисков IBM нам дает либо сложные генерализованные модели, либо интеграцию со средой вычислений R Project (т.е. удочку, т.е. IBM как бы говорит – мы не будет делать статистический пакет со всеми плюшками, мы даем интеграцию нашей оболочки с R и Python). В связи с этим было разработано расширение IBM SPSS для R Project для получения всех требуемых доверительных интервалов для таблицы 2Х2.

Читать далее →

R Project: инструменты для рандомизации в клинических исследованиях

Речь пойдет о двух библиотеках для создания рандомизационных последовательностей. В чем суть проблемы? – Может показаться, что для составления рандомизационных последовательностей подойдет любой способ случайного распределение в группы. Однако, прежде всего необходимо ответить на вопрос: каковы критерии “правильной” рандомизационной последовательности? Попробуем их сформулировать:

  1. Рандомизационная последовательность не должна быть привычной, т.е. одной и той же или с минимальными изменениями для разных исследований;
  2. Рандомизационная последовательность должна быть, генерируемой случайно или псевдо-случайно;
  3. Рандомизационная последовательность должна быть случайной;
  4. Рандомизационная последовательность должна быть воспроизводимой и/или идентифицируемой.

Читать далее →

IBM SPSS раcширение: R Project PowerTOST library

Расширение для IBM SPSS реализует интерфейс для библиотеки PowerTOST среды вычислений R Project. Расширение синтаксиса с помощью команды POWERTOST.

Версия: 1.0.0

Читать далее →

Mediana: an R package for clinical trial simulations – пакет для симуляции клинических исследований

Mediana is an R package which provides a general framework for clinical trial simulations based on the Clinical Scenario Evaluation approach. The package supports a broad class of data models (including clinical trials with continuous, binary, survival-type and count-type endpoints as well as multivariate outcomes that are based on combinations of different endpoints), analysis strategies and commonly used evaluation criteria.

Довольно свежий пакет для R Project. Софта для симуляции клинических исследований не много, а значит надо обязательно изучить этот пакет.

 

 

Разработка собственного синтаксиса – Writing IBM SPSS Statistics Extension Commands

IBM SPSS дает возможность разработки собственных команд синтаксиса. Это средство совместно с применением Python и R Project дает очень широкие возможности применения и расширения функционала SPSS (и это действительно важно, ведь SPSS не дает, к примеру, человеческим образом получить доверительный интервал для разности пропорций).

А если вы захотите найти руководство, то задав поисковику множество запросов по типу:”SPSS syntax development”, “SPSS make syntax command”, “write SPSS syntax command”, “SPSS self syntax command”, “SPSS user defined syntax command”, “разработка команд синтаксиса SPSS”, “пользовательские команды синтаксиса SPSS” – вы получите 0.0 значимой информации (возможно со времени написания заметки ситуация изменится). Тем не менее, если вдруг стало очень надо написать собственную команду синтаксиса – есть прекрасное руководство:   Writing IBM SPSS Statistics Extension Commands.

 

Референсный код IBM SPSS для расчета доверительных интервалов в перекрестном исследовании биоэквивалентности (2X2X2 crossover)

В IBM SPSS для расчтета доверительных интервалов разницы лог-преобразованных параметров используется процедура GLM.
За основу был взять код предложенный пользователем Oiinkie на форуме bebac.at

Небольшая модификация связана с явным указанием фактора для контраста: /CONTRAST(Trt)=Simple(1) – требуется с вниманием указать какой уровень фактора будет референсным.

Дополнительный участок кода использует результаты таблицы контрастов для вычисления искомых доверительных интервалов в привычной форме.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
COMPUTE LnVar=LN(Var).
EXECUTE.

GLM
LnVar BY Per Seq Trt Subj
/CONTRAST(Trt)=Simple(1)
/METHOD=SSTYPE(3)
/INTERCEPT=INCLUDE
/CRITERIA=ALPHA(.1)
/DESIGN= Subj within Seq Per Trt Seq.

BEGIN PROGRAM Python.
import SpssClient, spss
from math import exp
SpssClient.StartClient()
OutputDoc = SpssClient.GetDesignatedOutputDoc()
OutputItemList = OutputDoc.GetOutputItems()
lastTab = OutputItemList.Size() - 3
OutputItem = OutputItemList.GetItemAt(lastTab)
PivotTable = OutputItem.GetSpecificType()
SpssDataCells = PivotTable.DataCellArray()
LL = exp(float(SpssDataCells.GetUnformattedValueAt(5,0)))*100;
UL = exp(float(SpssDataCells.GetUnformattedValueAt(6,0)))*100;
print "90% CI for Trt - Upper: "+str(UL)+" Lower: "+str(LL)
SpssClient.StopClient()
END PROGRAM.

Валидация относительно референсных датасетов далее…

Читать далее →

Референсный код SAS Studio для расчета доверительных интервалов в перекрестном исследовании биоэквивалентности (2X2X2 crossover)

Для того что бы бы выполнить вычисление доверительных интервалов для перекрестносго исследования биоэквиваелнтности, проведенного по конвенциальному дизайну в двух периодах с двумя последовательностями в SAS применима процедура PROC GLM.

При разработке кода необходимо быть уверенным в том, что код функционирует надлежащим образом. Что бы убедиться в этом, после создания, а затем после внесения изменений следует выполнять валидацию кода относительно референсных датасетов. Для валидации представленного кода были использованы датасеты описанные в статье Reference Datasets for 2-Treatment, 2-Sequence, 2-Period Bioequivalence Studies (Helmut Schütz, Detlew Labes, Anders Fuglsang). Указанный набор датасетов позволяет провести валидацию на широком спектре входящих данных и выявить большинство возможных ошибок.

Ядро используемого кода:

1
2
3
4
5
6
7
8
PROC GLM data=pkdata;
CLASS Period Sequence Formulation Subject;
MODEL logCMAX = Sequence Subject(Sequence) Period Formulation/CLPARM ALPHA=0.1;
RANDOM Subject(Sequence) /TEST;
LSMEANS  Formulation / PDIFF=control("R") CL  ALPHA=0.1;
ESTIMATE 'T vs R' Formulation -1 1;
ods output LSMeanDiffCL=LSMeanDiffCL;
RUN;

Читать далее →

Работа с данными в IBM SPSS: присвоение значений для категориальных переменных

Допустим необходимо большому количеству переменных присвоить значения категорий. К примеру есть переменная содержащая значения 1 и 0, где 1 – да, 0 – нет.
Если таких переменных очень много и у каждой свои метки, то присвоение таких меток может занять очень длительное время, но не в том случае если информация о метках уже содержится в какой-либо таблице, к примеру:

ПеременнаяЗначениеМетка
Пол0муж
Пол1жен
Курение0не курит
Курение1курит

Здесь видно, что у каждой переменной есть ряд значений, которым соответствуют метки. Их и надо нам расставить.
Доработаем код из примера “Работа с данными в IBM SPSS: присвоение меток переменным из другого источника“, добавим третий датасет с таблицей меток и выполним присвоение где это требуется.
Читать далее →