首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用回归模型预测数据并将其存储在向量中

用回归模型预测数据并将其存储在向量中
EN

Stack Overflow用户
提问于 2016-06-09 16:27:01
回答 2查看 745关注 0票数 0

抱歉,这可能是一个非常基本的问题。

我用多元回归建立了一个大规模气象数据集的线性模型。我的目标是使用该模型“预测”某一时期的数据,使用预测器1、2和3,然后将这些预测数据与该期间的观测数据进行比较。

到目前为止,我的方法是为预测值创建一个新的向量,并通过该向量循环,根据提取的线性模型的系数创建预测值。然后,我将简单地从观测值中减去预测值。由于某些原因,这种方法导致新的预测向量为NULL。知道我该怎么处理这个吗?

样品在下面。“数据”是指包含预测器的数据集。

代码语言:javascript
复制
     coef <- coefficients(multipleRegressionModel)

    predictedValues=c()

    for(i in 1:length(data$timePeriod)){
      predictedValues[i] = append(predictedValues, data$coef[1]+data$predictor1[i]*data$coef[2]+data$predictor2[i]*data$coef[3]+
      data$predictor3[i]*data$coef[4])
    }

diff=c()
diff=observedValues - predictedValues
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-06-09 16:43:15

看起来你让这件事变得比需要的更困难了。R有一个predict()函数,可以为您完成所有这些工作。如果您有像这样的示例data.frame

代码语言:javascript
复制
set.seed(26) 

mydf = data.frame (a=1:20 , b = rnorm(20), 
                   c = 1:20 + runif(20,2,3)*runif(20, 2, 3),
                   d = 1:20 + rpois(20,5)*runif(1:20)*sin(1:20)) 

你想在几排上训练,在另外几排上测试

代码语言:javascript
复制
trainRows<-sample(1:20, 16)
mydf.train<-mydf[trainRows,]
mydf.test<-mydf[-trainRows,]

然后拟合模型并进行预测。

代码语言:javascript
复制
model<-lm(a~b+c+d, data = mydf.train)
summary(model)  #gives info about your model. 

mydf.test$pred<-predict(model1, newdata = mydf.test)

MSE<-mean((mydf.test$pred-mydf.test$a)^2) #calculate mean squared error
MSE
#[1] 0.06321

使用mydf.test$pred查看预测

票数 1
EN

Stack Overflow用户

发布于 2016-06-09 16:39:54

下面是对glm数据使用mtcars的一个简单示例。

代码语言:javascript
复制
Line<- #setting up the linear model function
function (train_dat, test_dat, variables, y_var, family = "gaussian") 
{
  fm <- as.formula(paste(y_var, " ~", paste(variables, collapse = "+"))) #formula
  glm1 <- glm(fm, data = train_dat, family = family) #run the model
  pred <- predict(glm1, newdata = test_dat) #predict the model
}

data(mtcars)
y_var<-'mpg'
x_vars<-setdiff(names(mtcars),y_var)

mtcars[,'linear_prediction']<-Line(mtcars,mtcars,x_vars,y_var)

head(mtcars)

                   mpg cyl disp  hp drat    wt  qsec vs am gear carb linear_prediction
Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4          22.59951
Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4          22.11189
Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1          26.25064
Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1          21.23740
Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2          17.69343
Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1          20.38304
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37731509

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档