首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MATLAB中的简易MLE解

MATLAB中的简易MLE解
EN

Stack Overflow用户
提问于 2017-04-19 12:06:07
回答 1查看 89关注 0票数 0

因此,我试图在MATLAB上拟合一个自定义函数的线性最小二乘模型。我的数据,称为logprice_hour_seas,看起来像是一个复杂的非线性函数,我想用我的自定义函数seasonMatrix来拟合它,但是为了理解MATLAB的MLE是如何工作的,我做了这个愚蠢的拟合,说seasonMatrix只是一个线性函数。帮助我理解这段代码,这是我从MATLAB的网站上复制的,以及逻辑(请阅读下面)

代码语言:javascript
复制
Times = [0:1/8760:8712/8760];
% Calibrate parameters for the seasonality model
seasonMatrix = @(t) [t];
C = seasonMatrix(Times);
seasonParam = C\logprice_hour_seas;

现在我的模型应该有一些错误(很多)。但是我做了logprice_hour_seas-C*seasonParam,这都是零!嗯,MLE是用logprice_hour_seas=C*seasonParam解决的,所以这并不奇怪。我不明白什么??

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-19 16:08:58

正如注释中提到的,您正在破坏矩阵大小。

您创建值的方式seasonParam变成了5x26矩阵。C是一个1x26矩阵。你正在模拟一个不确定的方程组,它可以有多个解.

在这种情况下,幸运的是,对于算法来说,C的一些值是1!这意味着,在解决方案中的所有26个5x1向量(seasonParam)中,只有乘以1的向量需要设置为结果值(logprice_hour_seas)才能得到完美的匹配!因此,您的解决方案seasonParam

代码语言:javascript
复制
 0         0         0         0         0
 0         0         0         0         0
 0         0         0         0         0
 0         0         0         0         0
 0         0         0         0         0
5.2560    5.2151    5.2324    5.2224    5.2292
 0         0         0         0         0
 0         0         0         0         0
 0         0         0         0         0
 0         0         0         0         0
 0         0         0         0         0
 0         0         0         0         0
 0         0         0         0         0
 0         0         0         0         0
 0         0         0         0         0
 0         0         0         0         0
 0         0         0         0         0
 0         0         0         0         0
 0         0         0         0         0
 0         0         0         0         0
 0         0         0         0         0
 0         0         0         0         0
 0         0         0         0         0
 0         0         0         0         0
 0         0         0         0         0
 0         0         0         0         0

整个模型是没有意义的,所以我假设你只是搞砸了尺寸。尝试以下几点:

代码语言:javascript
复制
 logprice_hour_seas=[5.2560 5.2151 5.2324 5.2224 5.2292]'; 
 PriceTimes = [0:1/8760:4/8760]'; 
 seasonMatrix = @(t) [sin(2.*pi.*t) cos(2.*pi.*t) sin(4.*pi.*t)  cos(4.*pi.*t) t ones(size(t, 1), 1)];
 C = seasonMatrix(PriceTimes);
 seasonParam = C\logprice_hour_seas;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43495278

复制
相关文章

相似问题

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