нормализированный коэффициент корреляции

Discussion in 'Болталка' started by ProTeuS, 12 Jun 2006.

  1. ProTeuS

    ProTeuS --

    Joined:
    26 Nov 2004
    Messages:
    1,239
    Likes Received:
    541
    Reputations:
    445
    кто-нить может внятно сказать\ответить\помо4ь в сабЖе, если есть несколько массивов 4исел и нужно на практике в своей программе подс4итать меру их схожести к другому (само понятие и формулы есть и в википедии, и в екселе-реализация, нужен совет по практи4еской реализации в конкретно своей проге исходя из описанных входных данных)???

    буду рад услЫшать 4то-нить от людей, которым больше 4ем мне пощасливилось у4ить матстатистику...
     
  2. Trinux

    Trinux Members of Antichat

    Joined:
    26 Nov 2004
    Messages:
    1,403
    Likes Received:
    296
    Reputations:
    364
    А какие проблемы? Сравниваешь каждый элемент массива с остальными в определенном порядке, при этом несовпавшие массивы сразу вычеркиваешь
     
    _________________________
  3. NaX[no]rT

    NaX[no]rT Members of Antichat

    Joined:
    3 Sep 2005
    Messages:
    489
    Likes Received:
    201
    Reputations:
    202
    Создаёшь какую либо переменную, затем поэлементно сравниваешь один массив с другим если элементы совпали inc(переменная). В какой больше всего будет, значит и будут самые похожие... вроде элементарно
     
    _________________________
  4. ProTeuS

    ProTeuS --

    Joined:
    26 Nov 2004
    Messages:
    1,239
    Likes Received:
    541
    Reputations:
    445
  5. NaX[no]rT

    NaX[no]rT Members of Antichat

    Joined:
    3 Sep 2005
    Messages:
    489
    Likes Received:
    201
    Reputations:
    202
    аа )) воть ты про что ... в формулу составить нужно?))
     
    _________________________
  6. Algol

    Algol New Member

    Joined:
    29 May 2002
    Messages:
    1,759
    Likes Received:
    4
    Reputations:
    0
    В чем проблема-то ?
    Нет формулы? Есть формула но не знаешь как реализовать?
    Какой коэфф корреляции? Пирсона?
     
  7. ProTeuS

    ProTeuS --

    Joined:
    26 Nov 2004
    Messages:
    1,239
    Likes Received:
    541
    Reputations:
    445
  8. Algol

    Algol New Member

    Joined:
    29 May 2002
    Messages:
    1,759
    Likes Received:
    4
    Reputations:
    0
    Вот вроде вразумительно написано http://www.usatic.narod.ru/test-teor4-1-4.html
    А вообще-то такие элементарные вещи нужно уметь считать и без форумул ))
     
  9. Brun

    Brun Elder - Старейшина

    Joined:
    21 Mar 2006
    Messages:
    95
    Likes Received:
    57
    Reputations:
    16
    недавно надо было. Вот и стряпал.
    Code:
    procedure TForm1.korelExecute(Sender: TObject);
    var i,j,jj,n:integer;
    listitem:tlistitem;
    sc:string;
    begin
      for i:=1 to 2000 do
      begin
        x[i]:=0;
        p1[i]:=0;
        p2[i]:=0;
        p3[i]:=0;
      end;
    
      for j:=1 to 3 do for i:=1 to 3000 do px[j][i]:=0;
      n:=form1.StringGrid3.RowCount-1;
      for i := 1 to n do
      if (form1.StringGrid3.Cells[2,i] <> '-') and (form1.StringGrid3.Cells[2,i] <> '') then
        px[1][i]:=StrToInt(form1.StringGrid3.Cells[2,i]) else px[1][i]:=0;
      for i := 1 to n do
      if (form1.StringGrid3.Cells[3,i] <> '-') and (form1.StringGrid3.Cells[3,i] <> '') then
        px[2][i]:=StrToInt(form1.StringGrid3.Cells[3,i]) else px[2][i]:=0;
      for i := 1 to n do
      if (form1.StringGrid3.Cells[4,i] <> '-') and (form1.StringGrid3.Cells[4,i] <> '') then
        px[3][i]:=StrToInt(form1.StringGrid3.Cells[4,i]) else px[3][i]:=0;
    
      for j:=1 to 8 do
      begin
        with form1.ListView1 do
        begin
          ListItem := Items.Add;ListItem.Caption :='';
          for jj:=0 to 7 do ListItem.SubItems.Add('');
        end;
      end;
    
    
    
      for j:=1 to 3 do
      begin
        for i:=1 to n do mx[j]:=mx[j]+px[j][i];
        mx[j]:=mx[j]/(n);
      end;
       //Розрахунок середньоквадратичного відхилення//
      for j:=1 to 3 do
      begin
         s[j]:=0;
         for i:=1 to n do s[j]:=s[j]+sqr(px[j][i]-mx[j]);
          s[j]:=s[j]/(n-1);
          sigma[j]:=sqrt(s[j]);
        end;
      for j:=1 to 3 do
      begin
        form1.ListView1.Items.Item[j-1].caption:=inttostr(j);
        for jj:=1 to 3 do
        begin
          r[j,jj]:=0;
          for i:=1 to n do
          r[j,jj]:=r[j,jj]+((px[j][i]-mx[j])*(px[jj][i]-mx[jj]));
          r[j,jj]:=r[j,jj]/((n-1)*sigma[j]*sigma[jj]);
          str(r[j,jj]:5:8,sc);
          form1.ListView1.Items.Item[j-1].SubItems[jj-1]:=sc;
        end;
      end;
    
    
    end;
    Вот кусок кода для Delphi. Если что не понятно, то стучи.