BookmarkSubscribeRSS Feed
jrw187
Calcite | Level 5

Hello,

 

Below is description of my data

 

8 animals

2 treatments (diets)

24 hourly measurements 

4 days of repeated measurements per treatment

(I have a total of 1344 data points)

The response variable, chews/min, is continuous. 

I added a column (timeblock) and coded all the hourly observations into one of 8 3-hr time-blocks because it made more sense to analyze the data this way.

 

I was going to do a mixed model with repeated measures with my primary interest being the forage*timeblock interaction.

 

But here is the problem.  There are certain hours where some of the animals were not eating, and I have recorded values of 0 for the response variable. This obviously is making the data non-normal.  Actually, all of the data that is non-zero looks as if it would follow a normal distribution.  However, the zeros create a problem.  My understanding is that transformations won't help this.  I cannot treat the zeros as outliers and remove them - this is actually important to the study (that there are certain times of day when consumption rate is low and how this differs by diet treatment).  

 

Any suggestions on how to work with and analyze this data would be much appreciated.  If there is any additional information that I have not provided that would make it easier to answer this question or would be required in order to give a full and informed answer, please let me know.

 

Thank you!

2 REPLIES 2
Rick_SAS
SAS Super FREQ

I suggest you look at the FMM (finite mixture model) documentation to assess whether it will suit your needs. It enables you to model the data as a combination of a normal and a zero-inflated distribution. THe doc has one example about cows eating that you might find relevant, and another example that shows how to handle the zero-inflated portion of the model.

 

If you decide that you need a mixed model, then I think you will need to look at PROC NLMIXED. If you do an internet search for the terms:

 

nlmixed zero inflated model sas

 

then you will find several resources that describe the process.

Ksharp
Super User

You could try TWEEDIE distribution if your response variable is >=0 .

 

proc genmod;

model y=x /dist=tweedie ;

run;

hackathon24-white-horiz.png

The 2025 SAS Hackathon has begun!

It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.

Latest Updates

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
  • 2 replies
  • 1291 views
  • 1 like
  • 3 in conversation