Since your response is ordinal then you should use ordinal regression. At a very high level, the main difference ordinal regression and linear regression is that with linear regression the dependent variable is continuous and ordinal the dependent variable is ordinal.
Now you can usually use linear regression with an ordinal dependent variable but you will see that the diagnostic plots do not look good. When you say SPSS won't run the linear regression what do you mean? Are you getting an error?
The problem here is what is called separation. For one level of your predictor (age) you have zero occurrences of one level of your outcome (collagen). The program is driving its estimate of the coefficient upwards to infinity and in this case stopping at an arbitrary value which as you point out when exponentiated gives you a very large odds ratio. What you do about it is really a substantive question to do with the underlying science rather than a statistical one.
Added as edit
You ask what separation means. In logistic regression it means that for some value of the predictor (or some linear combination of the predictors) only one value of the outcome occurs. You have a variant of this because you are using an ordinal model rather than logistic regression. What you do is a matter of your underlying science. Finding a perfect predictor may be really desirable for you or you may feel that this is just a chance finding caused by your sample size. There are models for logistic regression (exact logistic regression, Firth's bias corrected method) but I do not know whether they are available for ordinal models.
Further addition
Investigating this further with two R packages (I do not use SPSS) reveals that they agree on there being a problem but give slightly different output. The function polr
from MASS basically agrees with the output in the original question and inspecting the variance-covariance matrix of the coefficients shows that the estimated correlation between age and one of the intercepts is close to 1 in absolute value.
> fit.polr summary(fit.polr)
Call:
polr(formula = coll ~ age + treat + gene, data = res, Hess = TRUE)
Coefficients:
Value Std. Error t value
ageyoung -18.1584 0.2874 -63.1855
treatNMN -0.4546 0.7457 -0.6096
geneig 0.4464 0.5823 0.7667
Intercepts:
Value Std. Error t value
0|1 -17.4775 0.2871 -60.8811
1|2 0.7467 0.5709 1.3080
Residual Deviance: 68.77266
AIC: 78.77266
> cov2cor(vcov(fit.polr))
ageyoung treatNMN geneig 0|1 1|2
ageyoung 1.00000000 -0.06065359 -0.5308460 -0.99998399 -0.3224864
treatNMN -0.06065359 1.00000000 0.1169754 0.06384212 0.5512079
geneig -0.53084598 0.11697536 1.0000000 0.53346172 0.6110366
0|1 -0.99998399 0.06384212 0.5334617 1.00000000 0.3278369
1|2 -0.32248636 0.55120792 0.6110366 0.32783686 1.0000000
The function clm
from the ordinal package rejects the model on the grounds that the Hessian is singular. Using @FrankHarrell suggestion to investigate LRT we find that age is indeed significant.
> fit.clm summary(fit.clm)
formula: coll ~ age + treat + gene
data: res
link threshold nobs logLik AIC niter max.grad cond.H
logit flexible 54 -34.39 78.77 21(0) 5.63e-09 4.5e+09
Coefficients:
Estimate Std. Error z value Pr(>|z|)
ageyoung -23.3992 NA NA NA
treatNMN -0.4546 NA NA NA
geneig 0.4465 NA NA NA
Threshold coefficients:
Estimate Std. Error z value
0|1 -22.7184 NA NA
1|2 0.7467 NA NA
> drop1(fit.clm, test = "Chisq")
Single term deletions
Model:
coll ~ age + treat + gene
Df AIC LRT Pr(>Chi)
78.773
age 1 109.773 33.000 9.215e-09 ***
treat 1 77.151 0.378 0.5387
gene 1 77.365 0.592 0.4417
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Note the a LRT of age is possible here.
My feeling is that there is insufficient information here in the data-set to fit the model with any confidence. If we had a single observation for age == old & coll == 0 then both functions would fit the model (and give identical results) so the problem here is the zeroes for both (age == old & coll == 0) & (age == young & coll == 2).
Best Answer
Yes, it is possible.
When your dependent variable is ordinal, you want to do ordinal logistic regression. This can be done in SPSS. UCLA's excellent statistics help website has a guide to OLR in SPSS here (with more here).
Regarding your independent variables, you have several options:
If you use OLR for your analysis, you can get tests of each variable with standard output. In SPSS these tests are reported in the "Parameter Estimates" table. The assumption you need to worry about / check is the proportional odds assumption, which is assessed via the "Test of Parallel Lines". SPSS can output this for you as well. UCLA's guide to OLR in SPSS (linked above) covers both of these issues.