0

我有两个变量 ENERGY 和 TEMP

我创建了另外两个变量 temp2 和 temp 3

 > temp2 <- data$temp^2
 > temp3 <- data$temp^3
 >data=cbind(data, energy, temp,temp2,temp3)

现在要创建一个立方模型,它看起来就像一个线性模型吗?

 >model<-lm(energy~temp+temp2+temp3)

编辑:

好的,所以我按照您的建议做了,这是输出:

 > ?poly
 > model<- lm( energy ~ poly(temp, 3) , data=data ) 
 > summary(model)

 Call:
 lm(formula = energy ~ poly(temp, 3), data = data)

 Residuals:
     Min      1Q  Median      3Q     Max 
 -19.159 -11.257  -2.377   9.784  26.841 

 Coefficients:
                Estimate Std. Error t value Pr(>|t|)    
 (Intercept)       95.50       3.21  29.752  < 2e-16 ***
 poly(temp, 3)1   207.90      15.72  13.221 2.41e-11 ***
 poly(temp, 3)2   -50.07      15.72  -3.184  0.00466 ** 
 poly(temp, 3)3    81.59      15.72   5.188 4.47e-05 ***
 ---
 Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

 Residual standard error: 15.73 on 20 degrees of freedom
 Multiple R-squared: 0.9137,    Adjusted R-squared: 0.9008 
 F-statistic: 70.62 on 3 and 20 DF,  p-value: 8.105e-11 

我会假设我会以同样的方式测试拟合优度并查看 Pr(>|t|)。这会让我相信所有变量都很重要。

我可以使用这个拟合回归模型来预测平均温差的平均能耗吗?

4

2 回答 2

3

您应该考虑使用以下poly函数,而不是编写虚拟变量:

?poly   # Polynomial contrasts
model<- lm( energy ~ poly(temp, 3) , data=data ) 

如果您想使用与虚拟方法相同的列(这不利于统计推断),您可以使用 'raw' 参数:

model.r<- lm( energy ~ poly(temp, 3, raw=TRUE) , data=data ) 

预测将是相同的,但标准误差不会。这应该会给您与@RomanLuštrik 的建议返回的相同估计值。这些项不会是正交的,因此它们的必要相关性会很高,您将无法对独立效应做出正确的推断。

添加的问题:“我能否使用此拟合回归模型来预测平均温差的平均能耗?”

不。您需要指定一个特定的两个温度,然后predict可能会给您一个差异,但是该差异会根据参考点的不同而有所不同,即使差异的大小是相同的。这是使用的结果一个非线性项。也许您应该描述您的目标并使用更适合方法问题的论坛。当您知道自己想要做什么时,SO 用于编码。当您更清楚地提出问题时, http://stats.stackexchange.com可能更合适。

于 2012-11-11T07:42:19.727 回答
0

有两种方法可以用 进行多项式回归lm

lm( y ~ x + I(x^2) + I(x^3) )

lm( y ~ poly(x, 3, raw=TRUE) )

(那是三次方。我相信你可以概括为四次、五次等)

于 2013-06-30T17:41:59.107 回答