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

Hi, 

What does a "." mean in the proc mixed? I get this for the variable TRT. For some reason, it runs perfectly well when I input data for 50 subjects but when I use the same model for 30 subjects TRT is a ".". 

 

This is the code:

PROC MIXED DATA=MEANS30;

CLASS ID SEX AGE SES TRT BL0;
MODEL TOTAL = TRT|SEX|AGE BL0/ OUTPM=MEANS30RESIDS RESIDUAL VCIRY;
REPEATED SES/TYPE=CS SUB=ID;
LSMEANS TRT|SEX|AGE/ADJUST=TUKEY;
RUN;

 

Thanks!

1 ACCEPTED SOLUTION

Accepted Solutions
PaigeMiller
Diamond | Level 26

We want BL0 to be a covariate. This variable is continuous. 

 

Take BL0 out of the CLASS statement. This most likely solves the problem you are having.

--
Paige Miller

View solution in original post

7 REPLIES 7
ballardw
Super User

The dot is the default value that SAS uses to display any missing numeric.

you can change the character using the OPTIONS statement.

 

For example run:

options missing='?';

before the proc mixed.

 

I suspect there are other differences in your data other than the number of observations.

In some cases you may get a "missing" indicator because a statistic or parameter cannot be estimated for some reason with the specific data, model and options chosen.

Without example output, or better yet input data, the exact cause will remain a mystery.

ANKH1
Pyrite | Level 9

Thank you for your response!

This is output table I get when I run proc mixed:

 

Type 3 Tests of Fixed Effects

 

Num      Den

Effect                    DF           DF           F Value             Pr > F

 

TRT                         4              0              3.59                    .

SEX                         1              29           12.79              0.0012

SEX*TRT                 4              0             3.33                     .

AGE                         1             29            1.01                0.3235

AGE*TRT                3              0             3.19                      .

SEX*AGE                1              29           0.02                 0.8845

SEX*AGE*TRT       2              0             1.39                      .

BL0                         131          0             16.86                    .

 

This is the proc mixed model

PROC MIXED DATA=MEANS32;
CLASS ID SEX AGE SES TRT BL0;
MODEL TOTAL = TRT|SEX|AGE BL0/ OUTPM=MEANS32RESIDS RESIDUAL VCIRY;
REPEATED SES/TYPE=CS SUB=ID;
LSMEANS TRT|SEX|AGE/ADJUST=TUKEY;
RUN;

 

We want BL0 to be a covariate. This variable is continuous. 

 

This is the header of the datalines:

 

DATA MEANS32;
INPUT ID$   SEX$   AGE$   SES$   TRT$   BL0   BL120  TOTAL  PRE  POST  MEAL;
DATALINES;

PA03 M O 3 A 75.25 79 62.85 74.94 14.50 -70.5
PB05 F O 4 A 58.25 71.25 50.88 61.66 7.75 -62.5
PS06 M O 5 A 81.25 82.25 67.60 79.63 19.50 -63.75
PR08 M O 2 A 60 86.25 60.40 72.41 12.38 -75.75
PA10 F O 1 A 59.75 95.75 62.30 76.56 5.25 -90

 

Weird thing is that when we used data for 50 id's it ran everything, but when we reduced that number to 30 we got the output showed above (Type 3 Tests of Fixed Effects). 

 

With this info, is it possible to know why is that happening?

 

Thanks in advance

Rick_SAS
SAS Super FREQ

Looks like the number of joint levels of TRT|SEX|AGE exceeds the number of observations, so there are not enough denominator degrees-of-freedom to perform an F test. Is age really a classification variable? AGE is a character variable with ... how many levels? Six or more?

PaigeMiller
Diamond | Level 26

We want BL0 to be a covariate. This variable is continuous. 

 

Take BL0 out of the CLASS statement. This most likely solves the problem you are having.

--
Paige Miller
ANKH1
Pyrite | Level 9

It worked! Now we don't get any missing values on the type 3 effects output table. This by removing the covariate from the CLASS statement. Why is that? 

Thank you!

PaigeMiller
Diamond | Level 26

@ANKH1 wrote:

It worked! Now we don't get any missing values on the type 3 effects output table. This by removing the covariate from the CLASS statement. Why is that?


If you submit the right code, where you tell SAS that a continuous variable is continuous (by not putting it in the CLASS statement), SAS does what you want.

 

If you tell SAS a continuous variable is a CLASS variable, which it is not, it will eat up a lot of degrees of freedom, and then many other things in your model can't be estimated because there aren't enough degrees of freedom left.

--
Paige Miller
ANKH1
Pyrite | Level 9

Thanks for explaining that!

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!

What is ANOVA?

ANOVA, or Analysis Of Variance, is used to compare the averages or means of two or more populations to better understand how they differ. Watch this tutorial for more.

Find more tutorials on the SAS Users YouTube channel.

Discussion stats
  • 7 replies
  • 2114 views
  • 3 likes
  • 4 in conversation