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