はじめてこちらを利用します。プログラミングに関しては初級者ですので、記述不足等ありましたらご指摘ください。
Visual Basicで、自己評価値と他者からの評価値の相関係数を求めるプログラムを制作しています(記載コードでは省略していますが、結果はLabelコントロールに表示します)。
ネット上の同じようなコードを参考にして書きましたが、正しい計算結果が算出されずに困っています。具体性に欠ける質問で申し訳ありませんが、改善点等教えていただきたいです。
###発生している問題・エラーメッセージ
記載のコードを実行すると、それぞれの評価値の平均はうまく算出されているのが確認できましたが、特に標準偏差の算出以降、値がうまく格納されていないようです。
実行画面では相関係数がNaN(非数値)と表示されました。
###ソースコード
Partial Class Soukan_Keisu
Inherits System.Web.UI.Page
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load '自己評価値平均算出 Dim Selflist() As Double = {47, 10, 15, 50, 20, 21} Dim self_avg = Aggregate Self In Selflist Into Average() '口コミ評価値平均算出 Dim Reviwslist() As Double = {3.93, 3.16, 3.74, 3.81, 3.24, 3.77} Dim Reviws_avg = Aggregate Reviws In Reviwslist Into Average() '自己評価値の偏差を求めて格納 Dim Self_dev(5) As Double For a = 0 To 5 Self_dev(a) = Selflist(a) - self_avg Next '口コミ評価値の偏差を求める格納 Dim Reviws_dev(5) As Double For b = 0 To 5 Self_dev(b) = Selflist(b) - Reviws_avg Next '分散の計算 Dim Self_HensaHeiho As Double = Self_dev(0) ^ 2 Dim Reviws_HensaHeiho As Double = Reviws_dev(0) ^ 2 For c = 0 To 4 Self_HensaHeiho = Self_HensaHeiho + (Self_dev(c + 1) ^ 2) Reviws_HensaHeiho = Reviws_HensaHeiho + (Reviws_dev(c + 1) ^ 2) Next Dim Self_Bunsan As Double = Self_HensaHeiho / 6 Dim Reviws_Bunsan As Double = Reviws_HensaHeiho / 6 '標準偏差の計算 Dim Self_std_dev As Double = System.Math.Sqrt(Self_Bunsan) Dim Reviws_std_dev As Double = System.Math.Sqrt(Reviws_Bunsan) '偏差積の計算 Dim Dev_pdt(5) As Double For s = 0 To 5 Dev_pdt(s) = Self_dev(s) * Reviws_dev(s) Next '偏差積平均の計算 Dim Dev_avg = Aggregate Self In Dev_pdt Into Average() '相関係数算出 Dim Soukan_Keisu As Double = Dev_avg / (Self_std_dev * Reviws_std_dev)
###試したこと 配列定義の仕方に問題があるとの指摘をいただき改善しましたが、 実行結果に目に見えた変化は見られませんでした。 ブレークポイントの設定を用いて、変数の値を見てみましたが、 標準偏差の値が0.0となっているのに対して、 分散には誤りながら値が格納されていました。 ###補足情報(言語/FW/ツール等のバージョンなど) ASP.NET、Visual Studio 2013
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/08/29 01:22
2016/08/29 02:04 編集
2016/08/29 02:16
2016/08/30 01:20