Как создать совокупное медианное поле в SAS VA 7.4 Designer? - PullRequest
0 голосов
/ 14 мая 2018

Рассмотрим таблицу списков в VA 7.4 Designer.Он имеет только два поля (Месяц, Медиана пациентов).Желание состоит в том, чтобы рассчитать совокупную медиану за месяцы.Эта совокупная медиана помечена как «Медиана пациентов».Пример данных с более описательными шагами прилагается.

Пожалуйста, посмотрите.Примечание: Легко рассчитать ежемесячную медиану пациентов, просто используя медианную функцию в VA 7.4 Designer (а не желание).Кумулятивная медиана желательна.

Спасибо и веселитесь.

Sample Data
-------------
Account ID  Month       #patients
----------  -------     ----------
1       Jan2017     5
2       Jan2017     3
3       Feb2017     7
4       Feb2017     6
5       Feb2017     2
6       Mar2017     4
7       Apr2017     1
8       Apr2017     10
9       Apr2017     9
10      Apr2017     3



Typical calculation in SAS VA 7.4
-----------------------------------
Monthly Median (Easy using median function)
-------------------------------------------
Month       Median Patients
---------   ---------------     
Jan2017     4       ( 5+3 ) /2
Feb2017     6       middle of ( 2,6,7 )
Mar2017     4       
Apr2017     6       middle of ( 1,3,9,10 )  = (3+9)/2 = 6



Cumulative Monthly Median (Desired in SAS VA 7.4) Any idea how to calculate this assuming this is in a List Table with only two fields (Month and Median Patients)?
------------------------------------------------------------------------------------------------------------------------------------------------------------
Month       Median Patients
--------    -----------------
Jan2017     4       ( 5+3 ) /2
Feb2017     5       middle of ( 2,3,5,6,7 )     = 5
Mar2017     5       middle of (2,3,4,5,6,7 )    = (4+5) /2 = 4.5(approx. 5 when rounded)
Apr2017     5       middle of(1,2,3,3,4,5,6,7,9,10) = (4+5) /2 = 4.5(approx. 5 when rounded)

Ответы [ 2 ]

0 голосов
/ 15 мая 2018

В VA Designer:

  1. Создайте параметр даты с именем monthyear и присвойте ему тот же формат, что и для поля Month,
  2. В теле вашего отчета Создайтеdrop-down & List-Table объекты,
  3. Назначьте поле Month для drop-down, затем перейдите на вкладку ролей и в окне параметров выберите monthyear;который вы только что создали,
  4. Выберите Список-Таблицу, назначьте Месяц, Пациент (убедитесь, что агрегат является медианой), затем перейдите на вкладку фильтров и создайте фильтр авансов, используя точку, и нажмите: Month <= monthyear
  5. Теперь взаимодействие настроено, убедитесь, что при выборе даты в раскрывающемся списке отображаются правильные данные для расчета, будет рассчитана медиана за месяц

dropdwon

Удалите поле Месяц / Дата из таблицы, после чего будет рассчитана совокупная медиана
0 голосов
/ 14 мая 2018

Для этого используйте код SAS;Я Left Join разделил данные для себя на month <= month (чтобы рассчитать совокупную медиану за каждый месяц).

Данные:

data have;
 infile datalines dlm=',' dsd;
 informat Month monyy7.;
 format Month monyy7.;
 input Account_ID  Month    patients;
 datalines;
1,Jan2017,5
2,Jan2017,3
3,Feb2017, 7
4,Feb2017,6
5,Feb2017, 2
6,Mar2017 , 4
7,Apr2017,1
8,Apr2017,10
9,Apr2017, 9
10, Apr2017 ,3
;
run;

Совокупная медиана:

proc sql;
create table want as 
select t1.Month , median(t2.patients) as Cumm_Median , round(median(t2.patients)) as Cumm_Median_rounded
from have as t1 left join have as t2
on t2.Month le t1.month
group by t1.month
order by t1.Month
;
quit;

Вывод:

 Month=JAN2017 Cumm_Median=4 Cumm_Median_rounded=4
 Month=FEB2017 Cumm_Median=5 Cumm_Median_rounded=5
 Month=MAR2017 Cumm_Median=4.5 Cumm_Median_rounded=5 
 Month=APR2017 Cumm_Median=4.5 Cumm_Median_rounded=5
...