使用lm并预测矩阵中的数据

pyt*_*hor 5 r predict dataframe lm

R只使用了一点点而从不使用数据帧,这使得理解正确使用预测变得困难.我有我的纯矩阵数据,没有数据帧,叫他们ab,这是N x pM x p分别为矩阵.我可以运行回归lm(a[,1] ~ a[,-1]).我想用生成的lm对象预测b[,1]b[,-1].我天真的猜测predict(lm(a[,1] ~ a[,-1]), b[,-1])不起作用.使用它lm来获得预测向量的正确语法是什么?

cbe*_*ica 7

您可以将整个矩阵存储在以下列的一列中data.frame:

x <- a [, -1]
y <- a [,  1]
data <- data.frame (y = y, x = I (x))
str (data)
## 'data.frame':    10 obs. of  2 variables:
## $ y: num  0.818 0.767 -0.666 0.788 -0.489 ...
## $ x: AsIs [1:10, 1:9] 0.916274.... 0.386565.... 0.703230.... -2.64091.... 0.274617.... ...

model <- lm (y ~ x)
newdata <- data.frame (x = I (b [, -1]))
predict (model, newdata) 
##         1         2 
## -3.795722 -4.778784 
Run Code Online (Sandbox Code Playgroud)

关于pls包的论文(Mevik,B.-H.和Wehrens,R.Pls Package:Principal Component and Partial Least Squares Regression in R Journal of Statistical Software,2007,18,1-24.)解释了这种技术.

光谱数据集(奎宁荧光)的另一个例子是vignette ("flu")我的包hyperSpec.