The Visual Analytics Alphabet Series – A is for Aggregated Data!
Recent Library Articles
Today, is brought to you by the letter A… which is for Aggregated Data. Aggregated data sources in SAS Visual Analytics 8.3 create smaller, reusable tables of summarized data across selected categories to help improve report efficiency, with performance verified through benchmarking.
SAS Forward: Real Stories, Live Demos and AI Innovation
Ask the Expert
Join us November 4-5 for SAS Forward, a virtual event exploring modern analytics, AI and intelligent decisioning. Discover real-world success stories, explore emerging trends, and see the latest SAS innovations in action through expert-led sessions and live demonstrations.
Developing an optimized two-stage predictive analytics model using SAS Viya to maximize fundraising net operating surplus and identify profitable campaign donors for the SAS Cortex challenge.
... View more
Question for the clinical programmers here. TLF validation is usually well defined (double programming, compare). But the CSR body text also quotes a lot of numbers: p-values, percentages, LS means, hazard ratios. Who checks that those quotes match the final outputs, especially after a late rerun? Is that part of the programming QC, done by the medical writer, or a separate review step? And roughly how long does it take for a phase 3 CSR?
... View more
I'm re-deriving a Kaplan-Meier median with 95% CI from an older CSR (2006) using the ADaM data. The median matches, but the CI only matches with the linear transform, not with the log-log transform that PROC LIFETEST uses by default since 9.2 (I get a lower bound of 23 instead of the printed 24 days). Two questions: is it common in your experience that legacy outputs used CONFTYPE=LINEAR without stating it, and when you re-program legacy tables, do you match the old method or the current default and footnote the difference?
... View more
Hi all, I’m seeing PROC MIXED results change depending on the PLOTS= option, and I’d like to understand why. I can reproduce it with simulated data (code below). Setup (SAS 9.4 M9): a linear mixed model with about 100 rare binary fixed effects in CLASS, a random intercept and slope on time (TYPE=UN), DDFM=KR, and a BY statement over 14 groups. What happens With plots=studentpanel, some BY groups give StdErr = 0, DF = 0 and missing CIs for some terms, and the estimates shift as well. With plots=none and everything else the same, every BY group is clean. On my real data, which BY groups break changes between runs. Reproducible example data have;
call streaminit(2026);
array x[100] x1-x100;
do group = 1 to 14;
do s = 1 to 300;
subjid = group*1000 + s;
b0 = rand('normal', 0, 0.15);
b1 = 0;
array onset[100] _temporary_;
do j = 1 to 100;
p = ifn(j <= 40, 0.004, ifn(j <= 70, 0.01, 0.04));
if rand('uniform') < p then onset[j] = rand('integer', 1, 600);
else onset[j] = .;
end;
do j = 1 to 19 by 2;
if onset[j] > . and rand('uniform') < 0.98 then onset[j+1] = onset[j];
end;
nvis = rand('integer', 4, 12);
do v = 1 to nvis;
time = (v-1)*42 + rand('integer', 0, 7);
do j = 1 to 100;
x[j] = (onset[j] > . and onset[j] <= time <= onset[j] + 60);
end;
y = 0.8 + b0 + b1*time - 0.05*sum(of x1-x10) + rand('normal', 0, 0.12);
output;
end;
end;
end;
keep group subjid time y x1-x100;
run;
proc sort data=have; by group subjid time; run;
ods graphics on;
ods output SolutionF=sf_plots;
proc mixed data=have plots=studentpanel;
by group;
class subjid x1-x100 / ref=last;
model y = x1-x100 / ddfm=kr solution cl;
random intercept time / type=un subject=subjid;
run;
ods output SolutionF=sf_none;
proc mixed data=have plots=none;
by group;
class subjid x1-x100 / ref=last;
model y = x1-x100 / ddfm=kr solution cl;
random intercept time / type=un subject=subjid;
run;
ods graphics off; Result: every group is clean with plots=none. With plots=studentpanel, group 12 has two terms that break: Context: the model is close to singular, with no true random slope variance and some near-duplicate fixed effects. I’ve read the Computational Issues section of the PROC MIXED documentation (https://support.sas.com/documentation/cdl/en/statug/66103/HTML/default/statug_mixed_details58.htm), so I understand why it’s fragile. My guess is that the extra calculations for the student panel change the numerics just enough to tip some terms over the singularity tolerance. Questions Is this known behaviour? Does requesting the residual panel change the computation path in PROC MIXED? Apart from plots=none, is there a recommended way to make results stable here, for example SINGULAR=? Thanks!
... View more
Have you ever opened a flow in SAS Data and AI Studio and wondered exactly what it does? Perhaps you've inherited a flow from a colleague or returned to one you created months ago.
You could examine each node, review the filters and transformations, and follow the connections to understand how everything fits together. But what if you could simply ask?
With SAS Viya Copilot for SAS Data and AI Studio, you can!
Starting with SAS Viya stable release 2026.09, you can use SAS Viya Copilot to explain flows in SAS Data and AI Studio.
... View more