密度生物量模型

时间:2017-06-18 08:51:42

标签: r

我正在尝试为具有木材密度的几个物种开发一种常见的生物量模型。

这是我的数据集

Species_Name    DBH_cm    Wood_Density      Leaf_Biomass_kg
Aam             10.9         0.55             4.495175666
Aam             8.3          0.55             3.003987585
Aam            18.3          0.55             7.0453234
Akashmoni      26.6          0.68             8.68327883
Akashmoni      18            0.68             5.514198965
Akashmoni      20.6          0.68             7.140993296
Amloki         13.7          0.64             0.418757191
Amloki         14.6          0.64             0.348964326
Amra           19            0.29             0
Arjun          13.3          0.82             0
Bajna          13            0.70             0
Bel            19.6          0.83             0.458638794
Sal            14.40         0.82             0.996750392
Sal            12.20         0.82             0.644956136
Sal            10.00         0.82             0.947928706
Sal            14.20         0.82             0.767434214
Sal            11.50         0.82             0.636970398
Sal            13.20         0.82             0.445111844
Sal            13.30         0.82             0.706039477
Sal            10.70         0.82             0.475809213

我尝试使用

为NA提供缺失值
tree[which(tree$Leaf_Biomass_kg == 0),]$Leaf_Biomass_kg <- NA

我的型号代码是

library(nlme)
start <- coef(lm(log(Leaf_Biomass_kg)~log(DBH_cm)+log(Wood_Density), data=tree))
start[1] <- exp(start[1])
names(start) <- c("a","b1", "b2")

m <- nlme(Leaf_Biomass_kg~a*DBH_cm^b1*Wood_Density^b2, 
                        data=cbind(tree,g="a"), 
                        fixed=a+b1+b2~1, 
                        start=start, 
                        groups=~g, 
                        weights=varPower(form=~DBH_cm))

它给出了

  

finiteDiffGrad(模型,数据,文档)中的错误:     订阅作业中不允许使用NA

任何人都可以帮助我吗

我在模型中添加na.action = na.exclude但问题仍然存在

m <- nlme(Leaf_Biomass_kg~a*DBH_cm^b1*Wood_Density^b2, 
                        data=cbind(tree,g="a"), 
                        fixed=a+b1+b2~1, 
                        start=start, 
                        groups=~g, 
                        weights=varPower(form=~DBH_cm)
                        na.action=na.exclude)

1 个答案:

答案 0 :(得分:0)

您的数据集中缺少值NA。尝试设置na.exclude或删除NA值的记录。您可能想要估算缺失值。这个问题在这里得到了解决: https://stats.stackexchange.com/questions/11000/how-does-r-handle-missing-values-in-lm