BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
zahidhasandipu
Calcite | Level 5

What are the respective codes would be to get these results given below?




1.png2.png

1 ACCEPTED SOLUTION

Accepted Solutions
mkeintz
PROC Star

What share of these students took both tests?  And do you know the id's of those students.   If there are a large number of them, you shold calculate the week4-week1 differences for each of those students.  Then do an analog of this syntax with your sample data (using the pottery example data in my earlier post).  Only in this case, the dependent variables would be the test-score differences, not the scores themselves.

proc glm data=pottery;
   model Al Fe Mg Ca Na = ;
   manova h=_all_ / printe printh;
run;
quit;

I believe this produces a manova test against the null hypothesis of no multivariate change in the 5 outcome measures.  SAS labels it as

MANOVA Test Criteria and Exact F Statistics for the Hypothesis of No Overall Intercept Effect

But if each of your students took only one test, then you can't do student-specific changes.  Instead, you would need a CLASS statement for the "week-of-test" (or whatever you name it) variable, and make that variable the predictor in the model statement. 

 

All this presumes you have a multivariate measure of anxiety.

 

And I guess if you have a substantial number of students who took both tests, and of students who took only one test, then you would have to run two manova's.

 

 

 

--------------------------
The hash OUTPUT method will overwrite a SAS data set, but not append. That can be costly. Consider voting for Add a HASH object method which would append a hash object to an existing SAS data set

Would enabling PROC SORT to simultaneously output multiple datasets be useful? Then vote for
Allow PROC SORT to output multiple datasets

--------------------------

View solution in original post

3 REPLIES 3
mkeintz
PROC Star

This is a multivariate anova run under PROC GLM.  It uses the manova statement, which is documented in the MANOVA Statement section in the chapter on PROC GLM.  If you click on the "details" tab, you'll get a link to the Multivariate Analysis of Variance page which lists the statistics you show in your example. 

 

Go to the Examples tab, and you can play with this SAS sample code for manova.  It's Example 50.6 which I've copied below:

 

title "Romano-British Pottery";
data pottery;
   input Site $12. Al Fe Mg Ca Na;
   datalines;
Llanederyn   14.4 7.00 4.30 0.15 0.51
Llanederyn   13.8 7.08 3.43 0.12 0.17
Llanederyn   14.6 7.09 3.88 0.13 0.20
Llanederyn   11.5 6.37 5.64 0.16 0.14
Llanederyn   13.8 7.06 5.34 0.20 0.20
Llanederyn   10.9 6.26 3.47 0.17 0.22
Llanederyn   10.1 4.26 4.26 0.20 0.18
Llanederyn   11.6 5.78 5.91 0.18 0.16
Llanederyn   11.1 5.49 4.52 0.29 0.30
Llanederyn   13.4 6.92 7.23 0.28 0.20
Llanederyn   12.4 6.13 5.69 0.22 0.54
Llanederyn   13.1 6.64 5.51 0.31 0.24
Llanederyn   12.7 6.69 4.45 0.20 0.22
Llanederyn   12.5 6.44 3.94 0.22 0.23
Caldicot     11.8 5.44 3.94 0.30 0.04
Caldicot     11.6 5.39 3.77 0.29 0.06
IslandThorns 18.3 1.28 0.67 0.03 0.03
IslandThorns 15.8 2.39 0.63 0.01 0.04
IslandThorns 18.0 1.50 0.67 0.01 0.06
IslandThorns 18.0 1.88 0.68 0.01 0.04
IslandThorns 20.8 1.51 0.72 0.07 0.10
AshleyRails  17.7 1.12 0.56 0.06 0.06
AshleyRails  18.3 1.14 0.67 0.06 0.05
AshleyRails  16.7 0.92 0.53 0.01 0.05
AshleyRails  14.8 2.74 0.67 0.03 0.05
AshleyRails  19.1 1.64 0.60 0.10 0.03
;

proc glm data=pottery;
   class Site;
   model Al Fe Mg Ca Na = Site;
   contrast 'Llanederyn vs. the rest' Site 1 1 1 -3;
   manova h=_all_ / printe printh;
run;
--------------------------
The hash OUTPUT method will overwrite a SAS data set, but not append. That can be costly. Consider voting for Add a HASH object method which would append a hash object to an existing SAS data set

Would enabling PROC SORT to simultaneously output multiple datasets be useful? Then vote for
Allow PROC SORT to output multiple datasets

--------------------------
zahidhasandipu
Calcite | Level 5

If I wanted to see if students’ math anxiety decreased from the beginning of class to the end. 386 students were tested in week 1 and 342 students in week 4.

 

How do I tell if there is a change in anxiety from time 1 to time 2?

mkeintz
PROC Star

What share of these students took both tests?  And do you know the id's of those students.   If there are a large number of them, you shold calculate the week4-week1 differences for each of those students.  Then do an analog of this syntax with your sample data (using the pottery example data in my earlier post).  Only in this case, the dependent variables would be the test-score differences, not the scores themselves.

proc glm data=pottery;
   model Al Fe Mg Ca Na = ;
   manova h=_all_ / printe printh;
run;
quit;

I believe this produces a manova test against the null hypothesis of no multivariate change in the 5 outcome measures.  SAS labels it as

MANOVA Test Criteria and Exact F Statistics for the Hypothesis of No Overall Intercept Effect

But if each of your students took only one test, then you can't do student-specific changes.  Instead, you would need a CLASS statement for the "week-of-test" (or whatever you name it) variable, and make that variable the predictor in the model statement. 

 

All this presumes you have a multivariate measure of anxiety.

 

And I guess if you have a substantial number of students who took both tests, and of students who took only one test, then you would have to run two manova's.

 

 

 

--------------------------
The hash OUTPUT method will overwrite a SAS data set, but not append. That can be costly. Consider voting for Add a HASH object method which would append a hash object to an existing SAS data set

Would enabling PROC SORT to simultaneously output multiple datasets be useful? Then vote for
Allow PROC SORT to output multiple datasets

--------------------------

SAS Innovate 2025: Call for Content

Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!

Submit your idea!

Mastering the WHERE Clause in PROC SQL

SAS' Charu Shankar shares her PROC SQL expertise by showing you how to master the WHERE clause using real winter weather data.

Find more tutorials on the SAS Users YouTube channel.

Discussion stats
  • 3 replies
  • 599 views
  • 0 likes
  • 2 in conversation