我想要計算線性迴歸殘差與自變量p
之間的相關係數。計算線性迴歸殘差與NAs和自變量R之間的相關性
基本上,線性迴歸估計當前銷售額是當前價格p
和過去價格p1
的函數。 當前價格向量mydf$p
的長度爲8,但殘差爲長度爲7的向量,因爲NA
的值爲p1
,因此刪除了一個條目。
# lag vector and pad with NAs
# Source: http://heuristically.wordpress.com/2012/10/29/lag-function-for-data-frames/
lagpad <- function(x, k) {
if (!is.vector(x))
stop('x must be a vector')
if (!is.numeric(x))
stop('x must be numeric')
if (!is.numeric(k))
stop('k must be numeric')
if (1 != length(k))
stop('k must be a single number')
c(rep(NA, k), x)[1 : length(x)]
}
mydf <- data.frame(p = c(10, 8, 10, 9, 10, 9, 10, 8))
mydf$p1 <- lagpad(mydf$p,1)
mydf$sales <- with(mydf, 200 - 15 * p + 5 * p1) + rnorm(nrow(mydf), 0,0.13)
model <- lm(data = mydf, formula = 'sales ~ p + p1')
print(summary(model))
print(cor(residuals(model), mydf$p))
# Error in cor(residuals(model), mydf$p) : incompatible dimensions
在這種特殊情況下,很容易使用mydf$p[2:8]
,而不是mydf$p
。 但是,一般來說,隨機位置可能有多行,然後刪除NA。 除去包含NA的行後,如何訪問迴歸中實際使用的獨立變量?
我的一個嘗試是基於R documentation for lm。我試圖通過model[['x']]
訪問「x」矩陣,但是這不起作用。