R 如何使用线性模型通过因子水平获得系数?
我在分析太阳能发电厂的数据。我想在接下来的每一天每小时调整估计的生产工厂,可以获得的数据是未来三天的天气预报,这样你就知道明天会是什么样的一天(1到5,1是晴天,5是阴天) 所以我们的想法是将容量乘以一个系数,这是对将会发生什么的估计,并且不会偏离实际测量值 我认为通过使用日的可变类型作为一个因素来建立一个线性模型是可行的。可能是接近实际产量的最佳方法 今天的标准是:R 如何使用线性模型通过因子水平获得系数?,r,excel,statistics,linear-regression,forecasting,R,Excel,Statistics,Linear Regression,Forecasting,我在分析太阳能发电厂的数据。我想在接下来的每一天每小时调整估计的生产工厂,可以获得的数据是未来三天的天气预报,这样你就知道明天会是什么样的一天(1到5,1是晴天,5是阴天) 所以我们的想法是将容量乘以一个系数,这是对将会发生什么的估计,并且不会偏离实际测量值 我认为通过使用日的可变类型作为一个因素来建立一个线性模型是可行的。可能是接近实际产量的最佳方法 今天的标准是: 日类型1,生产能力*1 第2天,生产能力*0.7 第3天,生产能力*0.4 第4天,生产能力*0.15 第5天,生产能力*0
- 日类型1,生产能力*1
- 第2天,生产能力*0.7
- 第3天,生产能力*0.4
- 第4天,生产能力*0.15
- 第5天,生产能力*0
- 1.6
- 1.2
- 0.9
- 0.65
- 0.5
data <-read.table ("zcinco.txt", dec = ",", header = TRUE)
head (data)
model <- lm (data [-1.2] ~ embed (data [, 2], 2) [, 2] + as.factor (data [-1.3]) + data [1, 4])
head (cbind (matrix (predict (model)), data [-1.2]))
summary (model)
Call:
lm(formula = data[-1, 2] ~ embed(data[, 2], 2)[, 2] + as.factor(data[-1,
3]) + data[-1, 4])
Residuals:
Min 1Q Median 3Q Max
-0.054966 -0.009518 -0.000855 0.010966 0.039100
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 2.528e-06 1.456e-03 0.002 0.9986
embed(data[, 2], 2)[, 2] 3.870e-01 2.969e-02 13.036 < 2e-16 ***
as.factor(data[-1, 3])2 -2.630e-03 1.407e-03 -1.869 0.0621 .
as.factor(data[-1, 3])3 1.690e-03 2.371e-03 0.713 0.4762
as.factor(data[-1, 3])4 -1.855e-02 2.251e-03 -8.241 1.07e-15 ***
as.factor(data[-1, 3])5 -1.790e-02 2.660e-03 -6.727 4.06e-11 ***
data[-1, 4] 8.930e-01 4.823e-02 18.517 < 2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.01482 on 600 degrees of freedom
Multiple R-squared: 0.795, Adjusted R-squared: 0.793
F-statistic: 387.9 on 6 and 600 DF, p-value: < 2.2e-16
数据我建议如下:
m2 <- lm(data[-1, 2] ~ embed(data[, 2], 2)[, 2]:as.factor(data[-1, 3]) + data[-1, 4])
m2如果我正确理解了你想要做的事情,你可能需要这个公式“real~tipos:capacidad”,它考虑了因子“tipos”和容量之间的相互作用,并将为因子水平和容量的每个组合估计一个系数。你完全明白我想要做的model然后尝试:data$type(嗯,但是要小心,只要我只是在公式中使用了列名,我真的没有得到你在帖子中使用的公式,例如data[-1.2]
和data[-1.3]
让我困惑),我已经用列名作为公式更新了结果,对此表示抱歉。结果是我第二次尝试让lm正常工作。