タグ付けされた質問 「scipy」

1
Scipyのベータ分布フィッティング
ウィキペディアによると、ベータ確率分布には、および 2つの形状パラメーターがあります。αα\alphaββ\beta scipy.stats.beta.fit(x)Python を呼び出すと、xの範囲の数字の束があり、4つの値が返されます。これは奇妙に思えます。[ 0 、1 ][0、1][0,1] グーグルで検索した結果、戻り値の1つは 'location'でなければならないことがわかりましたscipy.stats.beta.fit(x, floc=0)。 4番目の変数が何であるか、そして最初の2つがと場合、誰もが知っていますか?αα\alphaββ\beta

1
PCAとTruncatedSVDのscikit-learn実装の違い
代数的/厳密なレベルでの主成分分析と特異値分解の関係を理解し​​ています。私の質問は、scikit-learnの実装についてです。 ドキュメンテーションは、「[TruncatedSVD]はPCAに非常に似ていますが、共分散行列ではなく、サンプルベクトルを直接操作します。」これは、両方のアプローチの代数的な違いを反映しています。ただし、後で説明します:「この推定器[TruncatedSVD]は、2つのアルゴリズムをサポートしています。高速ランダム化SVDソルバーと、(X * XT)または(XT * X)の固有ソルバーとしてARPACKを使用する「単純な」アルゴリズムのいずれか多い方です。効率的。」PCAについて、「データの特異値分解を使用してそれを投影する線形次元削減...」と述べています。PCA実装は、同じ2つのアルゴリズム(ランダム化およびARPACK)ソルバーと、もう1つのアルゴリズムLAPACKをサポートしています。コードを見ると、PCAとTruncatedSVDの両方のARPACKとLAPACKの両方がサンプルデータXでsvdを実行しており、ARPACKは(svdsを使用して)スパース行列を処理できることがわかります。 したがって、さまざまな属性とメソッドを除いて、PCAがLAPACK、PCA、およびTruncatedSVDを使用して正確な完全特異値分解を実行できることを除いて、scikit-learnの実装はまったく同じアルゴリズムのようです。最初の質問:これは正しいですか? 2番目の質問:LAPACKとARPACK使用scipy.linalg.svd(X)とscipy.linalg.svds(X)、というXサンプルマトリックスが、彼らは特異値分解またはの固有分解を計算するにもかかわらず、または内部では「ランダム化」ソルバーは積を計算する必要はありませんが。(これは数値の安定性に関連しています。データのSVDによるデータのPCAの理由を参照してください。)これは正しいです?X ∗ X TバツT∗ XXT∗XX^T*Xバツ∗ XTX∗XTX*X^T 関連コード:PCAのライン415 TruncatedSVDのライン137。
12 pca  scikit-learn  svd  scipy 

2
コルモゴロフ–スミルノフ検定:サンプルサイズが大きくなると、p値とks検定の統計量は減少します
サンプルサイズの増加に伴い、p値とks検定の統計が減少するのはなぜですか?例としてこのPythonコードを見てみましょう: import numpy as np from scipy.stats import norm, ks_2samp np.random.seed(0) for n in [10, 100, 1000, 10000, 100000, 1000000]: x = norm(0, 4).rvs(n) y = norm(0, 4.1).rvs(n) print ks_2samp(x, y) 結果は次のとおりです。 Ks_2sampResult(statistic=0.30000000000000004, pvalue=0.67507815371659508) Ks_2sampResult(statistic=0.080000000000000071, pvalue=0.89375155241057247) Ks_2sampResult(statistic=0.03499999999999992, pvalue=0.5654378910227662) Ks_2sampResult(statistic=0.026599999999999957, pvalue=0.0016502962880920896) Ks_2sampResult(statistic=0.0081200000000000161, pvalue=0.0027192461984023855) Ks_2sampResult(statistic=0.0065240000000000853, pvalue=6.4573678008760032e-19) 直観的に私は、nが大きくなるにつれて、2つの分布が異なることを「より確実」にテストすることを理解しています。しかし、サンプルサイズが非常に大きい場合、これなどの類似性テストのポイントは何であり、アンダーソンダーリングテストまたはt検定と言えます。このような場合、nが非常に大きい場合、分布は常に「大幅に」違う!?現在、p値のポイントは一体何なのかと思っています。これはサンプルサイズに大きく依存します... p> 0.05でそれを小さくしたい場合は、より多くのデータを取得します。そして、p <0.05でより高くしたい場合は、一部のデータを削除します。 また、2つの分布が同一である場合、ks-test統計は0で、p値は1になります。ただし、私の例では、nが増加するにつれて、ks-test統計は、分布が時間とともにますます類似する(減少する)ことを示唆しています。 、しかしp値に従って、それらは時間とともにより大きくなり、(また減少し)ます。

4
R対SciPyでの対数正規分布の近似
Rを使用して、データのセットで対数正規モデルを近似しました。結果のパラメーターは次のとおりです。 meanlog = 4.2991610 sdlog = 0.5511349 このモデルを、これまで使用したことがないScipyに転送したいと思います。Scipyを使用して、1と3.1626716539637488e + 90という非常に異なる数の形状とスケールを取得することができました。また、meanlogとsdlogのexpを使用しようとしましたが、奇妙なグラフが引き続き表示されます。 私はscipyでできるすべてのドキュメントを読みましたが、この場合の形状とスケールのパラメーターの意味についてまだ混乱しています。関数を自分でコーディングするのは理にかなっていますか?私はscipyが初めてなので、エラーが発生しやすいようです。 SCIPYログノーマル(青)対Rログノーマル(赤): どの方向に進むかについての考えはありますか?ちなみに、データはRモデルと非常によく適合しているので、Pythonで他のように見える場合は、自由に共有してください。 ありがとうございました! 更新: 私はScipy 0.11を実行しています これがデータのサブセットです。実際のサンプルは38k +で、平均は81.53627です。 サブセット: x [60、170、137、138、81、140、78、46、1、168、138、148、145、35、82、126、66、147、88、106、80、54、83、13 102、54、134、34 ] numpy.mean(x) 99.071428571428569 または: 私はpdfを取り込む機能に取り組んでいます: def lognoral(x, mu, sigma): a = 1 / (x * sigma * numpy.sqrt(2 * numpy.pi) ) b = - (numpy.log(x) - mu) …
10 r  python  numpy  scipy 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.