我有来自三个市场的每日回报(GLD,间谍和USO)。我的目标是在130天的滚动基础上,从相关矩阵中计算出平均成对相关性。
我的出发点是:
import numpy as np
import pandas as pd
import os as os
import pandas.io.data as web
import datetime as datetime
from pandas.io.data import DataReader
stocks = ['spy', 'gld', 'uso']
start = datetime.datetime
因此,我正在研究R的矩阵,如下所示:
diff_0
SubPop0-1, SubPop1-1, SubPop2-1, SubPop3-1, SubPop4-1,
SubPop0-1, NA NA NA NA NA
SubPop1-1, 0.003403100 NA NA NA NA
SubPop2-1, 0.005481177 -0.002070277
我有一个非常大的矩阵,需要一些计算。由于for循环在R中的速度是出了名的慢,我想用一些更智能的函数来代替它。
这是我用一个小的示例矩阵编写的for循环。
d <- matrix(c(1,1,0,0,1,1,1,0,0), 3,3)
for (i in 1:nrow(d)) {
for (j in 1:ncol(d)) {
if (d[i,j] == 1) {
d[j, i] =1
} else {d[j,i] = 0}
}
}
这段代码很好地替换了想要的值,产生了一个对称矩阵,其中di,j= dj,i。但是,当矩阵很大时,它会占用大量的时间和内存。做这
我有一个不对称的矩阵,基本上我想比较对角反对的元素如下:
如果对角反对的元素在符号上相等但相反,则保留元素的绝对值,而对角反对的值为零。
如果不是这样的话,那么这两个元素中的一个就是0(但我们不知道是哪一个),所以取两者的绝对值。
完成后,转置矩阵的下三角形并将其添加到上三角形。
我提出了以下python循环:
for i in range(0, number_files):
for j in range(0, len(Identifier)):
for k in range(0,len(Identifier)):
if Matr
我很难理解这段代码中的错误是什么:
我有一堆矩阵,我想取每个矩阵的上三角部分,把它放到一个向量中,用它做一些事情,然后把结果映射回来。下面是代码:
%%
n=10;
m=3;
% generate a random 'stack of matrices'
bar=randn(n,n,m);
% index the upper triangular part
inds=triu(true(n,n));
% linearize
bar_lin=permute(bar,[3 1 2]);
bar_lin=bar_lin(:,inds);
% de-linearize
foo=
尝试实现前向代换法,即以L为下三角矩阵,x,b为向量的解Lx =b问题的求解过程。
这是一项简单的任务:
def tri_solve(L,b):
n = len(b)
x = np.zeros(n)
x[0] = b[0]/L[0,0];
for i in range(1,n):
comp = 0;
for k in range(0,i):
index = L[i,k]
preSolution = x[k]
comp = comp + index * pre
通过对一些示例数据使用pairwise.t.test,我可以得到P-值的矩阵:
attach(airquality)
pairwise.t.test(Ozone, Month)
这意味着:
Pairwise comparisons using t tests with pooled SD
data: Ozone and Month
May Jun Jul Aug
Jun 1.00000 - - -
Jul 0.00026 0.05113 - -
Aug 0.00019 0.04987
拉格朗日多项式需要这个。我很好奇,如果不使用for循环,如何才能做到这一点。目前的代码如下:
tj = 1:n;
ti = zeros(n,n-1);
for i = 1:n
ti(i,:) = tj([1:i-1, i+1:end]);
end
我的tj不仅仅是一个1:n向量,但这并不重要。当这个for循环完成工作时,我宁愿使用一些矩阵操作。我试图寻找一些适当的矩阵与它相乘,但到目前为止没有运气。