r语言怎么计算回归模型的置信区间

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了r语言怎么计算回归模型的置信区间相关的知识,希望对你有一定的参考价值。

用predict就能做到。
predict的用法:
predict(object, newdata, se.fit = FALSE, scale = NULL, df = Inf,
interval = c("none", "confidence", "prediction"),
level = 0.95, type = c("response", "terms"),
terms = NULL, na.action = na.pass,
pred.var = res.var/weights, weights = 1, ...)
只要注意其中的object,newdata,interval,level,type就行。
object是你的回归模型。
newdata是使用的数据。
interval选confidence或者"c"。
level是置信水平。
type在计算响应变量时使用response,对变量计算使用terms。如果是terms,需要用后面的terms参数指定变量名(character类型向量形式)。
response的话返回一个数据框,三列,分别是预测值,区间下限和上限。
terms返回一个list。
参考技术A

用predict就能做到。

predict的用法:

predict(object, newdata, se.fit = FALSE, scale = NULL, df = Inf,

interval = c("none", "confidence", "prediction"),

level = 0.95, type = c("response", "terms"),

terms = NULL, na.action = na.pass,

pred.var = res.var/weights, weights = 1, ...)

object是你的回归模型。

newdata是使用的数据。

interval选confidence或者"c"。

level是置信水平。

type在计算响应变量时使用response,对变量计算使用terms。如果是terms,需要用后面terms参数指定变量名(character类型向量形式)。

如何计算python线性回归模型中斜率的99%置信区间?

【中文标题】如何计算python线性回归模型中斜率的99%置信区间?【英文标题】:How to calculate the 99% confidence interval for the slope in a linear regression model in python? 【发布时间】:2016-07-23 20:42:25 【问题描述】:

我们有以下线性回归:y ~ b0 + b1 * x1 + b2 * x2。我知道 Matlab 中的回归函数会计算它,但 numpy 的 linalg.lstsq 不会(https://docs.scipy.org/doc/numpy-dev/user/numpy-for-matlab-users.html)。

【问题讨论】:

【参考方案1】:

StatsModels 的 RegressionResults 有一个 conf_int() 方法。这是一个使用它的示例(他们的Ordinary Least Squares 示例的最小修改版本):

import numpy as np, statsmodels.api as sm

nsample = 100
x = np.linspace(0, 10, nsample)
X = np.column_stack((x, x**2))
beta = np.array([1, 0.1, 10])
e = np.random.normal(size=nsample)

X = sm.add_constant(X)
y = np.dot(X, beta) + e

mod = sm.OLS(y, X)
res = mod.fit()
print res.conf_int(0.01)   # 99% confidence interval

【讨论】:

如果你能看看这个,我将不胜感激,谢谢:***.com/questions/44923808/…【参考方案2】:

您可以使用 scipy 的线性回归,它可以计算 r/p 值和标准误差:http://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.stats.linregress.html

编辑:正如 Brian 的下划线,我有来自 scipy 文档的代码:

from scipy import stats
import numpy as np
x = np.random.random(10)
y = np.random.random(10)
 slope, intercept, r_value, p_value, std_err = stats.linregress(x,y)

confidence_interval = 2.58*std_err

【讨论】:

如何使用r/p值和标准误差计算斜率的99%置信区间? 如果我没记错的话,99% 的置信区间对应于 2.58*stderr。来源:en.wikipedia.org/wiki/Confidence_interval r值可以作为回归“质量”的指标:越接近1,回归越好。 2.58*stderr 仅适用于大样本。置信区间***页面的Basic Steps 部分仅针对 已知 标准差给出 2.58。 作为我上一条评论的后续,GraphPad 的Confidence interval of a mean 页面上的N Multiplier 表显示了如何针对小样本量调整 1.96(95% 置信区间)。

以上是关于r语言怎么计算回归模型的置信区间的主要内容,如果未能解决你的问题,请参考以下文章

如何计算 R 中线性回归模型中斜率的 95% 置信区间

R语言使用pROC包绘制ROC曲线实战:roc函数计算AUC值plot.roc函数绘制ROC曲线添加置信区间为回归模型中的每个因子绘制ROC曲线并在同一个图中显示出来

R线性回归模型构建:残差值回归值预测域置信区间

R中线性回归模型后的置信区间[关闭]

r语言cox怎么填充置信区间的颜色

R中具有置信区间图的线性回归预测