Svar við erindi Sindra Sigurðssonar hjá SVN, frá 15. apríl 2015.

Spurt var um ‘töflu og/eða lengdar-þyngdarsambandsjöfnu sem hægt er að nota fyrir ufsa á Austurmiðum’.

Nota gagnapakkann ‘fjolst’ og ‘geo’ til að útbúa kort.

library(fjolst);library(geo)

Úrval sýna sem lagt er til grundvallar:

geoplot(grid = FALSE)
geopolygon(reg.bc[[6]], col = "green")
geopolygon(reg.bc[[8]], col = "royalblue3")
geopolygon(reg.bc[[9]], col = "red")
for(i in seq(along = reg.bc[1:10])) {
  tmp <- reg.bc[[i]]
  geolines(tmp)
}
geolines(island)
lat <- attributes(reg.bc)$txtloc$lat[1:10]
lon <- attributes(reg.bc)$txtloc$lon[1:10]
geotext(lat, lon, 1:10, cex = 1.5)

yyyy<-2005:2014
id <- which(stodvar$ar %in% yyyy)
s <- stodvar[id, ]
s <- s[s$synaflokkur == 2, ]
vf <- c(6, 60)
id <- which(s$veidarfaeri %in% vf)
s <- s[id, ]
areas <- c(6, 8, 9)
id <- which(s$area %in% areas)
s <- s[id, ]
k <- all.kv[all.kv$tegund == 3, ]
id <- which(k$lengd > 40)
k <- k[id, ]
k <- k[!is.na(k$slaegt), ]
k <- merge(k, s)
id <- which(s$synis.id %in% k$synis.id)
s <- s[id, ]

Fjöldi sýna:

table(s$ar, s$area)
##       
##         6  8  9
##   2005  1  5  8
##   2006  2  7 12
##   2007  0  2  7
##   2008  1  5  5
##   2009  4  5  6
##   2010  2  9  8
##   2011  2  6 10
##   2012  2  6  6
##   2013  1  2  6
##   2014  0  6  5

og fjöldi mælinga:

table(k$ar, k$area)
##       
##          6   8   9
##   2005  50 250 400
##   2006 100 350 600
##   2007   0 100 347
##   2008  50 250 250
##   2009 200 250 300
##   2010 100 448 398
##   2011 100 300 498
##   2012 100 300 299
##   2013  49 100 300
##   2014   0 150 124

eftir árum og svæðum. Meðaltal slægðrar þyngdar (g) í 5 cm lengdarflokkum þessi ár og svæði saman:

round(t(t(tapply(k$slaegt,
  cut(k$lengd, seq(40, 120, by = 5), right = FALSE), mean))))
##            [,1]
## [40,45)     756
## [45,50)     910
## [50,55)    1171
## [55,60)    1480
## [60,65)    1861
## [65,70)    2285
## [70,75)    2788
## [75,80)    3379
## [80,85)    4043
## [85,90)    4789
## [90,95)    5741
## [95,100)   6802
## [100,105)  7846
## [105,110)  9061
## [110,115) 10125
## [115,120) 10709

Vistum meðaltöl, skoðum gögnin og fellum einfalt samband lengdar og þyngdar að þeim fyrir mismunandi tímabil:

# meðalþyngdir í 5 cm lengdarflokkum
mweights <- data.frame(le = seq(42.5, 117.5, by = 5), 
  mw = tapply(k$slaegt, 
    cut(k$lengd, seq(40, 120, by = 5), right = FALSE), mean))
# eitt samband fyrir all tímabilið öll svæði
fit.all <- lm(log(slaegt) ~ log(lengd), k)
lw.all <- fit.all$coeff
lw.all[1] <- exp(lw.all[1])
# eitt samband fyrir árið í fyrra
fit2014 <- lm(log(slaegt) ~ log(lengd), 
  subset = ar == 2014, k)
lw2014 <- fit2014$coeff
lw2014[1] <- exp(lw2014[1])
## eldra samband
## úr pósti til Sindra frá því 2006
lw.old <- c(0.0136, 2.86)
names(lw.all) <- names(lw2014) <- names(lw.old) <- c("a", "b")

Þegar sambandi lengdar og þyngdar er lýst með W = a*L^b, eru margfaldari og veldisvísir sambands sem fellt er að gögnum allt tímabilið 2005-2014:

