Recently in the SAS Community Library: SAS' @Sundaresh1 highlights a sometimes overlooked task when applying document embeddings for purposes of similarity-based search. Normalisation of vectors helps obtain relevant matches.
Hello,
I am building models on VA interface. Is it possible to do a 80/20 train/test split in this interface? Or do I need to use SAS Studio or VDMML pipelines to do that split? Thank you!
... View more
Hi,
I am working with a study where we expect an exponential decay relationship between increasing dose and a pharmacodynamic response variable of interest. An initial idea was therefore to model this using an exponential regression model on the form
y = ab x
where b is the parameter of interest to estimate (x is the dose). This could be done fairly easily, since it transforms to linear model on log-scale. However, there are also repeated measurements per patient, since the same patient is measured at different dose levels. To avoid a potential problem of correlated data points in the model, a proposal is to
1) fit the model separately for each patient and
2) Retrieve all estimates of b and
3) Perform a t-test of the values of b to investigate if mean of b is below 1 (proving a dose-dependent response in Y).
However, while this seems to solve the problem of correlated data points, I am doubtful if it is the most efficient/powerful approach to analyse the data. Some patients have very few datapoints (as few as 3), so it does not seem very robust to me to analyse all of them separately. I am contemplating whether the current model could be extended instead with a mixed effect for patient, something like this:
y = apb x
where p is the random effect for patient, allowing observations to be correlated within the same individual.
Would this be a viable alternative? Which approach is preferable? Do I need to extend the modelling approach even further allowing for a random coefficient model?
Any input and ideas would be helpful.
Kind Regards,
JoakimE
... View more
Hi, I have a job flow set up. One of the jobs has a warning (but not an error and does not fail). In this scenario the next job in the flow after the one with the warning does not start and I think this is because of the previous job having a return code. One used to be able to control this in LSF but how does one do this in Viya Flows so that the next job would start and accept a job with warnings as a complete job? I have tried abort 0 in my code which works but this changes the job status to 'Cancelled' which is not ideal. Thanks Andre
... View more
Hi everyone, I am using claims data for analysis and was stuck at one part in continuous enrollment. Any help would be appreciated. Thanks! I need patients who are continuously enrolled for 12 months prior to the index date to at least one month and maximum of 12 months after the index date. A gap of 30 days is acceptable. Also, I'm interested in first enrollment period only. Here's the data I have Data Test; input patid $ dtstart :YYMMDD10. dtend : YYMMDD10.; format dtstart YYMMDD10. dtend YYMMDD10.; cards; 001 2017-01-01 2017-01-31 001 2017-02-01 2017-02-31 001 2017-05-01 2017-05-31 002 2018-01-01 2018-01-31 002 2018-02-20 2018-04-31 003 2020-03-25 2020-12-31 003 2021-01-15 2021-08-31 Output (intermediate): 001 2017-01-01 2017-02-31 001 2017-05-01 2017-05-31 002 2018-01-01 2018-04-31 003 2020-03-25 2021-08-31 Now, patid 001 has two periods of continuous enrollment but I need only one enrollment period. So the desired output should be - 001 2017-01-01 2017-02-31 002 2018-01-01 2018-04-31 003 2020-03-25 2021-08-31 Following is the Code that I think would work. Not tried yet since data takes long time (~ a day) to process so I want to make sure I do it correctly. I just want to share my thought process Data test1; set test (rename = (dtstart = start dtend = end)); ; by patid; retain dtstart dtend enrolcnt; label dtstart = "Enrollment Date Start" dtend = "Enrollment Date End" Enrolcnt = "Enrollment Period Count"; if first.patid then do; dtstart = start; dtend = end; enrolcnt = 1; end; else do; if dtend + 30 >=start then do; if dtend < end then dtend = end; end; end; if last.patid then output; run; Once I get the continuous enrollment period, I will then select patients with continuos enrollment with enrollment start date 12 months prior to the index date to at least one month and maximum of 12 months after the index date. What confuses me is how to code for "at least" part in the previous statement. Should I create a new date variable as (new = index_date + 30)? SAS CODE (definitely incomplete) - Proc sql; create table test3 as select a.*, b.dtstart, b.dtend from data_index_date as a right join test1 as b on a.patid = b.patid where intnx ('day', a.index_date, -365) GE b.dtstart and a.index_date LT b.dtend order by patid; quit;
... View more
Hello, I ran a linear mixed model with repeated measures using PROC MIXED. I used the RCORR statement to obtain the intraclass correlation coefficient (ICC) for the non-independent variable 'score' across readers. Is there a function within PROC MIXED that outputs the 95% CI and p-value for the ICC? PROC MIXED DATA=final COVTEST;
CLASS subject_id reader (REF='1');
MODEL score = reader / S CL;
REPEATED / SUBJECT=subject_id TYPE=cs R RCORR;
RUN; Thank you for your help!
... View more