区間高次元化回帰分析 のRによる実施例です。
この実施例は、
区間高次元化回帰分析
のページと、ほぼ同じ手順をRで実行しています。
Rによる一般化線形混合モデル にあるような一般化線形混合モデルや、交互作用モデルを使うと、コードはシンプルにする方法もあります。 しかし、この方法を使うと、xの元データの項がモデルに入って来て、係数の評価がわかりにくくなります。
library(MASS)
library(dummies)
setwd("C:/Rtest") # 作業用ディレクトリを変更
Data <- read.csv("Data.csv", header=T) # データを読み込み
Data1 <- Data
DataY <- Data
DataY$X <- NULL
Data1$Y <- NULL
DataX <- Data1
Data1[,1] <- droplevels(cut(Data1[,1], breaks = 3,include.lowest = TRUE))# 1列目の量的変数を1次元クラスタリングで3つカテゴリに分ける
Data2 <- dummy.data.frame(Data1)# ダミー変換
Data3 <-Data2*DataX[,1]# 交互作用項の作成
colnames(Data3)<-paste0("X:",colnames(Data3))# 変数名の修正
Data4 <-cbind(DataY,Data2,Data3)
gm <- step(glm(Y~., data=Data4, family= gaussian(link = "identity"))) # 重回帰分析
summary(gm) # 結果の出力
#ここから予測の手順
library(ggplot2)
s2 <- predict(gm,Data4)# 作業用ディレクトリを変更
Data4s2 <- cbind(Data4,s2)# データを読み込み
ggplot(Data4s2, aes(x=Y, y=s2)) + geom_point() + labs(x="Y",y="predicted Y")