round(lw.all, 4)
##      a      b 
## 0.0143 2.8513

aðeins fyrir árið 2014:

round(lw2014, 4)
##      a      b 
## 0.0201 2.7764

og til samanburðar eldra samband:

lw.old
##      a      b 
## 0.0136 2.8600

Tölfræðileg ‘diagnóstík’ heildarsambandsins:

summary(fit.all)
## 
## Call:
## lm(formula = log(slaegt) ~ log(lengd), data = k)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.53457 -0.05913  0.00130  0.05900  0.38035 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -4.249280   0.024598  -172.7   <2e-16 ***
## log(lengd)   2.851314   0.005736   497.1   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.0912 on 6761 degrees of freedom
## Multiple R-squared:  0.9734, Adjusted R-squared:  0.9734 
## F-statistic: 2.471e+05 on 1 and 6761 DF,  p-value: < 2.2e-16

Dreifingar lengdar og slægðrar þyngdar, ásamt meðaltölum í 5 cm lengdarflokkum, og ásamt ferlum sem byggja annars vegar á öllum sýnum og hins vegar sýnum frá 2014:

x <- 40:120
plot(k$lengd, k$slaegt, type = "n", 
  xlab = "lengd (cm)", ylab = "slægð þyngd (g)")
grid()
points(jitter(k$lengd), k$slaegt, cex = 0.75, col = "grey")
lines(x, lw.all[1]*x^lw.all[2], col = "royalblue3", lwd = 3)
lines(x, lw2014[1]*x^lw2014[2], col = "red", lwd = 3)
segments(mweights$le-2.5, mweights$mw, 
  mweights$le+2.5, mweights$mw, col = "darkgreen", lwd = 2)
legend(40, 14500, 
  legend = 
    c("2005-2014", "2014", "5 cm meðaltöl"),
  lty = c(rep(1, 3), NA), lwd = c(3, 3, 2), 
  col = c("royalblue3", "red", "darkgreen"), bg = "white")

Unnið í R:

sessionInfo()
## R version 3.1.3 (2015-03-09)
## Platform: x86_64-redhat-linux-gnu (64-bit)
## Running under: Fedora 21 (Twenty One)
## 
## locale:
##  [1] LC_CTYPE=is_IS.UTF-8       LC_NUMERIC=C              
##  [3] LC_TIME=is_IS.UTF-8        LC_COLLATE=is_IS.UTF-8    
##  [5] LC_MONETARY=is_IS.UTF-8    LC_MESSAGES=is_IS.UTF-8   
##  [7] LC_PAPER=is_IS.UTF-8       LC_NAME=C                 
##  [9] LC_ADDRESS=C               LC_TELEPHONE=C            
## [11] LC_MEASUREMENT=is_IS.UTF-8 LC_IDENTIFICATION=C       
## 
## attached base packages:
## [1] splines   stats     graphics  grDevices utils     datasets  methods  
## [8] base     
## 
## other attached packages:
## [1] geo_1.4-0     mapdata_2.2-3 maps_2.3-9    fjolst_1.0   
## 
## loaded via a namespace (and not attached):
## [1] digest_0.6.8    evaluate_0.5.5  formatR_1.0     htmltools_0.2.6
## [5] knitr_1.9       rmarkdown_0.5.1 stringr_0.6.2   tools_3.1.3    
## [9] yaml_2.1.13

, með þessari útgáfu gagnapakkans ‘fjolst’:

packageDescription("fjolst")
## Package: fjolst
## Type: Package
## Title: What the package does (short line)
## Version: 1.0
## Date: <c3><be>ri mar 31 12:08:12 GMT 2015
## Depends: R (>= 2.10)
## LazyData: yes
## Author: H<c3><b6>skuldur Bj<c3><b6>rnsson
## Maintainer: Who to complain to <yourfault@somewhere.net>
## Description: More about what it does (maybe more than one line)
## License: What license is it under?
## Packaged: 2015-04-17 20:00:32 UTC; gunnaro
## Built: R 3.1.2; ; 2015-04-17 20:01:30 UTC; unix
## 
## -- File: /usr/local/lib/R/site/3.1/x86_64/library/fjolst/Meta/package.rds