[R] NLME questions -- interpretation of results
Jenny Sun
jenny.sun.sun at gmail.com
Thu Jul 3 05:03:16 CEST 2008
Thank you for your reply Chunhao!
I attached only part of the test data and that is why you might not be able to get convergence. Sorry.
I have a couple more questions:
For the second question you answered, how to specify the correct length of starting values. I tried using the length of levels in each of the parameters in the start list but found:
>fm1 <- nlme(DIFN ~ SSlogis(SVA, Asym, R0, lrc),data = LAST,fixed = Asym + R0 + lrc ~ dir %in% loc,random = Asym ~ 1,start =list(Asym = c(1,1,1,1), R0 = c(1,1,1,1), lrc = c(-5,-2,-2,-2)))
Error in nlme.formula(DIFN ~ SSlogis(SVA, Asym, R0, lrc), data = LAST, :
start must have a component called "fixed"
I've got two loc levels (A,B) with four group levels(N,E,S,W); How I am gonna define the list and the component called"fixed"?
My another question is about the fitted value of the model. If I want to calculate adjusted R square, I have to get fitted(fm1). WHich has values like this;
>fitted(fm1)[1:40]
AB/N AB/N AB/E AB/S AB/W AB/W AB/W AB/W AB/W AB/W
0.6541876 0.7421748 0.8408251 0.5879220 0.4889387 0.6129576 0.5097593 0.6195679 0.5152567 0.5680860
AB/W AB/W AB/W AB/W AB/W AB/W AB/N AB/N AB/N AB/E
0.4724423 0.8128148 0.7674529 0.7106698 0.6553155 0.6074771 0.5036201 0.5464105 0.6062978 0.6878438
AB/N AB/N AB/N AB/S AB/S AB/S AB/S AB/S AB/S AB/S
0.7792725 0.8411961 0.7942503 0.7354845 0.5895700 0.6781973 0.6286886 0.5212052 0.8864748 0.8370021
AB/S AB/S AB/N AB/N AB/N AB/N AB/E AB/E AB/E AB/E
0.7750731 0.7147024 0.6625288 0.5492599 0.5959280 0.6612426 0.7501786 0.8498928 0.6274681 0.7118615
My question is how to get the fitted values for specified group levels (eg. values for AB/E)?
Thank all very much!
Jenny
>Hi Jenny,
>I try your code but I did not get in converge in fm3 (see the below).
>For the first question, you could use fm1 to interpret the result
>without bothering fm2 and fm3. It means that R0 and lrc can be treated
>as pure fixed effects (Pinherir and Bates, 2000 Book).
>
>For the second question, your want to know "is AB/E different from the AB/S"
>
>The simplest way is to change your fixed statement:
>fixed = Asym+R0+lrc ~ dir %in% loc
>and specify the correct length of starting values.
>
>If I am wrong please correct me~
>
>Hope this helpful.
>
>Chunhao Tu
>
>> test<-read.table(file="C:\\Documents and
>> Settings\\ado_cabgfaculty\\Desktop\\sun.txt", header=T)
>> LAST<-groupedData(Y~X|loc/dir, data=test)
>>
>> fm1 <- nlme(Y ~ SSlogis(X, Asym, R0, lrc),data = LAST,
>+ random = Asym ~1,
>+ fixed = Asym+R0+lrc ~ 1,
>+ start=c(Asym = 0.97, R0 = 1.14, lrc = -0.18))
>> fm2 <- update(fm1, random = pdDiag(Asym + R0 ~ 1))
>> fm3 <- update(fm2, random = pdDiag(Asym+R0+lrc~ 1))
>Error in nlme.formula(model = Y ~ SSlogis(X, Asym, R0, lrc), data = LAST, :
> Step halving factor reduced below minimum in PNLS step
>
>
>
>
>Quoting Jenny Sun <jenny.sun.sun at gmail.com>:
>
>> My special thanks to Chunhao Tu for the suggestions about testing
>> significance of two locations.
>>
>> I used logistic models to describe relationships between Y and X at
>> two locations (A & B). And within each location, I have four groups
>> (N,E,S,W)representing directions. So the test data can be arranged as:
>>
>> Y X dir loc
>> 0.6295 0.8667596 S A
>> 0.7890 0.7324820 S A
>> 0.4735 0.9688875 S A
>> 0.7805 1.1125239 S A
>> 0.8640 0.9506174 E A
>> 0.9445 0.6582157 E A
>> 0.8455 0.5558860 E A
>> 0.9380 0.3304870 E A
>> 0.4010 1.1763090 N A
>> 0.2585 1.3202890 N A
>> 0.3750 1.1763090 E A
>> 0.3855 1.3202890 E A
>> 0.3020 1.1763090 S A
>> 0.2300 1.3202890 S A
>> 0.3155 1.1763090 W A
>> 0.8890 0.6915861 W B
>> 0.9185 0.6149019 W B
>> 0.9275 0.5289258 W B
>> 0.8365 0.9507088 S B
>> 0.7720 0.8842165 N B
>> 0.8615 0.8245123 N B
>> 0.9170 0.7559687 W B
>> 0.9590 0.6772720 W B
>> 0.9900 0.5872023 W B
>> 0.9940 0.4849064 W B
>> 0.7500 0.9560776 W B
>>
>>
>> The data is grouped using:
>>
>>> LAST<-groupedData(Y~X|loc/dir, data=test)
>>
>> I then used logistic models to define the relationship between Y and
>> X, and got fm1, fm2, and fm3 as follows:
>>
>> --------------------------
>>> fm1 <- nlme(DIFN ~ SSlogis(SVA, Asym, R0, lrc),data = LAST,fixed =
>>> Asym + R0 + lrc ~ 1,random = Asym ~ 1,start =c(Asym = 1, R0 = 1,
>>> lrc = -5))
>>> fm2 <- update(fm1, random = pdDiag(Asym + R0 ~ 1))
>>> fm3 <- update(fm2, random = pdDiag(Asym + R0 + lrc ~ 1))
>>> anova(fm1,fm2,fm3)
>> ------------------------------------------------------------
>> ANOVA showed:
>>
>>> anova(fm1,fm2,fm3)
>> Model df AIC BIC logLik Test L.Ratio p-value
>> fm1 1 7 -1809.913 -1774.304 910.9564
>> fm2 2 9 -1805.774 -1758.295 910.8871 1 vs 2 0.1386696 0.9999
>> fm3 3 12 -1801.822 -1742.473 910.9109 2 vs 3 0.0475543 0.9666
>>
>> ** question: do the results show that fm1 could represent the
>> results of fm2 and fm3?
>>
>>> coef(fm1)
>> Asym R0 lrc
>> AB/E 0.9148927 1.389432 -0.3009858
>> AB/N 0.8775250 1.389432 -0.3009858
>> AB/S 0.9247592 1.389432 -0.3009858
>> AB/W 0.8479180 1.389432 -0.3009858
>> BC/E 0.8791908 1.389432 -0.3009858
>> BC/N 0.8414229 1.389432 -0.3009858
>> BC/S 0.9169323 1.389432 -0.3009858
>> BC/W 0.8817838 1.389432 -0.3009858
>>
>> ** question: how could I know if any of the models is significantly
>> different from the other ones? (eg. AB/E is different from the AB/S)?
>>
>>> summary(fm1)
>> Nonlinear mixed-effects model fit by maximum likelihood
>> Model: DIFN ~ SSlogis(SVA, Asym, R0, lrc)
>> Data: LAST
>> AIC BIC logLik
>> -1809.913 -1774.304 910.9564
>>
>> Random effects:
>> Formula: Asym ~ 1 | loc
>> Asym
>> StdDev: 2.303402e-05
>>
>> Formula: Asym ~ 1 | dir %in% loc
>> Asym Residual
>> StdDev: 0.03208693 0.1741559
>>
>> Fixed effects: Asym + R0 + lrc ~ 1
>> Value Std.Error DF t-value p-value
>> Asym 0.8855531 0.015375906 2783 57.59355 0
>> R0 1.3894322 0.009418047 2783 147.52869 0
>> lrc -0.3009858 0.012833066 2783 -23.45393 0
>> Correlation:
>> Asym R0
>> R0 -0.440
>> lrc -0.452 0.150
>>
>> Standardized Within-Group Residuals:
>> Min Q1 Med Q3 Max
>> -4.1326757 -0.6117037 0.1082112 0.6575250 3.3297270
>>
>> Number of Observations: 2793
>> Number of Groups:
>> loc dir %in% loc
>> 2 8
>>
>>
>> I have marked all the codes and questions(**). Any answers and
>> suggestions are appreciated.
>>
>> Have a good day!
>>
>> Jenny
>>
>>
More information about the R-help
mailing list