Aquest és un document Rmd (pronunciat Erra-Markdown). En documents Rmd podem combinar text i instruccions de R, que posarem en chunks de codi. A continuació tens un primer chunk de codi (el troç que apareix en gris)
dades_x = c(0, 10, 20, 30)
dades_y = c(10, 100, 200, 350)
plot(dades_x, dades_y)
A l’extrem d’adalt a la dreta del chunk trobaràs dos botons:
Per acabar, tens disponible un botó que s’anomena Knit (barra superior, cap a l’esquerra). Aquest botó interpreta el document des del principi fins el final, i genera un document .html a la mateixa carpeta on has guardat el fitxer .Rmd. Fes click ara al botó Knit, i visualitza el document .html que es genera.
A continuació us adjuntem algunes comandes que podeu utilitzar per a resoldre el taller R:
dades_x = c(0, 10, 20, 30)
dades_y = c(10, 100, 200, 350)
model_lineal = lm(dades_y ~ dades_x)
summary(model_lineal)
##
## Call:
## lm(formula = dades_y ~ dades_x)
##
## Residuals:
## 1 2 3 4
## 13 -9 -21 17
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -3.0000 18.5203 -0.162 0.88620
## dades_x 11.2000 0.9899 11.314 0.00772 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 22.14 on 2 degrees of freedom
## Multiple R-squared: 0.9846, Adjusted R-squared: 0.9769
## F-statistic: 128 on 1 and 2 DF, p-value: 0.007722
plot(dades_x, dades_y)
abline(model_lineal, col="red")
curve(0.75 * x^1.8, col="blue", add=TRUE)
En un parc nacional s’ha començat a estudiar el creixement poblacional d’una espècie de cérvols introduïda a l’àrea l’any 2000. S’ha recopilat informació sobre la població de cérvols cada cert nombre d’anys, i es vol analitzar l’evolució d’aquesta població per preveure el seu comportament futur:
# Introduïm les dades
t = c(2, 4, 6, 8, 10, 12)
p = c(50, 70, 85, 120, 150, 190)
# Les mostrem
cbind(t, p)
## t p
## [1,] 2 50
## [2,] 4 70
## [3,] 6 85
## [4,] 8 120
## [5,] 10 150
## [6,] 12 190
on t
és el nombre d’anys que han passat des del 2000, i
p
és la quantitat d’exemplars.
El millor model lineal de \(p\) en funció de \(t\) és: \(p=a*t+b\)
model_lineal = lm(p ~ t)
summary(model_lineal)
##
## Call:
## lm(formula = p ~ t)
##
## Residuals:
## 1 2 3 4 5 6
## 8.8095 0.9524 -11.9048 -4.7619 -2.6190 9.5238
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 13.333 8.589 1.552 0.195523
## t 13.929 1.103 12.631 0.000226 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 9.226 on 4 degrees of freedom
## Multiple R-squared: 0.9755, Adjusted R-squared: 0.9694
## F-statistic: 159.5 on 1 and 4 DF, p-value: 0.0002262
Segons les dades previes, els parametres “a” y “b” més adequats són: 13.927 per “a” i 13.333 per “b”.
\(p=13.929*t+13.333\)
La constant “a” ve donada com a “coeficient intercept” i representa la pendent de la recta, es a dir, com creix la variable “p”(població) respecte la variable constant “t”(temps). Aquest increment es directament proporcional. La constant “b” ve donada com a “t” y demostra en quin moment el model de la població s’interesecta amb la variable “p” o també referit com “eix y”
plot(t, p)
abline(model_lineal, col="red")
El millor model exponencial de \(p\) en funció de \(t\) és: \(p=α*β^t\)
P=log(p)
P
## [1] 3.912023 4.248495 4.442651 4.787492 5.010635 5.247024
model_lineal2 = lm(P ~ t)
summary(model_lineal2)
##
## Call:
## lm(formula = P ~ t)
##
## Residuals:
## 1 2 3 4 5 6
## -0.031297 0.039282 -0.032456 0.046492 0.003742 -0.025763
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 3.677427 0.037282 98.64 6.33e-08 ***
## t 0.132947 0.004787 27.77 1.00e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.04005 on 4 degrees of freedom
## Multiple R-squared: 0.9948, Adjusted R-squared: 0.9936
## F-statistic: 771.5 on 1 and 4 DF, p-value: 9.995e-06
α_1 = exp(3.677)
β_1 = exp(0.1329)
α_1
## [1] 39.52763
β_1
## [1] 1.142136
El millor paràmetre per alpha és 39.527633 y per beta és 1.142135
\(p=39.5276 * 1.1421^t\)
plot(t,p,log = "y")
curve(39.5276 * 1.1421^x, col="blue", add=TRUE)
plot(t, p)
curve(39.5276 * 1.1421^x, col="blue", add=TRUE)
El millor model potencial de \(p\) en funció de \(t\) és:\(p=t^α*β\)
A=log(t)
A
## [1] 0.6931472 1.3862944 1.7917595 2.0794415 2.3025851 2.4849066
``` r
β_2=exp(3.295)
β_2
## [1] 26.97741
Els paràmetre més adequat per alpha és 0.73361 i per beta és 26.97741
\(p=t^(0.73361)*26.97741\)
plot(t, p)
curve(26.977 * x^0.73361, col="blue", add=TRUE)
plot(t,p,log = "xy")
curve(26.977 * x^0.73361, col="blue", add=TRUE)
plot(t,p)
curve(26.977 * x^0.73361, col="blue", add=TRUE)
\(x_{n} = q^n*x_{0}\)
X=c(50,240)
n=c(2,14)
cbind (X,n)
## X n
## [1,] 50 2
## [2,] 240 14
\(50=q^2*x_{0}\) \(240=q^14*x_{0}\)
\(x_{0}=50/q^2\) \(240=q^(14)*50/q^2\) \(240/50=q^(14)/q^(2)\) \(5=q^(12)\) \(1.14≈q\)
\(x_{0}=50/1.14^2\) \(x_{0}≈38.23\)
\(x_{n} = q^n*x_{0}\) \(x_{n} = 1.14^n*38.23\)
X4= 1.14^4*38
X24 = 1.14^24*38
X4
## [1] 64.18049
X24
## [1] 882.0639
L’any 2004 trobarem aproximadament 64 exemplars i l’any 2024 882 exemplars
El millor model es determinat segons el seu oeficient “Multple R-squared”, el qual té valors entre 0 y 1, on nombres a prop de 0 ens indiquen que no és un bon model y nombres a prop de 1 ens indiquen que si és un bon model. Per tant, es conclueix que el millor model és el model exponencial, amb un coeficient de \(0.9948\). El segon millor model és el lineal, amb un coeficient de de \(0.9755\) i finalment, el pitjor model és el potencial, amb un coeficient de \(0.9501\).
Els dos models son semblants a causa de la seva formula, \(p=α*β^t\) en el cas del model exponencial y \(x_{n} = q^n*x_{0}\) en el cas del model mathusia. En el cas del model exponencial, aquest conté dues constants diferents, però, el model mathusia utiliza les seves constants \(q^n\) y \(x_{0}\) en funció dels valors proporcionats, que fan referencia a dades com la població.