R言語

R言語 解析結果を自動で色塗りできる関数【エクセル操作不要】

  1. HOME >
  2. R言語 >

R言語 解析結果を自動で色塗りできる関数【エクセル操作不要】

スポンサーリンク

こんにちは、usagi-sanです。

R言語で統計解析を行う際、検定結果がsummary(ans)の中にリストとして格納されているため、検定結果の操作が難しいと思う方が多いと思います。

また結果の表をcsvやexcelに出力できても、有意な変数がどれなのか分からない場合がほとんどです。

今回は、統計検定の結果についてのデータフレームを自動で色塗りする関数を作ってみました。

今回紹介する関数は次の記事のパッケージをインストールすることで利用可能です。また、スクリプトファイルをダウンロードしたい方は、この記事の下のダウンロードリンクからダウンロードしてください。

R言語 自作パッケージ UsagiSan

こんにちは、usagi-sanです。 R言語の自作パッケージを紹介します。 統計解析のアルバイトをしている中、暇な時間を見つけて自分でパッケージを作ってみました。 Rのパッケージには、統計解析用のパッ ...

続きを見る

自由なメモ

2020-7-28に関数を更新しました。関数のエラーの修正と有意水準の指定、また色塗りの実行時間を考慮し横のずれを修正する機能を無くすオプションも付けました。

2020-9-18にp値に対応する列名を任意に選択できるようにしました。また、各種不具合を修正しました。

自作色塗り関数の紹介

csvやexcelなどの検定結果のファイルをread.tableやread.csvでデータフレームに格納したあと、そのデータフレームを自動で色塗りするプログラムの概要を紹介します。

下のような検定結果のヘッダーと有意な説明変数を自動で色塗りするプログラムです。

色塗り後は次のようになります。

エクセル色塗り

例では、ロジスティック回帰の結果について色塗りをしています。

また、もちろん任意のデータの重回帰分析、ロジスティック回帰、Cox回帰などの様々な検定結果にも適用できます。

また上の画像のように複数の検定結果を一度に色塗りすることも可能です。

さらに上で示しているように、解析結果が横にずれていたり、異なる検定の解析結果を一度に色塗りしたい場合などでも有効です。

関数の使いかた

次に、関数の使いかたを説明をします。

関数のプログラミングコードとともに説明します。

excelColor

次のプログラミングコードは検定結果の色塗りに用います。

ヘッダーと有意水準以下の変数を色塗りしてくれます

関数excelColorの引数については以下の表にまとめました。上の画像のように検定結果を色塗りしたい場合はexcelColorを用います。

excelColorの引数
dataName統計解析の結果が含まれているファイル名(csvのファイルのみ)fontSizeフォントのサイズ
fileName色塗り後の解析結果のファイル名fontNameフォント名
significanceColor有意な変数の色fontColorフォントの色
excelHeadColorColor解析結果のヘッダーの色intercept切片パラメータの色を塗るかどうか(TUREの場合、色が塗られます)
leve色塗りをする有意水準の基準(level = 0.1だと0.1以下の変数が色塗りの対象となります。)adjTRUEの場合、検定結果の横のずれを修正する機能をもつ
pValue塗りたいp値の列の名前。初期値として、c("Pr(>|z|)", "Pr(>|t|)", "p-value")のベクトルをもつ。fileEncodingファイルエンコーディング。初期値は"CP932"である。

excelHeadColor

2つ目の関数として、ヘッダーのみを色塗りする関数excelHeadColorを紹介します。

こちらは検定結果ではなく、簡単な集計表のヘッダーの色塗りに用います

次のプログラミングコードが関数excelHeadColorとなります。

関数excelHeadColorの引数については以下の表にまとめました。

excelHeadColorの引数
dataName統計解析の結果が含まれているファイル名(csvのファイルのみ)fontSizeフォントのサイズ
fileName色塗り後の解析結果のファイル名fontNameフォント名
excelHeadColor色塗りするヘッダーに含まれる文字列(列名)fontColorフォントの色
excelHeadColorColor解析結果のヘッダーの色adjTRUEの場合、検定結果の横のずれを修正する機能をもつ
fileEncodingファイルエンコーディング。初期値は"CP932"。

 

関数の使用例

最後に使用例をプログラミングコードで紹介します。

excelColor

step
1
解析結果を用意する

最初に検定結果を色塗りする関数excelColorの使用例を重回帰分析を例に、見ていきます。

まず、下の重回帰分析の結果の表をcsvに出力する関数を読み込んでください。(.Rをダウンロードもできます。)

関数を読み込んだら、次のように引数を与えます。

