相对于自身回归变量的斜率应为1。
我有一个数据框,我想将几列(包括固定列“ i”)相对于固定列“ i”进行回归。 图需要每个回归的斜率系数。 但是col'i'对自身的回归在摘要中没有给出斜率行。
a <- rnorm(100, 22,4) # some data
b <- rnorm(100, 30,7) # only to create a dataframe
df <- data.frame(cbind(a,b))
head(df)
summary(lm(data = df, a~a)) # regress a against itself
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 22.2602 0.3504 63.53 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
为什么没有斜率系数?
答案 0 :(得分:4)
您的代码生成2条警告,第二条警告是由于第一条引起的:
Warning messages:
1: In model.matrix.default(mt, mf, contrasts) :
the response appeared on the right-hand side and was dropped
2: In model.matrix.default(mt, mf, contrasts) :
problem with term 1 in model.matrix: no columns are assigned
因此您感兴趣的列从公式中删除,因此没有斜率系数,只需截取即可。
答案 1 :(得分:4)
这是因为您对因变量和自变量使用了相同的名称。如果您仅将a
复制到b
变量中,它将起作用:
df <- data.frame(cbind(a,b=a))
summary(lm(data = df, a~b))
Call:
lm(formula = a ~ b, data = df)
Coefficients:
(Intercept) b
-0.00000000000001137 1.00000000000000044