You could look into Multiple Factor Analysis. This can be implemented in R with FactoMineR.
UPDATE:
To elaborate, Leann was proposing – however long ago – to conduct a PCA on a dataset with repeated measures. If I understand the structure of her dataset correctly, for a given 'context' she had an animal x
'specific measure' (time to enter, number of times returning to shelter, etc) matrix. Each of the 64 animals (those without missing obs.) were followed three times. Let's say she had 10 'specific measures', so she would then have three 64×10 matrices on the animals' behaviour (we can call the matrices X1
, X2
, X3
). To run a PCA on the three matrices simultaneously, she would have to 'row bind' the three matrices (e.g. PCA(rbind(X1,X2,X3))
). But this ignores the fact that the first and 64th observation are on the same animal. To circumvent this problem, she can 'column bind' the three matrices and run them through a Multiple Factor Analysis. MFA is a useful way of analyzing multiple sets of variables measured on the same individuals or objects at different points in time. She'll be able to extract the principle components from the MFA in the same way as in a PCA but will have a single coordinate for each animal. The animal objects will now have been placed in a multivariate space of compromise delimited by her three observations.
She would be able to execute the analysis using the FactoMineR package in R.
Example code would look something like:
df=data.frame(X1, X2, X3)
mfa1=MFA(df, group=c(10, 10, 10), type=c("s", "s", "s"),
name.group=c("Observation 1", "Observation 2", "Observation 3"))
#presuming the data is quantitative and needs to be scaled to unit variance
Also, instead of extracting the first three components from the MFA and putting them through multiple regression, she might think about projecting her explanatory variables directly onto the MFA as 'supplemental tables' (see ?FactoMineR
). Another approach would be to calculate a Euclidean distance matrix of the object coordinates from the MFA (e.g. dist1=vegdist(mfa1$ind$coord, "euc")
) and put it through an RDA with dist1
as a function of the animal specific variables (e.g. rda(dist1~age+sex+pedigree)
using the vegan package).
It appears you're trying to run a factorial ANOVA but your predictors are not all crossed with each other, this is impossible to do. You would need to provide much more information on the design of your study to give you the best advice but you typically have one of two options here.
You can analyze all of the factors that are crossed, perhaps factor 1-3, and then factor 3-4 in two separate ANOVAs. You might be able to reach good conclusions there. It's possible you don't even really want to say anything about the interaction between 1 and 4 (for example). Or, you could just make one variable that allows you to analyze the data in a one way ANOVA. Without more details I wouldn't unequivocally recommend this. You're going to have to go through and see if there's something you need to extract from the results that cannot be addressed through the former method and whether such a design makes sense. It would mean you have one factor with levels like TTTT, FTTT, TFTT... FFFF.
Best Answer
Repeated Measures
Personally I would pursue a hierarchical model where the basic observations are, for each animal, the 4 (or fewer) levels of odour and the corresponding neuronal responses. And the predictor for the per animal intercept and slope on this relationship is the animal's reproductive status. (Here I'm assuming that your interest is in the effect of reproductive status on these aspects of the response function and to what extent it is distinguishable from individual variation.) That would give you nice interpretable animal level regression parameters, e.g. moving from virgin to mated animals drops the predicted firing rate by x and increases the effect of one unit increase in odour dose by z.
Failing that, a mixed model with reproductive fixed effect would probably also work. Actually I think that's all SPSS 16 offers you anyway.
I wouldn't immediately worry about missing data in this framework. Just try it and then check for robustness of the results, as Rob suggests. The more basic problem is knowing what SPSS is telling you when you fit one of these models. For that, you'll want to read up a bit first. Other folk here may have preferred introductions to mixed models - mine are all R-oriented and therefore not so helpful.
Spikes
If you are working with spike counts they are probably conditionally Poisson distributed (and don't forget the offset, if the exposure during measurement varies). If you don't have the option to specify that fact you might need to fit the model in appropriately adjusted log counts or suchlike.
Missing Data
If you have enough animals missing a few measurements for some of them might be ok. For a lot of missing, there won't be much information as Rob also points out.
If you (or your audience) worry about the missing data, you could do multiple imputation first. If I remember right, and I don't really use SPSS for anything, 16 makes you use AMOS for multiple imputation, but later version have it built into the missing value module. So that might be an option.