偽の統計


27

偽のニュースを発明する場合は、データをバックアップしてバックアップする必要があります。すでにいくつかの先入観を持っている必要があります。また、障害のあるロジックの議論を強化する統計情報が必要です。この挑戦はあなたを助けるはずです!

3つの入力番号がある場合:

  • N-データポイントの数
  • μ-データポイントの平均
  • σ-データポイントの標準偏差。ここで、μおよびσは次の式で与えられます。

    ここに画像の説明を入力してください

出力番号の順不同のリストは、𝑥 私を与え生成することになる、Nμ、およびσを

I / O形式についてはあまり気にしませんが、μσ、および出力データポイントのある種の小数を期待しています。少なくとも、少なくとも3つの有効数字と少なくとも1,000,000の大きさをサポートする必要があります。IEEEフロートは問題ありません。

  • Nは常に整数で、1≤N≤1,000です。
  • μには任意の実数を指定できます
  • σは常に0以上
  • データポイントは任意の実数にできます
  • 場合はNが 1である場合、σは常に0になります。

ほとんどの入力には多くの可能な出力があることに注意してください。有効な出力を1つだけ与える必要があります。出力は、確定的または非確定的の場合があります。

Input (N, μ, σ) -> Possible Output [list]

2, 0.5, 1.5 -> [1, 2]
5, 3, 1.414 -> [1, 2, 3, 4, 5]
3, 5, 2.160 -> [2, 6, 7]
3, 5, 2.160 -> [8, 4, 3]
1, 0, 0 -> [0]

6
p値に真実/偽の入力を追加すべきだったので、fake-backupまたはfake-disprove ahahaに相関データまたは非相関データを作成する必要があります。
魔法のタコUr

1
どういうない+ve-ve意味ですか?
CG。

@ChelseaG。positiveおよびnegativeの略語。明確にするために編集しました。
デジタル外傷

N = 1の場合、σはそれを可能にするために常に0になりますか?
xnor

1
実際、私たちは、修正済みのサンプル標準偏差を使用し、N = 1の入力には実装しないようにします。
ジョナサンアラン

回答:


8

Pyth44 35 34バイト

?eA.DhQ2 + eQ * G、-eQJ * E @ hc1thQ2 + eQJ * G、-eQKE + eQK 
.N?eA.DN2+T*G+LT_B*Y@hc1tN2*G+LT_BY
.N?eA.DN2+T*G+LT_B*Y@cNtN2*G+LT_BY

オンラインでお試しください! (上記のコードは関数を定義します。関数:.*を呼び出すためにリンクに追加されます。)

数学

これにより、データが対称的に構築されます。N偶数の場合、データは平均プラスまたはマイナス標準偏差です。ただし、N奇数の場合は、データを対称にするために平均値が存在する必要があるため、変動を特定の係数で乗算する必要があるため、ワームの缶を開けました。

nさえあれば

  • データの半分はμ+σです。
  • データの半分はμ-σです。

n奇数の場合

  • 1つのデータムはμです。
  • データの半分未満ですμ+σ*sqrt(n/(n-1))
  • データの半分未満ですμ-σ*sqrt(n/(n-1))

6

MATL、22バイト

修正してくれた@DigitalTraumaに感謝します。

:t&1Zs/tYm-*+tZN?3G9L(

入力順序は次のとおりです。Nσμ

オンラインでお試しください!

または、生成されたデータの平均と標準偏差もチェックとして計算する修正版を参照してください。

説明

コードは4つの部分に分かれています。

  1. :アレイ生成暗黙の入力として採用されます。[1 2 ... N]N

  2. t&1Zs/これらの数値を経験的標準偏差(で計算された正規化N)でtYm-除算し、結果の値の経験的平均を減算します。これにより、結果に経験的平均0と経験的標準偏差が確保され1ます。

  3. *乗算σおよび+加算μ、両方とも暗黙的な入力として取得

  4. tZN?x3G特殊なケース処理しN = 1σ = 0そのため出力があるべきを、μ。これが実際に当てはまる場合、2番目のステップで計算された経験的標準偏差は0であり、除算はを与えinfσ3番目のステップでの乗算はを与えましたNaN。したがって、コードが行うことは、取得した配列がすべてのNaN値(code tZN?)で構成されている場合、それを削除(x)し、3番目の入力(3G)をプッシュしμます。


4

Python、50バイト

lambda n,m,s:[m+s*(n-1)**.5]+[m-s/(n-1%n)**.5]*~-n

オンラインでお試しください!

nmean 0およびsdev で次の要素分布を使用します1

  • 確率1/n1要素)で、出力(n-1)**0.5
  • 確率1-1/nn-1要素)で、出力-(n-1)**(-0.5)

これは、を変換することにより、平均mおよびsdevに再スケーリングさsれますx->m+s*x。うるさく、n=1無用値のゼロ誤差による除算を与えるので、私たちは行って、すぐにそれをハック/(n-1%n)**.5して、1%n与える0ためn==11そうでありません。

(n-1)**.5短縮できると思うかもしれません~-n**.5が、べき乗が最初に起こります。

A defは1バイト長くなります。

def f(n,m,s):a=(n-1%n)**.5;print[m+s*a]+[m-s/a]*~-n

3

R、83 62 53バイト

function(n,m,s)`if`(n>1,scale(1:n)*s*sqrt(1-1/n)+m,m)

場合はn=1、それを返すm(以降scale返すでしょうNA)、それ以外の場合は、データをスケールする[1,...,n]こと乗算することによってので、平均0と(サンプル)の標準偏差1を持つようにs*sqrt(1-1/n)正しい母集団の標準偏差を得るために、そして追加m適切な平均値に移行します。スケール関数を紹介し、それらのバイトをドロップしてくれたDasonに感謝します!

オンラインでお試しください!


Try It Onlineにいくつかのテストを追加して、答えを簡単に確認できますか?
デジタル外傷

うん!2分お願いします。
ジュゼッペ

おそらく4バイトを節約する1:n代わりに使用できrt(n,n)ます。そして、このscale関数はおそらく役に立つかもしれません。
デイソン

@Dason-ありがとう!scaleどれが素晴らしいかを学びました。
ジュゼッペ

1

ゼリー、20 バイト

÷_Ḃ$©$*.;N$ṁ®;0ṁ⁸×⁵+

オンラインでお試しください!

3つのコマンドライン引数を使用する完全なプログラム:nμσ

どうやって?

平均から等距離のfloor(n / 2)値と、標準偏差が正しいようにnが奇数の場合は平均値を作成します...

÷_Ḃ$©$*.;N$ṁ®;0ṁ⁸×⁵+ - Main link: n, μ (σ expected as third input, the 5th command argument)
   $                 - last two links as a monad:
 _                   -   n minus:
  Ḃ                  -     n mod 2            i.e. n-1 if n is odd, n if n is even
    ©                - copy value to register
÷                    - n divided by that
       .             - literal 0.5
      *              - exponentiate = (n / (n - (n mod 2))) ^ 0.5
                     -        i.e. 1 if n is even; or (n/(n-1))^0.5 if n is odd
         $           - last two links as a monad:
        N            -   negate
       ;             -   concatenate   i.e. [1,-1] or [(n/(n-1))^0.5,-(n/(n-1))^0.5]
            ®        - recall value from register
           ṁ         - mould the list like something of that length
             ;0      - concatenate a zero
                ⁸    - link's left argument, n
               ṁ     - mould the list like something of length n (removes the zero for even n)
                  ⁵  - fifth command argument, third program argument (σ)
                 ×   - multiply (vectorises)
                   + - add μ (vectorises)
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.