I split my data into 70% training 20% validation and 10% test sets.
and i run this code :
proc genmod data=valid; class sexe country job; model price = country sexe job / dist=gamma link=log; run;
how can I compute Mean Square Error on validation data set?
Use CODE statement to get VALID table 's predict value.
Once you got predict value , it is easy to get MSE.
proc genmod data=train;
class sex country job;
model price=country sex job/dist=gamma link=log;
code file='c:\mycode.sas';
run;
data Score;
set vallid(rename=(price=old_price)) end=last;
%include 'c:\mycode.sas';
sum+(price-old_price)**2;
if last then mse=sum/_n_;
run;
Use CODE statement to get VALID table 's predict value.
Once you got predict value , it is easy to get MSE.
proc genmod data=train;
class sex country job;
model price=country sex job/dist=gamma link=log;
code file='c:\mycode.sas';
run;
data Score;
set vallid(rename=(price=old_price)) end=last;
%include 'c:\mycode.sas';
sum+(price-old_price)**2;
if last then mse=sum/_n_;
run;
why it's
proc genmod data=train;
and not :
proc genmod data=valid;
I change into "valid" but I got zero as MSE. Is there any function to compute MSE on SAS ?
use TRAIN to get parameter estimator , so you can use it to score VALID data.
Yes.there is function MSE to compute, check documentation and better use IML code to get MSE.
1. Use STORE statement in PROC GENMOD to get model
2. Use PROC PLM with FITSTATISTICS to score dataset and generate stats.
It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.
Use this tutorial as a handy guide to weigh the pros and cons of these commonly used machine learning algorithms.
Find more tutorials on the SAS Users YouTube channel.