投稿

元素記号で神経衰弱、中学生用

1番から20番と、Ag,Cu,Fe,Zn から10組の問題が出ます。 上半分が日本語で元素名、下半分が元素記号です。

2次元データから回帰直線と任意の(x1, y1)が予測曲線上にあるかどうかのp値を算出する方法

以下の方法を用いて、2次元データから回帰直線と任意の(x1, y1)が予測曲線上にあるかどうかのp値を算出することができます。  Julia のコードを末尾に載せます。  p値 (pValue) は、0.4974525172673961 になります。   1. 残差平方和 (SSE) の計算 残差平方和 (SSE) は、回帰直線と各データ点との距離の二乗和を表します。 SSEは、回帰モデルがデータにどの程度フィットしていないかを表す指標となります。   計算式 SSE = Σ(yi - ŷi)^2   yi: データ点のy座標   ŷi: 回帰直線による予測値  2. 自由度 (df) と data の標本数の関係  自由度 (df) は、データの独立性に基づいて、統計量 (例: t検定量) の分布を決定するパラメータです。   計算式 df = n - k - 1  n: データの標本数  k: 回帰直線の次数 (線形回帰の場合、k = 1)  3. t 検定量の計算  t検定量は、回帰直線と任意の(x1, y1)が予測曲線上にあるかどうかを検定するために用いられます。   計算式 t = (y1 - ŷ1) / √(SSE / df) y1: 任意の点のy座標 ŷ1: 回帰直線による予測値 Welchの補正 (等分散性の仮定が成立していない場合) t = (y1 - ŷ1) / √(SSE / df * (1 / n + (x1 - x̄)^2 / Σ(xi - x̄)^2)) y1: 任意の点のy座標 ŷ: 回帰直線による予測値 SSE: 残差平方和 df: 自由度 n: データの標本数 x1: 任意の点のx座標 x̄: データのx座標の平均 Σ(xi - x̄)^2: データのx座標の偏差の二乗和 4. Julia のコード ------- using Distributions, DataFrames, GLM # データの準備 x = [1.2, 2.1, 3.0, 4.1, 5.2] y = [2.1, 4/2, 6.3, 8.5, 10.1] dat...

julia で Microsoft Excel の xlsx 形式のファイルをダウンロードして dataframe で読み込む方法

わが国のお役所が大好きな xlsx 形式のファイルをダウンロードして、dataframe で読み込む方法です。 年度が代ったためか、CSV 形式でダウンロードができなくなったため、MS Excel のxlsx 形式で落してくる必要が生じました。 julia で xlsx 形式を扱う場合は、XLSX.jl を使うのが良さそうです。 残念ながら、XLSX.jl を使ってインタネット上のファイルをそのまま HTTP.get() で読めなかったため、HTTP.download() で保存してから読み込みます。 お役所のファイルは表題が A1 などに入って、さらに B2 以降などでセルが結合されて列名が階層化されていたりします。 XLSX.jl では、で丸ごと読んでくれますが、これを DataFrame にするには範囲の指定が必要です。 1回だけなら手書きでも良いですが、末尾のセル名が必要になるかもしれません。 XLSX.jl では、`[B3:end]` のような `end` 表記などは許してくれません。 正確なデータ範囲を知っている必要があります。 そこで、1回、xlsx ファイル全体を `[:]` で Matrix に変換してしまいましょう。 Matrix になっていれば、[3:end , 2:end] のように指定できるようになります。 恐らく、多くの DataFrames.jl 使いの方は、Matrix を挟む方が操作性が良いと考えます。 ダウンロード元と保存先、xlsx ファイルの構造などは下記のとおりとします。 downloadUrl : ダウンロードしたいファイルの url (string) localOutputFileName : ローカルに保存したいファイル名のパス (string) "Sheet1" : ダウンロードした xlsx ファイルの読み込みたいシートの名前 "Sheet1"の構造と読み込みたい範囲 : A1 に 表題があり、A4 から下最後まで、横は AからE の5列が読み込み対象 julia> using HTTP, XLSX , DataFrames julia> HTT...

julia で、ファイルをダウンロードして名前を付けて保存する方法

julia で、ファイルをダウンロードして名前を付けて保存する方法ですが、なぜか HTTP.jl に記載されていない 'HTTP.download' というのを使うのが良さそうです。 下記のような場合の例を挙げます。 downloadUrl : ダウンロードしたいファイルの url (string) localOutputFileName : ローカルに保存したいファイル名のパス (string) julia> using HTTP julia> HTTP.download( downloadUrl , localOutputFileName ) 以上です。シェルコマンド wget などを使う方法もありますが、ネイティブな命令の方がなにかと便利でしょう。

sudachi 0.6 を julia から動かしてみた。

「SudachiPy 0.5.4より早い」と言われる Sucachi 0.6 を PyCall 経由で julia から動かしてみました。 例によって与謝野晶子さん訳「源氏物語」の「桐壺」を青空文庫から落して丸ごと入れてみます。 例によってとは、2020年3月に行った sudachiPy を、python から使うのと、PyCall 経由の julia で使うのはどちらが早いのか と同じ処理です。2020年3月の sudachi は version を、書いてなかったので不明です。ターミナルからの操作でダウンロードとエンコーディングの変換を行います。MacBook Pro (Retina, 13-inch, Early 2015; 2.9 GHz デュアルコアIntel Core i5; メモリ 16 G) で測定しています。 [ターミナル] % wget https://www.aozora.gr.jp/cards/000052/files/5016_ruby_9746.zip % unzip 5016_ruby_9746.zip % nkf -Lu -w --overwrite 01kiritsubo.txt; 続いて julia からの操作です。生のまま読ませたら `Input is too long, it can't be more than 49149 bytes, was 53316` と怒られましたので、ルビを取り除いています。 julia> using PyCall, Dates julia> sudachipy = pyimport("sudachipy"); julia> dictionary = pyimport("sudachipy.dictionary"); julia> tokenizer = pyimport("sudachipy.tokenizer"); julia> tokenizer_obj = dictionary.Dictionary().create(); julia> mode = tokenizer.Tokenizer.SplitM...

python の pip を version を指定して(再) インストールする方法

"pip._vendor.pkg_resources.DistributionNotFound: The 'pip==x.y.z' distribution was not found and is required by the application " (x,y,zは自然数の文字列) の様なエラーが出た場合は、pip の version を指定してインストールすると良いかもしれません。 python の pip を version x.y.z (x,y,zは自然数の文字列) を(再)インストールしたい場合は、下記のようにします。 $ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py $ python get-pip.py pip==x.y.x 以上です。