【R】相関解析の結果をCSVに出力する【特にcorr.test】

R

✅疑問

・Rの相関解析の結果をCSVに落とす方法が知りたい

・特に「psych」パッケージの「corr.test」の結果をどのようにCSV形式にするのか知りたい

このような疑問に答えます。

僕は医療職として働きながら大学院に通い4年目です。
解析ツールにSPSSやRを用いて学会発表や論文投稿を行ってきました。
そんな僕が答えます。

以前も記事に書きましたがRでの論文投稿を考えると相関解析にはcorr.test一択だと思っています。相関係数を出せるのはもちろんのこと、同時にp値の検定ができ、検定の多重性の調整まで行ってくれるからです。
本日はRでの相関解析の結果をCSVに出力する方法について、特にcorr.tastに注目して行います。

corr.testの使用方法についておさらい

以前の記事にも詳しく書いていますが再度corr.testの使用法についておさらいします。
Rを使った相関解析の方法【これを見れば大体できる】

まずは本日もデモデータを用いて解析していきます。
デモデータはこちらです。

欠損値も作ってあります、黄色の部分です。
このデモデータで、1列目の「no」を除いた2列目~9列目の相関をcorr.testで求めます。

1行目:デモデータの読み込み。「data」という名前で読み込みます。「read.csv」関数を使います。関連記事Rにexcelで作ったファイルを読み込む方法【CSV形式で読み込みましょう】

2行目:psychパッケージの読み込み。「library」関数を使います。
※一番最初はインストールが必要です。先ほどリンクした記事を参考にしてください。

3行目:解析したい「data」の2列目~9列目だけを「df」という名前で保存。行は指定せず全て選択しています。

4行目:「corr.test」を実施。「p」という名前で保存しています。

corr.test (解析したいデータ, method=”〇〇”,  use=”〇〇”, adjust=”〇〇”)

MethodはデフォルトはPearsonの相関係数(パラメトリック)ですので何も記載しなければPearsonになります。

useは欠損値があった場合にデフォルトでペアワイズ(欠損部分を除去した解析)法となります。

adjustは検定の多重性を調節する方法でbonferroniだけでなくfdr (false discovery rate), holm法など様々な方法が使用できます。

結果です。

↑相関係数です。

↑調整済のp値です。

corr.testの結果をCSVファイルに出力する方法【names関数を使う】

ではこの結果をCSVファイルに投入していきます。
corr.testの結果は「p」とい名前で保存していますが、
write.csv関数では読み込めません(pがシート形式?というそのままでは読み込めない形式になっているからです)

names関数を使って行列の形にする

そこで「names」関数を使います。
複数の要素で構成されていた「corr.test」の結果を上の様に要素に分解します。

names (解析で使用したcorr.testのコードを全て貼り付け)

とすると写真のようにいろいろな要素に分解できます。corr.testで求めた「p」は多くの要素で成っていたのですね。

主な略語は以下です。

“r” 相関係数
“n” 解析した数
“t” t testのt値
“p” t testのp値
“se” standard error 相関の標準偏差
“adjust” 多重性の調整方法
“ci” 信頼区間

それでは今回はr値(相関係数)とp値をCSVにしてみます。

names関数を用いてcorr.testのr値一覧をCSVに出力する

ではcorr.testの結果から「r値」だけを抜き出すにはどうすればよいでしょうか。
(僕が何回もコピーしてエクセルに貼り付けようとしましたがダメでした。)

ここで「$」を使います。
「$」を使うことで特定の要素を呼び出すことができます。

「x」という名前でcorr.testのr値の部分を保存します。
一番右端に「$r」とありますよね。これでr値だけを呼び出すことができます。「$p」でp値だけを抜き出すことができます。
この状態になったら初めて「write.csv」関数でCSV形式に抜き出すことができます。

「write.csv関数」は write.csv (読み込みたい結果, file=〇〇 )でした。
〇〇はCSVファイルにつけたい名前です。

今回はそのまま「x」という名前でCSV形式に落としたいと思います。ファイル名に「.csv」をつけ忘れないようにしましょう。
僕も何度も忘れ、後で開けなくて途方に暮れてます。
CSVファイルは作業中のディレクトリに保存されています。

こんな感じで、相関係数の一覧が出力できました。

names関数を用いてcorr.testのp値一覧をCSVに出力する

同様の手順でp値をCSVに出力します。
p値はCSVにした後の読み方に若干の決まりごとがあります。

先ほどと同様の手順で、corr.testのp値だけを抜き出します。一番右の$pがp値だけを抜き出す意味です。
先ほどと同様、「write.csv関数」でCSVファイルへ保存します。

こんな感じです。
p値は下半分の三角と上半分の値が違いますよね。
下半分が未調整の値
上半分が調整済みの値です。

p値が「1」ということは帰無仮説「2つの変数に差はない」が100%という意味です。

これでRを用いた相関解析結果をCSVファイルに出力できました。

論文化する場合は「FDR」False Discovery Rateで調整できるので助かります。
SPSSだとBonferroniかHolmしかなく、調整が厳格すぎるかもしれません。

本日の記事は以上となります。
これからも有益な記事を書いていきます。
よろしくお願いします。

タイトルとURLをコピーしました