Anova-n outputs as not full rank. Returns NaN P-value.

21 views (last 30 days)
I am trying to analyze a set of specimens made with three different processing parameters of interest. Dwell time (how long it is pressed and heated), max temperature achieved, and maximum pressure applied during fabrication. For example. A specimen could be made with 168 Celsius, 300 seconds of dwell time, and 483 kPa of pressure, or 204 Celsius, 800 seconds of dwell time, and 689 kPa of pressure, Or 204 Celsius, 300 seconds of dwell time, and 483 kPa of pressure, and so on.
These parameters will have an effect on the strength of the specimen. The strength of each specimen has been found via experimental testing and is listed in "y0". I would like to determine which processing parameters have an impact on the strength (the higher strength the better).
When I run the code for an ANOVA-N, it returns NaN for the P-value saying none of my measurements are full rank.
gX1=["168" "168" "168" "168" "168" "168" "168" "168" "168" "168" "168" "168" "168" "168" "168" "204" "204" "204" "204" "204" "204" "204" "204" "204" "204" "204" "204" "204" "204" "204"]
gX1 = 1×30 string array
"168" "168" "168" "168" "168" "168" "168" "168" "168" "168" "168" "168" "168" "168" "168" "204" "204" "204" "204" "204" "204" "204" "204" "204" "204" "204" "204" "204" "204" "204"
gX2=["483" "483" "483" "483" "483" "483" "483" "689" "689" "689" "689" "689" "689" "689" "689" "483" "483" "483" "483" "483" "483" "483" "689" "689" "689" "689" "689" "689" "689" "689"]
gX2 = 1×30 string array
"483" "483" "483" "483" "483" "483" "483" "689" "689" "689" "689" "689" "689" "689" "689" "483" "483" "483" "483" "483" "483" "483" "689" "689" "689" "689" "689" "689" "689" "689"
gX3=["300" "300" "300" "300" "300" "300" "300" "600" "600" "600" "600" "600" "600" "600" "600" "600" "600" "600" "600" "600" "600" "600" "300" "300" "300" "300" "300" "300" "300" "300"]
gX3 = 1×30 string array
"300" "300" "300" "300" "300" "300" "300" "600" "600" "600" "600" "600" "600" "600" "600" "600" "600" "600" "600" "600" "600" "600" "300" "300" "300" "300" "300" "300" "300" "300"
y0=[18.2919831666125;
12.5641727939410;
15.3621391423407;
14.2489632470725;
13.3879424625516;
16.5153213712401;
16.4715840677642;
23.1366242658033;
22.3254273493200;
22.5234847436383;
23.4593859332890;
23.1149682822853;
24.1407966949033;
25.0761899528730;
23.8484621339037;
19.8895058992870;
18.5343968548295;
19.8404597873812;
19.0451878113906;
17.3858461481879;
17.0566716618079;
17.2640841888405;
22.7626298124232;
22.8208067604289;
21.9108601449323;
20.8905709384620;
21.5143053296674;
19.6368344554986;
18.3404852458128;
18.2286716918400;]
y0 = 30×1
18.2920 12.5642 15.3621 14.2490 13.3879 16.5153 16.4716 23.1366 22.3254 22.5235
[yy,zz,Xstats]=anovan(y0,{gX1,gX2,gX3},'model','interaction','varnames',{'Temp','Pressure','Time'});
How do I fix this?
Thanks,
Luck

Accepted Answer

Jeff Miller
Jeff Miller on 13 Dec 2022
The short answer is that you have to collect more data to fix this. Look here:
>> crosstab(gX1,gX2,gX3)
ans(:,:,1) =
7 0
0 8
ans(:,:,2) =
0 8
7 0
You only have data in 4 of the 8 cells of your 2x2x2 design. With this arrangement, the main effect of each factor is confounded with the 2-way interaction of the remaining two factors, so there is no way to estimate all of the main effects and 2-way interactions simultaneously. In matrix terms, the predictor matrix including all of these terms is not full rank.
If you don't want to collect more data, then you can only estimate a subset of the main effect and 2-way interaction terms. One way to do that is to leave out factors--just analyze them two at a time. Another way to do that is to use the terms matrix to indicate which factors and interactions to include versus ignore. But with either of those options, you should keep in mind that the effects of the terms you leave out are still in there, contributing to the apparent effects of the terms that you include.
  3 Comments
Jeff Miller
Jeff Miller on 13 Dec 2022
Collectively, these ANOVAs have all the information you can get from these data. The last ANOVA is the most informative one--it is telling you that there are statistically reliable main effects of pressure and time, but nothing else. Note that the small Pressure:Time interaction (SS = 0.426) is redundant with the Temp main effect (also SS = 0.426 in the other ANOVAs). This is due to the confounding that I mentioned in the earlier answer. In this case, the confounding doesn't pose an interpretation a problem because there is no effect of either Temp or Pressure:Time. There is no need to pull apart these two confounded sources of variance because they are both small or nonexistent.

Sign in to comment.

More Answers (0)

Products


Release

R2020b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!