Semanas = rep(c(2,4,6,8),3)
Temperatura = c(rep(0,4),rep(10,4),rep(20,4))
concentra = c(45,47,46,46,45,43,41,37,34,28,21,16)
cbind(Semanas,Temperatura,concentra)
##       Semanas Temperatura concentra
##  [1,]       2           0        45
##  [2,]       4           0        47
##  [3,]       6           0        46
##  [4,]       8           0        46
##  [5,]       2          10        45
##  [6,]       4          10        43
##  [7,]       6          10        41
##  [8,]       8          10        37
##  [9,]       2          20        34
## [10,]       4          20        28
## [11,]       6          20        21
## [12,]       8          20        16
library(gamlss)
ajuste = gamlss(concentra/100 ~ factor(Temperatura):Semanas, family = BE(mu.link = "log"))
## GAMLSS-RS iteration 1: Global Deviance = -38.9135 
## GAMLSS-RS iteration 2: Global Deviance = -80.0541 
## GAMLSS-RS iteration 3: Global Deviance = -80.6867 
## GAMLSS-RS iteration 4: Global Deviance = -80.6867
summary(ajuste)
## ******************************************************************
## Family:  c("BE", "Beta") 
## 
## Call:  gamlss(formula = concentra/100 ~ factor(Temperatura):Semanas,  
##     family = BE(mu.link = "log")) 
## 
## Fitting method: RS() 
## 
## ------------------------------------------------------------------
## Mu link function:  log
## Mu Coefficients:
##                                Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                   -0.770005   0.015240 -50.526 3.11e-10 ***
## factor(Temperatura)0:Semanas  -0.000723   0.003096  -0.234 0.822002    
## factor(Temperatura)10:Semanas -0.023630   0.003277  -7.211 0.000176 ***
## factor(Temperatura)20:Semanas -0.132557   0.004384 -30.240 1.12e-08 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## ------------------------------------------------------------------
## Sigma link function:  logit
## Sigma Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  -4.0069     0.2077  -19.29 2.51e-07 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## ------------------------------------------------------------------
## No. of observations in the fit:  12 
## Degrees of Freedom for the fit:  5
##       Residual Deg. of Freedom:  7 
##                       at cycle:  4 
##  
## Global Deviance:     -80.68674 
##             AIC:     -70.68674 
##             SBC:     -68.2622 
## ******************************************************************
plot(Semanas[Temperatura==10],fitted.values(ajuste)[Temperatura==10], col = "red", xlab = "Semanas", 
     ylim = c(0.1,0.5), pch = 19, ylab = "Concentração", main = "Observados x preditos", type = "p")
lines(Semanas[Temperatura==10],concentra[Temperatura==10]/100, col = "blue", pch = 19)
points(Semanas[Temperatura==20],fitted.values(ajuste)[Temperatura==20], col = "green", pch = 19)
lines(Semanas[Temperatura==20],concentra[Temperatura==20]/100, col = "orange", pch = 19)
points(Semanas[Temperatura==0],fitted.values(ajuste)[Temperatura==0], col = "brown", pch = 19)
lines(Semanas[Temperatura==0],concentra[Temperatura==0]/100, col = "black", pch = 19)
grid()
text(7,0.49, "Temperatura 0")
text(7,0.35, "Temperatura 10")
text(7,0.21, "Temperatura 20")

plot(ajuste)

## ******************************************************************
##        Summary of the Quantile Residuals
##                            mean   =  0.0004788113 
##                        variance   =  1.091033 
##                coef. of skewness  =  -0.5587208 
##                coef. of kurtosis  =  1.639019 
## Filliben correlation coefficient  =  0.9185558 
## ******************************************************************

Por exigência do pacote rsq o objeto R não pode ser gamlss, nesse caso observando a relação entre média e variância na regressão Beta utilizamos o ajuste com família quasi, nesta somente especificamos a relação entre média e variância. Fizemos isto para obtermos o valor do \(R_V^2\) que, assim como outros coeficientes de correlação, estão programados nesse pacote de funções.

ajuste1 = glm(concentra/100 ~ factor(Temperatura):Semanas, family = quasi(link = "log", variance = "mu(1-mu)"))
summary(ajuste1)
## 
## Call:
## glm(formula = concentra/100 ~ factor(Temperatura):Semanas, family = quasi(link = "log", 
##     variance = "mu(1-mu)"))
## 
## Deviance Residuals: 
##       Min         1Q     Median         3Q        Max  
## -0.031819  -0.007713   0.000978   0.016685   0.017641  
## 
## Coefficients:
##                                 Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                   -0.7698793  0.0187136 -41.140 1.34e-10 ***
## factor(Temperatura)0:Semanas  -0.0007468  0.0037945  -0.197 0.848874    
## factor(Temperatura)10:Semanas -0.0236436  0.0040419  -5.850 0.000383 ***
## factor(Temperatura)20:Semanas -0.1326297  0.0053578 -24.755 7.58e-09 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for quasi family taken to be 0.0004770307)
## 
##     Null deviance: 0.5587542  on 11  degrees of freedom
## Residual deviance: 0.0038237  on  8  degrees of freedom
## AIC: NA
## 
## Number of Fisher Scoring iterations: 3
library(rsq)
rsq.v(ajuste1)
## [1] 0.993234

No material de consulta, seção III.3. Testes de hipóteses e sub-seção Testando Hipóteses Não Lineares explica-se como fazer quando o objetivo é encontrar estimativas de funções de parâmetros da regressão, inclussive explica-se como encontrar intervalos de confiança para essas funções.