すると下の画像の解析結果が重回帰分析.csvというファイルに出力されます。

重回帰

これで色塗りをする準備が整いました。また、下に検定結果の注意を記したので、実際に使うときは読んでください。

注意ポイント

excelColorに使用できる解析結果は上の画像のように、p値を指す列名(Pr(>|t|)やPr(>|z|)やp.valueなど)をもち、テーブルの左上が空白となっているものとなっています。

先ほど使用した関数reg_funの引数の説明を以下に記します。

回帰分析の結果をまとめたいときに使ってみてください。

data回帰分析を行うデータ(データフレーム)R重相関係数(TRUEとすると結果に出力される)
fileName解析結果を出力するcsvファイルの名前R2.adj自由度調整済み決定係数(TRUEとすると結果に出力される
dependentVariable目的変数の名前(指定しない場合1列目の名前が目的変数となる)R.adj自由度調整済み重相関係数(TRUEとすると結果に出力される)
level有意水準(指定しない場合0.05)N標本数(TRUEとすると結果に出力される)
ci回帰係数の信頼区間(TRUEとすると結果に出力される)dcml.plc出力結果の小数点以下の桁数
sigma残差の標準偏差(TRUEとすると結果に出力される)AIC赤池情報量基準、AIC(TRUEとすると結果に出力される)
df検定統計量の自由度(TRUEとすると結果に出力される)BICベイズ情報量基準、BIC(TRUEとすると結果に出力される)
R2決定係数(TRUEとすると結果に出力される)appendファイルのappend機能(TRUEとするとappendされる)

step
2
色塗りをしてみる

次に、この出力結果のデータフレームに対して、次を実行します。

関数excelColorはこの記事の下にあるダウンロードリンクから入手してください。

すると、先ほどの重回帰分析.csvの結果のヘッダーと有意な変数に色がついています。

検定結果が断然見やすくなったかと思います。

色塗り

また、検定結果が大量にあり実行時間が長いという方は、関数の引数のadjをadj=FALSEとしてください。

ポイント

引数adj検定がTUREの場合(デフォルトの場合)、結果のテーブルが横方向にずれている場合や異なる横の長さのテーブルに対して、補正し色塗りしてくれますが、FALSEの場合この機能がなくなります。

横のずれを補正する機能はなくなりますが、1時間ほどかかるものが20秒で終わります。

上で説明した通り、異なる横の長さの検定結果が1000~10000個格納されたcsvファイルに使用したい場合は、adjをFALSEにしても、うまく色塗りされないので注意してください。

excelHeadColor

step
1
解析結果を用意する

次にヘッダーを色塗りする関数excelHeadColorの使用例をデータirisを例に、見ていきます。

検定結果の色塗りとは違い、集計表などの検定結果以外の任意のテーブルのヘッダー(列名)を色塗りすることができます。

いまずデータirisを次のコードを実行することでcsvにファイルに保存します。

上を実行すると、作業ディレクトリ中に"iris.csv"というデータセットirisが入ったcsvファイルが保存されていることが分かります。

これで、色塗りする準備が整いました。次で、この"iris.csv"のヘッダーを色塗りしていきます。

注意ポイント

excelHeadColorに使用できるテーブルは次のステップの画像のように、長方形の形をしたテーブルや左上が空白のテーブルとなっています。

step
2
色塗りをしてみる

では、関数excelHeadColorを実行してみます。次のコードを実行してみましょう。

excelHeadColor色塗り

上の画像のようにデータirisのヘッダーに色が塗られていることが分かります。

エクセルの書式や色を変更したい場合、excelHeadColorで紹介した引数を変更してください。

ポイント

excelColorと同様に、引数adj検定がTUREの場合(デフォルトの場合)、結果のテーブルが横方向にずれている場合や異なる横の長さのテーブルに対して、補正し色塗りしてくれますが、FALSEの場合この機能がなくなります。

excelColorと同様に、テーブルが多い場合は、adjをFALSEにすると実行時間が改善します。

ダウンロード方法

関数excelColor、excelHeadColorのダウンロードリンクを以下に貼ります。上で紹介した重回帰分析の関数reg_funも入っています。

まだまだ不具合があると思うので、皆さんからのご意見をお待ちしております。

あと、この関数を含んだパッケージをGigHub上に公開したのでいずれ、その記事も書いていきます。

スポンサーリンク

  • この記事を書いた人
  • 最新記事

usagi-san

統計学とゲームとかをメインに解説していくよ。 数式とかプログラミングコードにミスがあったり質問があったりする場合はコメントで受け付けます。すぐに対応します。

-R言語
-, , ,