Creating an AI Assistant for SAS Viya in 5 steps (@sassoftware/viya-assistantjs) - Part I
Recent Library Articles
Recently in the SAS Community Library: SAS' @kumardeva debunks the myth that developing AI assistants is too hard. He shows you how to use the @sassoftware/viya-assistantjs library to jump start your development.
NEWS YOU CAN USE
In this month's edition of our SAS Viya Release Updates, you'll find out how to change the privacy level of a semantic type in the SAS Information Catalog, run SAS DATA step code directly in SingleStore, and check out the eight new steps added to SAS Studio. Plus, learn how to automatically add missing values in our tip of the month. Happy reading!
NEW VIYA FEATURES
Check out these new features and what they mean for you.
Product: SAS Information Governance
New feature: Review and manage semantic types.
Description: Through the new classifications UI inside of SAS Information Catalog, authorized users can change the information privacy level of a semantic type. Learn more.
Product: SAS Viya with SingleStore
New feature: Run DATA steps directly in SingleStore.
Description: SAS Viya with SingleStore is now able to run SAS DATA step code directly in SingleStore. Learn more.
Product: SAS Studio
New feature: Eight new steps in SAS Studio – from preparing data to machine learning.
Description: The latest release of SAS Studio Analyst and SAS Studio Engineer gives you eight new steps ranging across the different capabilities of SAS Viya. Learn more.
SPOTLIGHT USE CASE
Review and manage semantic types
Depending on your organization's needs, you might need to increase or decrease the sensitivity of personal identifiable information (PII) within your SAS Viya environment. Now you can change the default classifications inside SAS Information Catalog, and the corresponding flags that appear on a table level inside of SAS Information Catalog and SAS Visual Analytics will change accordingly. This allows you to easily control the privacy level of data.
TIP OF THE MONTH
Brought to you by David Weik Senior Pre-Sales Solutions Architect, SAS
As you are building your decisions, you are continuously adding more and more elements to them. You might be pulling in a prebuilt rule set, or you might be adding a model to the decision that a data scientist built. Along the way, you may have to add more and more missing variables, which can feel a bit cumbersome. That is a perfect opportunity to go into the SAS Intelligent Decisioning application settings and check the box to automatically add missing variables for you.
Learn more.
... View more
Hi, do you guys ever work with Verhoeff check digit algorithm (https://en.wikipedia.org/wiki/Verhoeff_algorithm) with SAS? I am trying to use sas for verhoeff check digit but havent found any script to do so.
... View more
Good day everyone, New EG user here. I am working with a legacy program that looks for lab errors. The numeric errors are assigned a number that represents a letter code. Error #14 has been changed at the lab into 14A and 14B, which results in log notes stating "Invalid numeric data, "14A", at line 115 column 78. How can I edit the code to prevent this? ****import parameter files***; %macro newdata (outfile, filename,param,param_g,param_error, param_a); data first; %let _EFIERR_ = 0; /* set the ERROR detection macro variable */ infile &filename delimiter = ',' MISSOVER DSD lrecl=32767 firstobs=1 ; informat year best32. ; informat month best32. ; informat day best32. ; informat labid best32. ; informat ¶m_g $2. ; informat ¶m best32. ; informat ¶m_error best32. ; informat ¶m_a $2. ; *informat labsignoff $3. ; format year best12. ; format month best12. ; format day best12. ; format labid best12. ; format ¶m_g $2. ; format ¶m 7.3 ; format ¶m_error best12. ; format ¶m_a $2. ; *format labsignoff $3. ; input year month day labid ¶m_g $ ¶m ¶m_error ¶m_a $ ;*labsignoff $ ; if _ERROR_ then call symputx('_EFIERR_',1); /* set ERROR detection macro variable */ run; proc sort; by labid year month day; data &outfile; set first; if ¶m_error = 0 then do; ¶m_A = "";end; if ¶m_error = 23 then do; ¶m_A = "QQ";end; if ¶m_error = 1 then do; ¶m_A = "A"; ¶m = .; end; if ¶m_error = 22 then do; ¶m_A = "JJ";end; if ¶m_error = 18 then do; ¶m_A = "RR";end; if ¶m_error = 6 then do; ¶m_A = "RR";end; if ¶m_error = 9 then do; ¶m_A = "V";¶m = .;end; if ¶m_error = '14A' then do; ¶m_A = "FF";end; if ¶m_error = '14B' then do; ¶m_A = "V"; end; *proc print; %mend; Thanks for considering this puzzle.
... 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
I am using proc transpose to change the table from wide to long. But in the column "old-column" the old some variable names are truncated. What can I do, to get them in the original length?
proc transpose data=have
name =old_column
out=want
by column_to_keep;
run;
Thanks,
Markus
... View more