# Analysis of error on SAS

#### Toshi

##### New Member
Hi,

I learned statistics using SAS 10 years ago and haven't used stats since then. But I'm back. I remember that before conducting a statistical analysis, we first need to check to see if errors are normally distributed. If not normally distributed, I remember that I was transforming data (e.g., log transformation). But I don't remember how to do that on SAS. Please help me on how to write a code for that.

For my analysis, I have "Group" as a between-subjects variable and "Time" as a within-subject variable. Specifically, different groups went through each of 4 different conditions in 4 different ways. For that reason, I'm using Repeated-measures ANOVA.

#### noetsi

##### Fortran must die
First normality is not required in many cases, at least when you have high n. The central limit theorem for example means when you have several hundred cases that the results are fine even with very non-normal data for ANOVA or Regression. And you test the residuals for non-normality commonly not the raw data.

If you do a transformation you just compute a new variable and then use it in the analysis. For example if you want to log something you do

Code:
PROC SQL;
CREATE TABLE WORK.QUERY_FOR_PERM102_0000 AS
SELECT t1.CD10,
(LOG(t1.CD10)) AS LOGY
FROM SASUSER.PERM102 t1;
QUIT;
Then use the variable LOGY not the original variable in your PROC ANOVA.

That uses SQL which is simpler to me, but you can do functions in DATA steps as well I believe to achieve the same thing.

#### Toshi

##### New Member

First normality is not required in many cases, at least when you have high n. The central limit theorem for example means when you have several hundred cases that the results are fine even with very non-normal data for ANOVA or Regression. And you test the residuals for non-normality commonly not the raw data.

If you do a transformation you just compute a new variable and then use it in the analysis. For example if you want to log something you do

Code:
PROC SQL;
CREATE TABLE WORK.QUERY_FOR_PERM102_0000 AS
SELECT t1.CD10,
(LOG(t1.CD10)) AS LOGY
FROM SASUSER.PERM102 t1;
QUIT;
Then use the variable LOGY not the original variable in your PROC ANOVA.

That uses SQL which is simpler to me, but you can do functions in DATA steps as well I believe to achieve the same thing.