ald*_*pia 1 regression r linear-regression lm
我想拟合一个没有斜率的线性模型并提取它的信息.我的目标是知道哪个是数据集中水平线的最佳y截距并进行评估从派生线性拟合来识别y是否具有特定行为(x是日期).我
range用来评估行为,但我正在寻找一个没有单位的索引.
删除y轴截距:
X <- 1:10
Y <- 2:11
lm1 <- lm(Y~X + 0, data = data.frame(X=X,Y=Y)) # y-intercept remove opt 1
lm1 <- lm(Y~X - 1, data = data.frame(X=X,Y=Y)) # y-intercept remove opt 2
lm1 <- lm(Y~0 + X, data = data.frame(X=X,Y=Y)) # y-intercept remove opt 3
lm1$coefficients
X
1.142857
summary(lm1)$r.squared
[1] 0.9957567
Run Code Online (Sandbox Code Playgroud)
lm以前所有的表现都有.但是,如果我评估:
lm2 <- lm(Y~1, data = data.frame(X=X,Y=Y))
lm2$coefficients
(Intercept)
6.5
summary(lm2)$r.squared
[1] 0
Run Code Online (Sandbox Code Playgroud)
有一种计算方法 出的
lm功能或计算指数,以确定多少ý由水平线表示?
让lmObject你的线性模型返回lm(调用y = TRUE返回y).
如果你的模型有截距,则R平方计算为
with(lmObject, 1 - c(crossprod(residuals) / crossprod(y - mean(y))) )
Run Code Online (Sandbox Code Playgroud)如果您的模型没有截距,则R平方计算为
with(lmObject, 1 - c(crossprod(residuals) / crossprod(y)) )
Run Code Online (Sandbox Code Playgroud)注意,如果你的模型只是一个拦截(所以它肯定来自上面的第一种情况),你有
residuals = y - mean(y)
Run Code Online (Sandbox Code Playgroud)
因此R平方总是如此1 - 1 = 0.
在回归分析中,始终建议在模型中包含截距以获得无偏估计.仅具有拦截的模型是NULL模型.将任何其他模型与此NULL模型进行比较,以进一步分析方差.
一张纸条.您想要的价值/数量与回归无关.您可以简单地将其计算为
c(crossprod(Y - mean(Y)) / crossprod(Y)) ## `Y` is your data
#[1] 0.1633663
Run Code Online (Sandbox Code Playgroud)
或者,使用
(length(Y) - 1) * var(Y) / c(crossprod(Y))
#[1] 0.1633663
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1024 次 |
| 最近记录: |