配列の要素の分散の求め方 php言語
配列の要素の分散の求め方 php言語
はじめまして。
例えば3つの配列 [1,2,3] [2,4,5] [6,2,5] があるとして、これらの要素の分散を求めるプログラムが知りたいです。
これら3つの配列の平均は[3,2.66,4.33]になると思います。 そして分散なのでこの平均を出した配列ともとの3つの配列をつかって
分散を[a,b,c] のように配列として出したいのですが、どのようにやるのでしょうか?
どなたかお願いいたします。
例えば3つの配列 [1,2,3] [2,4,5] [6,2,5] があるとして、これらの要素の分散を求めるプログラムが知りたいです。
これら3つの配列の平均は[3,2.66,4.33]になると思います。 そして分散なのでこの平均を出した配列ともとの3つの配列をつかって
分散を[a,b,c] のように配列として出したいのですが、どのようにやるのでしょうか?
どなたかお願いいたします。
Re: 配列の要素の分散の求め方 php言語
はじめまして! 配列の全ての要素の分散を求めたいのですね。ところで平均値はどうやって求めたのでしょう? 平均値が求められれば分散も少し帰るだけでできると思います。まずはどこまでプログラムを書いて、どこまでできて、どこで躓いてしまったのか教えて頂けるとお答えしやすいと思います。
ζ*'ヮ')ζプログラミングはみんなで奏でるシンフォニー
Re: 配列の要素の分散の求め方 php言語
ご返信ありがとうございます。
恥ずかしながら平均を求める段階でつまずいてしまっている段階でプログラムをかけていない状況です。。
配列の分散となるとどのように進めてよいのかもわからない段階です。。
もとの配列はfile_get_contentsで取得したxmlファイルのものを使用したいのですが。
$array1 = file_get_contents("xmlファイル");
$array2 = file_get_contents("xmlファイル");
$array3 = file_get_contents("xmlファイル");
このように配列ファイルを取得してからのプログラムがわからない状況です。
よろしくお願いしたいです。
恥ずかしながら平均を求める段階でつまずいてしまっている段階でプログラムをかけていない状況です。。
配列の分散となるとどのように進めてよいのかもわからない段階です。。
もとの配列はfile_get_contentsで取得したxmlファイルのものを使用したいのですが。
$array1 = file_get_contents("xmlファイル");
$array2 = file_get_contents("xmlファイル");
$array3 = file_get_contents("xmlファイル");
このように配列ファイルを取得してからのプログラムがわからない状況です。
よろしくお願いしたいです。
Re: 配列の要素の分散の求め方 php言語
つまり、
1. 1つのXMLファイルを読み込み、
2. 数値の配列に変換し、
3. 配列の平均値を求め、
4. それを利用して分散を求める
わけですね。
となるとこれらを順番に解決しなければなりませんが、まずはそのXMLの例を示して下さい。どのようなXMLになっているのか、数値は3個だけなのか、XMLファイルは1種類だけなのか、XMLファイルではないといけないのか、などです。
申し訳ありません。PHPには詳しくないのですが、file_get_contents関数はファイルを文字列として取得するものだと思いますが、自動的に配列になってくれるのでしょうか? (「php XML」で検索するといろいろ例が出てきます。)
1. 1つのXMLファイルを読み込み、
2. 数値の配列に変換し、
3. 配列の平均値を求め、
4. それを利用して分散を求める
わけですね。
となるとこれらを順番に解決しなければなりませんが、まずはそのXMLの例を示して下さい。どのようなXMLになっているのか、数値は3個だけなのか、XMLファイルは1種類だけなのか、XMLファイルではないといけないのか、などです。
申し訳ありません。PHPには詳しくないのですが、file_get_contents関数はファイルを文字列として取得するものだと思いますが、自動的に配列になってくれるのでしょうか? (「php XML」で検索するといろいろ例が出てきます。)
ζ*'ヮ')ζプログラミングはみんなで奏でるシンフォニー
Re: 配列の要素の分散の求め方 php言語
xml ファイルは以下のようになっております
[例:example.xml]
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
<real>0.23593497276306152</real>
<real>0.45295000076293945</real>
<real>0.26988601684570312</real>
</array>
</plist>
このような数値が3個のxmlファイルを3つ読み込みます。
$array1 = file_get_contents("example.xml");
$doc1 = new DOMDocument();
$doc1->loadXML($array1);
$items1 = $doc1->getElementsByTagName("real");
$array1 = [];
foreach ($items1 as $node){
$item_array1[] = $node->nodeValue;
}
配列には上記のように格納しているの流れとなっております。
この流れをxmlファイル3つに適応し、xmlファイルを配列にいれています。
この先で分散を求めたいのですが全くわからない状況です。。
よろしくおねがいします。
[例:example.xml]
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
<real>0.23593497276306152</real>
<real>0.45295000076293945</real>
<real>0.26988601684570312</real>
</array>
</plist>
このような数値が3個のxmlファイルを3つ読み込みます。
$array1 = file_get_contents("example.xml");
$doc1 = new DOMDocument();
$doc1->loadXML($array1);
$items1 = $doc1->getElementsByTagName("real");
$array1 = [];
foreach ($items1 as $node){
$item_array1[] = $node->nodeValue;
}
配列には上記のように格納しているの流れとなっております。
この流れをxmlファイル3つに適応し、xmlファイルを配列にいれています。
この先で分散を求めたいのですが全くわからない状況です。。
よろしくおねがいします。
Re: 配列の要素の分散の求め方 php言語
まず、1個の配列に格納されている数値の分散を求めることはできますか?
例えば、[1,2,3]という配列が与えられたとき、このデータの分散0.67を求めることはできますか?
例えば、[1,2,3]という配列が与えられたとき、このデータの分散0.67を求めることはできますか?
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: 配列の要素の分散の求め方 php言語
PHP: stats_variance - Manual
これを使うと応用が効かなそうなので、できればライブラリを使わず自分で計算するプログラムを実装してみてください。
これを使うと応用が効かなそうなので、できればライブラリを使わず自分で計算するプログラムを実装してみてください。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: 配列の要素の分散の求め方 php言語
$average=0;
foreach($array1 as $value)
{
$average += $value;
}
$average =($average/count($array));
return $average;
....
}
平均までは求められますが、ここから分散を求めるのができないです。。
foreach($array1 as $value)
{
$average += $value;
}
$average =($average/count($array));
return $average;
....
}
平均までは求められますが、ここから分散を求めるのができないです。。
Re: 配列の要素の分散の求め方 php言語
分散の(数学的な)求め方がわからないですか?
それとも、分散の求め方はわかるが、それをプログラムにできないですか?
それとも、分散の求め方はわかるが、それをプログラムにできないですか?
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: 配列の要素の分散の求め方 php言語
分散って2種類の平均の差なので、平均を求められて分散が分からない理由が分かりません。
二乗の平均をA、平均をBとすると、分散Vは
V=A-B*B
で求めることができるのですが。
二乗の平均をA、平均をBとすると、分散Vは
V=A-B*B
で求めることができるのですが。
Re: 配列の要素の分散の求め方 php言語
n番目の要素ごとに分散を求める方法が分からないという話ですよね。
foreachで回していてnがどこだか分からないということだと思いますが。
foreachで回していてnがどこだか分からないということだと思いますが。