忙しい現代人の腰&肩のお悩み対策!

標準偏差値を求めるにはどのような記述が必要でしょうか
?エクセルなら、Stdev関数一発で求められますが、今回
の場合、該当する数値の合計変数しか用意しているものが
なく、それにどうからめるかが分かりません。
すいませんが、助言お願いします。

このQ&Aに関連する最新のQ&A

A 回答 (6件)

 


[ Google 検索: VB 偏差値 ]
http://www.google.co.jp/search?hl=ja&ie=UTF-8&oe …

Google検索の1番目に下記があり、これがそのまま使えそうです。

[Ishikawa Club HomePage <Sample program download>]
http://tokyo.cool.ne.jp/kanain/SfDwLd.html

# 性能が悪くても構わないなら、Excelをオートメーションで使うのが簡単かもしれません。(笑

参考URL:http://www.google.co.jp,http://tokyo.cool.ne.jp/kanain/SfDwLd.html
    • good
    • 0
この回答へのお礼

ありがとうございました。解決いたしました。

お礼日時:2003/06/27 10:07

imogasi氏は標準偏差に強いみたいだ。



スレ

参考URL:http://oshiete1.goo.ne.jp/kotaeru.php3?q=441251
    • good
    • 0
この回答へのお礼

解決しました。ありがとうございました。

お礼日時:2003/06/27 10:08

> データの合計値しかわからないのに、標準偏差は計算しようがない



