Hi Jenny, (I use the data you provide in the previous e-mail)
For the 1st question, let me assume you only want to compare loc: A vs. B
So you could specified your code like this:
fmAB <- nlme(Y ~ SSlogis(X, Asym, R0, lrc),data = LAST,
            random = Asym ~1,
            fixed = Asym+R0+lrc ~ loc,
            start=c(0.97,0,
                    1.14,0,
                   -0.18,0))
summary(fmAB)
Nonlinear mixed-effects model fit by maximum likelihood
  Model: Y ~ SSlogis(X, Asym, R0, lrc)
 Data: LAST
        AIC       BIC   logLik
  -31.02303 -19.70017 24.51152

Random effects:
 Formula: Asym ~ 1 | loc
        Asym.(Intercept)
StdDev:     1.549779e-06

 Formula: Asym ~ 1 | dir %in% loc
        Asym.(Intercept)   Residual
StdDev:     6.124237e-08 0.09426086

Fixed effects: Asym + R0 + lrc ~ loc
                      Value Std.Error DF   t-value p-value
Asym.(Intercept)  0.9477404 0.1037337 14  9.136280  0.0000
Asym.locB         0.0982456 0.4175971 14  0.235264  0.8174
R0.(Intercept)    1.1289387 0.0652189 14 17.310003  0.0000
R0.locB           0.1390656 0.3946717 14  0.352358  0.7298
lrc.(Intercept)  -0.2110057 0.0656513 14 -3.214036  0.0062
lrc.locB         -0.0820484 0.6826382 14 -0.120193  0.9060

Then you know Asym, R0, and lrc of loc B are not significant. Moreover, you can test the joint fixed effect by
anova(fmAB)(Pinherio and Bate, 2000 Book, p 374)

for the 2nd question, How to get the fitted value for particular level?
Based on this example, let me assume you want to get the fitted value of A/N.

then you could write a small code like this:
FV<-data.frame(F.V=fitted(fmAB), group=summary(fmAB)$groups$dir)
A.N<-FV[is.element(FV$group, c("A/N")),]
         F.V group
9  0.4209011   A/N
10 0.2726129   A/N

hope this is helpful~

Chunhao












Quoting Jenny Sun <[EMAIL PROTECTED]>:

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 <[EMAIL PROTECTED]>:

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





______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to