Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何使用线性模型通过因子水平获得系数?_R_Excel_Statistics_Linear Regression_Forecasting - Fatal编程技术网

R 如何使用线性模型通过因子水平获得系数?

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到5,1是晴天,5是阴天)

所以我们的想法是将容量乘以一个系数,这是对将会发生什么的估计,并且不会偏离实际测量值

我认为通过使用日的可变类型作为一个因素来建立一个线性模型是可行的。可能是接近实际产量的最佳方法

今天的标准是:

  • 日类型1,生产能力*1
  • 第2天,生产能力*0.7
  • 第3天,生产能力*0.4
  • 第4天,生产能力*0.15
  • 第5天,生产能力*0
我对这些系数进行了研究,工厂的产量被低估了,这意味着实际上产生了更多的能量,几乎50%。使用excel的解算器查找我得到的系数:

  • 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正常工作。