0

私はこのベクトルを持っています [10000000000 10000000001 10000000002]

そして、この式を使用してその分散を計算しようとします

方式

私はそれを計算しますが、正解は 1 であるため、得られる答えは 3.33333333466667e+19 です。

私は何を間違っていますか?

MATLAB コードは

    total=0;
    m1=data(1);
    m2=(data(2)-m1)/2;
    q1=0;
    q2=q1+(((2-1)/2)*((data(2)-m1)^2));
    q3=q2+(((3-1)/3)*((data(3)-m2)^2));
    variance=q3/(3-1)

ありがとう

4

1 に答える 1

5

M は平均計算であり、

Mk = ((k-1) M(k-1) + xk)/k

したがって

m1=data(1);
m2=(data(2)+m1)/2;
q1=0;
q2=q1+(((2-1)/2)*((data(2)-m1)^2));
q3=q2+(((3-1)/3)*((data(3)-m2)^2));
variance=q3/(3-1)
variance =
     1

なんてこった、私は寛大に感じている、一般的なサイズのデータ​​の完全なコード:

sizle = size(data,2);
M = zeros(1, sizle);
Q = M;
Variance = Q;
M(1)=data(1);
for i = 2:sizle
    M(i)=((i-1)*M(i-1) + data(i))/i;
    Q(i)=Q(i-1)+(i-1)*((data(i)-M(i-1))^2)/i;
    Variance(i) = Q(i)/(i-1);
end

Variance(end)
var(data)
于 2012-05-04T02:10:40.360 に答える