R 如何绘制加权对数线性回归的置信区间?

R 如何绘制加权对数线性回归的置信区间?,r,plot,regression,linear-regression,lm,R,Plot,Regression,Linear Regression,Lm,我需要使用加权对数线性模型的指数形式绘制指数物种面积关系,其中每个位置/银行的平均物种数量(sb$NoSpec.mean)由每年物种数量的方差(sb$NoSpec.var)加权 我能够绘制拟合曲线,但在计算如何绘制此拟合的置信区间时遇到问题。以下是到目前为止我想到的最好的。有什么建议吗 # Data df <- read.csv("YearlySpeciesCount_SizeGroups.csv") require(doBy) sb <- summaryBy(NoSpec ~ Sh

我需要使用加权对数线性模型的指数形式绘制指数物种面积关系,其中每个位置/银行的平均物种数量(
sb$NoSpec.mean
)由每年物种数量的方差(
sb$NoSpec.var
)加权

我能够绘制拟合曲线,但在计算如何绘制此拟合的置信区间时遇到问题。以下是到目前为止我想到的最好的。有什么建议吗

# Data
df <- read.csv("YearlySpeciesCount_SizeGroups.csv")
require(doBy)
sb <- summaryBy(NoSpec ~ Short + Area + Regime + SizeGrp, df, 
                FUN=c(mean,var, length))

# Plot to fill
plot(S ~ A, xlab = "Bank Area (km2)", type = "n", ylab = "Species count",
     ylim = c(min(S), max(S)))
text(A, S, label = Pisc$Short, col = 'black')

# The Arrhenius model
require(vegan)
gg <- data.frame(S=S, A=A, W=W)
mloglog <- lm(log(S) ~ log(A), weights = 1 / (log10(W + 1)), data = gg)

# Add exponential fit to plot (this works well)
lines(xtmp, exp(predict(mloglog, newdata = data.frame(A = xtmp))),
      lty=1, lwd=2)

提前感谢您的帮助

这个问题可以不提供数据,因为:

  • 据说OP的代码工作正常,所以没有“不工作”的地方
  • 这个问题与统计程序更相关:什么是正确的做法
我会做一个简短的回答,因为我看到您在上次更新中在问题标题中添加了“已解决”。注:不建议在问题标题中添加此类关键字。如果问题解决了,请使用答案


严格来说,使用
1.96
是不正确的。你可以阅读详细信息。我们需要剩余自由度和t分布的0.025分位数

我想说的是,
predict.lm
可以为您返回置信区间:

pp <- data.frame(A = xtmp)
p <- predict(mloglog, newdata = pp, interval = "confidence")
现在,您可以轻松使用
matplot
生成漂亮的回归图:

matplot(xtmp, p, type = "l", col = c(1, 2, 2), lty = c(1, 2, 2))

请不要发布数据的图片。相反,使用调用
dput
的结果对数据的适当子集进行编辑。谢谢,Alistaire。下次我会记住dput的。
pp <- data.frame(A = xtmp)
p <- predict(mloglog, newdata = pp, interval = "confidence")
p <- exp(p)
matplot(xtmp, p, type = "l", col = c(1, 2, 2), lty = c(1, 2, 2))