曾经善良过


曾经善良过 @ 2011-12-31 23:21

昨天到今天尤其不淡定,希望是因为周末所以没邮件,而不是其他原因,只是相关文件的约束太多,看上去貌似有很多issue没有搞清楚,情况很复杂,真希望下封邮件能明确解决一些问题,否则我要纠结死


 
曾经善良过 @ 2011-12-21 11:17

到底想要哪样啊


 
曾经善良过 @ 2011-04-05 17:10

%--------------------------------------------
% Mann-Kendall突变检测
% 数据序列y
% 结果序列UFk,UBk2
%--------------------------------------------

%读取excel中的数据,赋给矩阵y
y=xlsread('D:\test.xls');

%获取y的样本数
n=length(y);

% 正序列计算---------------------------------

% 定义累计量序列Sk,长度=y,初始值=0
Sk=zeros(size(y));
% 定义统计量UFk,长度=y,初始值=0
UFk=zeros(size(y));
% 定义Sk序列元素s
s = 0;

% i从2开始,因为根据统计量UFk公式,i=1时,Sk(1)、E(1)、Var(1)均为0
% 此时UFk无意义,因此公式中,令UFk(1)=0
for i=2:n
  for j=1:i
        if y(i)>y(j)
          s=s+1;
        else
          s=s+0;
        end;
  end;
  Sk(i)=s;
  E=i*(i-1)/4; % Sk(i)的均值
  Var=i*(i-1)*(2*i+5)/72; % Sk(i)的方差
  UFk(i)=(Sk(i)-E)/sqrt(Var);
end;
% ------------------------------正序列计算end

% 逆序列计算---------------------------------

% 构造逆序列y2,长度=y,初始值=0
y2=zeros(size(y));
% 定义逆序累计量序列Sk2,长度=y,初始值=0
Sk2=zeros(size(y));
% 定义逆序统计量UBk,长度=y,初始值=0
UBk=zeros(size(y));
% s归0
s=0;

% 按时间序列逆转样本y
% 也可以使用y2=flipud(y);或者y2=flipdim(y,1);
for i=1:n
   y2(i)=y(n-i+1);
end;

% i从2开始,因为根据统计量UBk公式,i=1时,Sk2(1)、E(1)、Var(1)均为0
% 此时UBk无意义,因此公式中,令UBk(1)=0
for i=2:n
  for j=1:i
        if y2(i)>y2(j)
          s=s+1;
        else
          s=s+0;
        end;
  end;
  Sk2(i)=s;
  E=i*(i-1)/4; % Sk2(i)的均值
  Var=i*(i-1)*(2*i+5)/72; % Sk2(i)的方差
  % 由于对逆序序列的累计量Sk2的构建中,依然用的是累加法,即后者大于前者时s加1,
  % 则s的大小表征了一种上升的趋势的大小,而序列逆序以后,应当表现出与原序列相反
  % 的趋势表现,因此,用累加法统计Sk2序列,统计量公式(S(i)-E(i))/sqrt(Var(i))
  % 也不应改变,但统计量UBk应取相反数以表征正确的逆序序列的趋势
  UBk(i)=0-(Sk2(i)-E)/sqrt(Var);
end;
% ------------------------------逆序列计算end

% 此时上一步的到UBk表现的是逆序列在逆序时间上的趋势统计量
% 与UFk做图寻找突变点时,2条曲线应具有同样的时间轴,因此
% 再按时间序列逆转结果统计量UBk,得到时间正序的UBk2,做图用
UBk2=zeros(size(y));
% 也可以使用UBk2=flipud(UBk);或者UBk2=flipdim(UBk,1);
for i=1:n
  UBk2(i)=UBk(n-i+1);
end;


% 做突变检测图时,使用UFk和UBk2
% 写入目标xls文件:D:\test2.xls
% 目标表单:Sheet1
% 目标区域:UFk从A1开始,UBk2从B1开始
xlswrite('D:\test2.xls',UFk,'Sheet1','A1');
xlswrite('D:\test2.xls',UBk2,'Sheet1','B1');



将上面的代码复制到matlab中保存为.m文件,运行时改一下源文件和目标文件位置名称即可,正确的公式及解释,还有突变检测图的判读下次贴上吧,有问题的或有改进的或有不同认识的欢迎联系讨论

PS:.m文件不认识中文,但居然也不能用下划线,其他字符没试,命名时最好还是乖乖的用纯字母吧,不然出错都不带提示文件名出错的,让我这菜鸟一顿好找。



 
曾经善良过 @ 2011-04-05 15:22

真的都是要还的,到自己写的时候才知道头大,到还的时候了,没做什么事果然没得可写,再选一次打死也不选这么无聊的题目,查遍相关学位论文,满目都是XX农大、XX师范,时间跨10年都有。。。让人怎么写嘛


 
曾经善良过 @ 2011-03-24 01:02

常用到的Mann-kendall检验,尤其在气候变化研究中,使用颇多,但关于MK检验的原理,公式,推导,甚至改进的突变检测及其结果曲线等等,我所看过的文献中没有一个介绍的清楚的,甚至10篇文章9篇都会出现错误,包括公式等低级错误,做出的结果曲线图也是百花齐放,什么样的都有,其中也有很多很好的一级学报,以前真没想到搞科研这么多浑水摸鱼的,甚至不乏该领域的大师级,也不知道是故意不把方法写清楚还是根本就没人弄懂,也感慨编辑和审稿人们,大家都稀里糊涂不懂装懂,于是各种版本的文献让你分不清真伪。本想着国内论文滥竽充数的多,那就看看SCI吧,老外一般都把材料方法写的很详细,谁知不看还好,看了越发郁闷,这情况一点也不比国内论文好,明明就是同一种检验方法,怎么说的都有,公式的表述也是该错照错,很多可都是3以上的杂志啊,杯具,绝对的杯具。还好,和小宝师兄讨论了一晚上,终于凭借我们自己的判断和推导整明白了正确的公式和算法,顺便鄙视某自私的教师,改天再将正确公式和算法贴上来。



 
曾经善良过 @ 2011-03-21 12:38

也许真的该戒烟了,换糖吃吧


 
· 所有网志 (200)
·
· MyYcool! · HTML 语言教程

0030757

歪酷博客