なるほど、そりゃそうだ。(w

見落としてました。
依頼者側の仕様ミス・・・かな?
    • good
    • 0

>該当する数値の合計変数しか用意しているものが


なく、
データの合計値しかわからないのに、標準偏差は計算しようがないと思いますが、私の問題の読み間違えでしょうか?

この回答への補足

すいません、あまりにも情報伝達不足でした。
データの合計値、及び、その集合体に必要だっ
たデータ件数までは把握できていました。
しかしこれでも材料不足(?)だったので、別
方法で今回は対処致しました。

ありがとうございました。

補足日時:2003/06/27 09:58
    • good
    • 0

> No.1の方は偏差値と理解されたようですが。


> 質問は標準偏差ですよね。

偏差値を求めるには当然標準偏差が必要な訳で、その求め方も、下記のサイトで示されています。

http://tokyo.cool.ne.jp/kanain/SfDwLd.html
 

参考URL:http://tokyo.cool.ne.jp/kanain/APIHTM/Hensa.htm
    • good
    • 0

No.1の方は偏差値と理解されたようですが。


質問は標準偏差ですよね。

標準偏差の求め方は参考URL、統計用語の31を参照ください。

参考URL:http://www.datamining.jp/vocabular/yougo.htm
    • good
    • 0
この回答へのお礼

ありがとうございました。解決できました。

お礼日時:2003/06/27 10:07

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q基本的なことから分かりません。助けてください。

身長と体重を10づつ入力してそれぞれの平均、分散、標準偏差、
身長と体重の共分散、相関係数を求めるプログラミングを
VisualBasicの分岐処理、繰り返し処理、配列の概念を利用して作りたいのですが
全然分かりません。教えてください。お願いします。

Aベストアンサー

皆さん出きる問題だと思う。しかし回答が少ない。
もう少し自分で勉強しなさいと言う風に私は感じる。
しかし初めは皆んな習い覚えるのだし、自分も充分わかってないのだし、やって見ようと思いました。
(1)VisualBasicを使うのですね。
(2)普通にやると、実行するとForm1が自動的に出来てしまうので、これを使わないようにしようと思い、VBE画面のプロジェクトのForm1を右クリックしてForm1の解放をクリックしました。
(3)普通は標準モジュールのSubの後はルーチン名はなんでも良いが、下記の場合はMainを要求してくるのでSub main()ではじめる。
(4)昔のBASICではINPUTだったが、VBなのでINPUTBOX関数で、入力値を取った。
昔はPRINT文だったが、表示にはMSGBOX関数を
使った。
-------
Sub main()
Dim i ,n As Integer
Dim d(10) As Double
Dim s, av As Double
s = 0
For i = 1 To 10
x = InputBox(i & "番目の身長 = ")
d(i) = x
s = s + x
Next i
n = i - 1
MsgBox n & "件入力"
av = s / n
MsgBox "平均=" & av
'-----
s = 0
For i = 1 To 10
s = s + (d(i) - av) ^ 2
Next i
MsgBox "偏差平方和=" & s
std = (s / n) ^ (1 / 2)
MsgBox "標準偏差=" & std
End Sub
エクセルでは,下記で求められます。検算に使ってください。
(1)平均Average(A1:A10)
(2)偏差平方和DEVSQ(A1:A10)
(3)標準偏差STDEVP(A1:A10)に当たります。
もう1種の標準偏差STDEVがありますので注意。
----
For-Nextを使わないなら(平均の部分まで)
Sub main()
Dim i, s, av As Double
s = 0
i = 0
p01:
If i = 10 Then GoTo p02
x = InputBox(i + 1 & "番目の身長 = ")
s = s + x
i = i + 1
GoTo p01
p02:
MsgBox i & "件入力"
av = s / i
MsgBox "平均=" & av
End Sub
です。

皆さん出きる問題だと思う。しかし回答が少ない。
もう少し自分で勉強しなさいと言う風に私は感じる。
しかし初めは皆んな習い覚えるのだし、自分も充分わかってないのだし、やって見ようと思いました。
(1)VisualBasicを使うのですね。
(2)普通にやると、実行するとForm1が自動的に出来てしまうので、これを使わないようにしようと思い、VBE画面のプロジェクトのForm1を右クリックしてForm1の解放をクリックしました。
(3)普通は標準モジュールのSubの後はルーチン名はなんで...続きを読む

Qエクセル STDEVとSTDEVPの違い

エクセルの統計関数で標準偏差を求める時、STDEVとSTDEVPがあります。両者の違いが良くわかりません。
宜しかったら、恐縮ですが、以下の具体例で、『噛み砕いて』教えて下さい。
(例)
セルA1~A13に1~13の数字を入力、平均値=7、STDEVでは3.89444、STDEVPでは3.741657となります。
また、平均値7と各数字の差を取り、それを2乗し、総和を取る(182)、これをデータの個数13で割る(14)、この平方根を取ると3.741657となります。
では、STDEVとSTDEVPの違いは何なのでしょうか?統計のことは疎く、お手数ですが、サルにもわかるようご教授頂きたく、お願い致します。

Aベストアンサー

データが母集団そのものからとったか、標本データかで違います。また母集団そのものだったとしても(例えばクラス全員というような)、その背景にさらならる母集団(例えば学年全体)を想定して比較するような時もありますので、その場合は標本となります。
で標本データの時はSTDEVを使って、母集団の時はSTDEVPをつかうことになります。
公式の違いは分母がn-1(STDEV)かn(STDEVP)かの違いしかありません。まぁ感覚的に理解するなら、分母がn-1になるということはそれだけ結果が大きくなるわけで、つまりそれだけのりしろを多くもって推測に当たるというようなことになります。
AとBの違いがあるかないかという推測をする時、通常は標本同士の検証になるわけですので、偏差を余裕をもってわざとちょっと大きめに見るということで、それだけ確証の度合いを上げるというわけです。

Q標準偏差の求め方

現在,Oracleを使って開発を行っています。
そこで、標準偏差を求めたいのですが・・・
Excelでいう「STDEVP」と同じ機能を持つ関数などはないのでしょうか?
Oracleには「STDEV」という関数しかありません。

「Excelにデータを書き込んで、STDEVP関数を使う」という方法では
時間がかかりすぎるので、使えません。

何かよい方法をご存知でしたら、教えてください。
よろしくお願いしますm(_ _)m

Aベストアンサー

ごめんなさい。
STDEV ではなく、STDEVP でしたね。
それでは、STDDEV_POP 関数は使用できませんでしょうか?

QVBA 配列に格納した値の平均のやり方についてお教え願います

いつもお世話になります。
配列に格納した値の平均のやり方についてお教え願います。
現在、実験測定データの移動平均(下記avg(x,1))を計算をしたいのですが、
配列に格納した値の平均が思うように計算できず困っております。

a =Range("A1:A20000")‘測定データを配列に格納
avg(x, 1) = Application.WorksheetFunction.average(a(x, 1), a(x + 5, 1))

という記述方法ではa(x, 1)とa(x + 5, 1)の2点の平均になってしまいます。
これをa(x, 1), a(x+1, 1),a(x+2, 1),a(x+3, 1) ,a(x+4, 1) ,a(x+5, 1)の5点の平均が計算できる記述方法はないでしょうか?

○実際の式は下のようなもので移動平均の平均区間yも変化します。
Dim avg(1 To 20000, 1 To 1)

-前式省略-

For y = 1 To 20000

-途中式省略-

a =Range("A1:A20000")‘測定データを配列に格納
For x = 1 To 20000
avg(x, 1) = Application.WorksheetFunction.average(a(x, 1), a(x + y, 1))
‘↑これでは2点の平均値になってしまいます。
Next

-途中式省略-

Next

-後式省略-

○Range(“B1”)=AVERAGE(A1:OFFSET(A1,y-1,0))
Range(“B2”)=AVERAGE(A2:OFFSET(A2,y-1,0)) 
・・・
というふうにセルに一つずつaverage関数を入力すれば移動平均も計算できるのですが、繰り返し回数が多いため、計算に非常に時間がかかります。そのため上記配列を利用したもので計算したいと思います。

○ネットでヒントを見つけたのですが↓
Set ran = Range(Range("A1"), Range("A1").End(xlDown))
Range("C4").Value = WorksheetFunction.average(ran)
こう記述すればある範囲内の平均を求められるようですが、
Set ran= 以降の部分をRange(***)ではなく、
Set ran = (a(x, 1), a(x + y, 1)) ←a(x, 1)~a(x + y, 1)まで、というイメージですが・・・
というふうに範囲を配列で表すやり方を教えて頂けるだけでも結構です。

excel2003です。
以上、よろしくお教え願います。

いつもお世話になります。
配列に格納した値の平均のやり方についてお教え願います。
現在、実験測定データの移動平均(下記avg(x,1))を計算をしたいのですが、
配列に格納した値の平均が思うように計算できず困っております。

a =Range("A1:A20000")‘測定データを配列に格納
avg(x, 1) = Application.WorksheetFunction.average(a(x, 1), a(x + 5, 1))

という記述方法ではa(x, 1)とa(x + 5, 1)の2点の平均になってしまいます。
これをa(x, 1), a(x+1, 1),a(x+2, 1),a(x+3, 1) ,a(x+4, 1) ,a(x+5, 1)...続きを読む

Aベストアンサー

ワークシート関数で手抜きしようとしないで
簡単な平均算出関数を定義すれば済むことではありませんか?

Function myAvg( ar() as integer, nStart, nCount ) as double
  dim n as integer, dSum as double
  dSum = 0
  for n = nStart to nStart + nCount -1
    dSum = dSum + ar(n,1)
  next
  myArg = dSum / nCount
End Function

呼び出し側で
dim dRes() as Double
a = Range("A1:A20000").Value
ReDim dRes( 1 to Ubound(a,1), 1 to 1)
for n = 1 to 19900
  dRes(n) = myAvg( a, n, 100 )
next
Range("B1:B20000").value = dRes
といった具合で ・・・

ワークシート関数で手抜きしようとしないで
簡単な平均算出関数を定義すれば済むことではありませんか?

Function myAvg( ar() as integer, nStart, nCount ) as double
  dim n as integer, dSum as double
  dSum = 0
  for n = nStart to nStart + nCount -1
    dSum = dSum + ar(n,1)
  next
  myArg = dSum / nCount
End Function

呼び出し側で
dim dRes() as Double
a = Range("A1:A20000").Value
ReDim dRes( 1 to Ubound(a,1), 1 to 1)
for n = 1 to 19900
  dRes(n)...続きを読む

QEXCEL VBAで計算値を四捨五入、切り上げ、切捨てする方法

ネットで探してみたのですが、計算結果を四捨五入して特定のセルを
返すにはどうしたらいいのでしょうか?

Sub hokangosa()

Dim ZPS As Double
Dim ZPOS As Double
Dim DMN As Double
MsgBox (" >>> 補間誤差自動計算 <<< ")
MsgBox (" >>> 初期値入力します <<< ")
ZPS = InputBox(">>> ステップを入力してください<<<")
ZPOS = Sheet1.Cells(22, 4).Value
DMN = ZPOS / ZPS
Sheet1.Cells(23, 6).Value = DMN
End Sub

ここでDMNの値を四捨五入したいです。

またこれとは別に切上げ、切捨ても教えていただけるとありがたいです。

Aベストアンサー

DMN = Application.WorksheetFunction.Round(ZPOS / ZPS, 0)
で、四捨五入
DMN = Application.RoundDown(ZPOS / ZPS, 0)
で切り捨て
DMN = Application.RoundUp(ZPOS / ZPS, 0)
で切り上げです。

引数で、対象桁を変更できます。

Q助けてください!

身長と体重を10づつ入力してそれぞれの平均、分散、標準偏差、
身長と体重の共分散、相関係数を求めるプログラミングを
VisualBasicの分岐処理、繰り返し処理、配列の概念を利用して作りたいのですが
全然分かりません。教えてください。お願いします。

フォームはすでに出来ています。
身長はtext1をコピーして
text1(0) text1(1) text1(2) text1(3) text1(4) text1(5) text1(6) text(7)text(8) text(9)というように配列を使っています。
体重もtext2で同じようになっています。
command1をクリックすると、
身長の平均をtext3、    体重の平均をtext4、
   分散をtext5、       分散をtext6、
   標準偏差をtext7      標準偏差をtext8、
   共分散をtext9 相関係数をtext10
に表示できる    
具体的なプログラムを教えてください。
Private sub command1_click



End sub
の空欄に入力する内容を教えてください。

身長と体重を10づつ入力してそれぞれの平均、分散、標準偏差、
身長と体重の共分散、相関係数を求めるプログラミングを
VisualBasicの分岐処理、繰り返し処理、配列の概念を利用して作りたいのですが
全然分かりません。教えてください。お願いします。

フォームはすでに出来ています。
身長はtext1をコピーして
text1(0) text1(1) text1(2) text1(3) text1(4) text1(5) text1(6) text(7)text(8) text(9)というように配列を使っています。
体重もtext2で同じようになっています。
command1をクリッ...続きを読む

Aベストアンサー

平均、分散、標準偏差、共分散、相関係数を求める方法を説明します
No1の方のコードを借りると(変数宣言は省略)
1.合計を求めます。
for i = 1 to 10
Goukei = Goukei + CDbl(text1(i))
Next

2.合計を要素数で割ると平均が出ます
Heikin = Goukei / 10

3.要素から平均を引いたものを偏差と言います。平均からの偏りという意味です。
その偏差を2乗して合計します。これを偏差平方和と言います。
for i = 1 to 10
HensaHeihouWa = HensaHeihouWa + (CDbl(text1(i)) - Heikin)^2
Next

4.偏差平方和を要素数で割ると分散が出ます(正確には標本分散です)
Bunsan= HensaHeihouWa / 10

5.分散の平方根(ルート)を取ると標準偏差になります
HyoujyunHensa = Sqr(Bunsan)

6.1から5を身長、体重とそれぞれ求めます。以後、身長の平均だったらShintyouHeikinというように記述します。

7.1人の身長の偏差と体重の偏差を掛けます。そしてそれを合計します。これを偏差積和と言います
for i = 1 to 10
HensaSekiWa = HensaSekiWa + (CDbl(text1(i)) - SintyouHeikin) * (CDbl(text2(i)) - TaijyuhHeikin)
next

8.偏差積和を要素数で割ります。それが共分散です
KyouBunsan = HensaSekiWa / 10

9.共分散を身長の分散と体重の分散の積の平方根で割ります。それが相関係数です
Soukankeisuh = KyouBunsan / Sqr(ShintyouBunsan*TaijyuhBunsan)

あとは任意のテキストボックスに必要な値を代入してください

平均、分散、標準偏差、共分散、相関係数を求める方法を説明します
No1の方のコードを借りると(変数宣言は省略)
1.合計を求めます。
for i = 1 to 10
Goukei = Goukei + CDbl(text1(i))
Next

2.合計を要素数で割ると平均が出ます
Heikin = Goukei / 10

3.要素から平均を引いたものを偏差と言います。平均からの偏りという意味です。
その偏差を2乗して合計します。これを偏差平方和と言います。
for i = 1 to 10
HensaHeihouWa = HensaHeihouWa + (CDbl(text1(i)) - Heikin)^2
Next

...続きを読む

QFunctionの戻り値を配列にしたいのですが

vbを始めたばかりですがよろしくお願いします。

Functionの戻り値を配列にしたいのですが

Function fnc(ByVal a As Byte, ByVal b As Byte) As Integer()
fnc(0) = a + b
fnc(1) = a - b
End Function
というような使い方はできないのでしょうか?
一つのFunctionで二つの計算結果をかえすには
どうしたらよいのでしょうか?
お願いします。

Aベストアンサー

ローカル変数を使えば可能だと思いますよ

VB6.0の場合
Function fnc( byVal a as Byte, Byval b as Byte) as Integer
  dim ar(1) as Integer
  ar(0) = a + b
  ar(1) = a - b
  fnc = ar
End Function

VB.NETなら
Function fnc( byVal a as Byte, Byval b as Byte) as Integer
  dim ar(1) as Integer
  ar(0) = a + b
  ar(1) = a - b
  return ar
End Function

VB.NETでも fnc = ar と言った記述も出来ます

呼び出し側では 動的配列として返り値を受けます
dim results() as Integer
results = fnc( 5, 3 )
と言った具合です

Q別のシートから値を取得するとき

Worksheets("シート名").Activate
上記のを行ってから別シートの値を取得するのですが、
この処理を行うと指定したシートへ強制的にとんでしまいます。。。

※イメージ
For ~ To ~
  Worksheets("シートA").Activate
  シートAの値取得
       :
  Worksheets("シートB").Activate
  シートBの値取得
Next

このイメージ処理を行うとものすごい勢いで画面がチカチカします。。。
シートを変えずに他のシートから値を取得する方法はないのでしょうか。
教えてください!

Aベストアンサー

Worksheets("シートA").Range("A1")

みたいな感じでできませんか?

Qエクセル 0や空白のセルをグラフに反映させない方法

以下の点でどなたかお教えください。

H18.1~H20.12までの毎月の売上高を表に記載し、その表を元にグラフを作成しています。グラフに反映させる表の範囲はH18.1~H20.12の全てです。
そのためまだ経過していない期間のセルが空白になり、そこがグラフに反映され見づらくなります。
データを入力する都度グラフの範囲を変更すればいいのですが、うまく算式や設定等で空白や0円となっているセルをグラフに反映させない方法はありますか?

お手数ですが、よろしくお願いいたします。

Aベストアンサー

売上高のセルは数式で求められているのですよね?
それなら
=IF(現在の数式=0,NA(),現在の数式)
としてみてください。
つまり、0の場合はN/Aエラーにしてしまうんです。N/Aエラーはグラフに反映されません。

Q配列を関数に渡す方法

VB6.0のプログラムで質問があるのですが
下のプログラムのように配列num、num1を関数AAAに
渡したいと思うのですがどうすればいいのでしょうか?
よろしくお願いいたします。

Option Explicit
Private num(10) As Integer
Private num1(10) As Integer

Private Sub Write_Click()
   AAA(num)
   AAA(num1)
End Sub

Private Function AAA(???)
   Dim i As Integer
   For i = 1 To 10
      ???(i) = i
   Next i
End Function

Aベストアンサー

コードミスしてました申し訳ない

Option Explicit
Private num(10) As Integer
Private num1(10) As Integer

Private Sub Write_Click()
   Call AAA(num)
   Call AAA(num1)
End Sub

Private Function AAA(ByRef test() As Integer)
   Dim i As Integer
   For i = 1 To 10
      test(i) = i
   Next i
End Function

ですね!


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング