ä»åã®Rã«é¢ããè¨äºã¯ãã¸ã¡ã§ããå½¹ã«ç«ã¤äººã«ã¯å¤å°ã¯å½¹ã«ç«ã¤ããããã¾ããã
Rã®ããã©ã«ãé¢æ°ã§ãæ¨æºåå帰ä¿æ°ãåºåãã¦ããããã®ã¯ãªãããã
ç¬ç«å¤æ°ããã¹ã¦éçå¤æ°ãªããã¨ãã°ãscale() ãªã©ãä»ããã¨ã§ç°¡åã«è¨ç®ã§ãã¾ãã
ãããåé¡ã«ãªãã®ã¯ãå義尺度ãªã©ã®å¤æ°ã§ããRã® lm(), glm() ã§ã¯å義尺度ãå«ã¾ãã¦ããå ´åãèªåçã«ããã¼å¤æ°åãã¦è¨ç®ãã¦ããã¾ãããæ¨æºåå帰ä¿æ°ãè¨ç®ããããã§ã¯åé¡ãèµ·ããã¾ãã
ãã¨ãã°ãæ¨æºåå帰ä¿æ°ãåºåããã¨ããã lm.beta()é¢æ°ã {QuantPsyc}ããã±ã¼ã¸ã«ããã¾ãã*1ãåã®ç解ãééã£ã¦ããªããã°ãããã°ã©ã ã«ãã¹ãããã¾ãããããå義尺度ãå«ã¾ããå帰åæã«é©ç¨ããã¨ãããããè¨ç®ããããããªãã¯ãï¼çç±ã¯å¾è¿°ï¼ã
lm.Beta()
ã¨ã¾ãä¿®æ£çãã¤ãã£ã¦ã¿ã¾ããã
lm.Beta <- function(res){ b <- res$coefficients #éæ¨æºåå帰ä¿æ° ysd <- sd(res$model[,1]) #çµæå¤æ°ã®SD idv <- res$model[,-1] if( class(idv) == "data.frame"){ N <- ncol(idv) }else{ N <- 1} res.beta <- b[-1] for(j in 1 : N ){ if( N > 1){xxx <- idv[,j] }else{xxx <- idv} if( class(xxx)!= "numeric"){ #ããæ°å¤ãããªããã°ä»¥ä¸ããã¾ã for(i in 2:length(levels(xxx)) ){ dummy <- as.numeric(xxx == levels(xxx)[i]) # 1/0 ã®å¤æ°å lab <- paste(colnames(idv)[j],levels(xxx)[i],sep="") #対象ã®å¤æ° beta <- b[lab] * ( sd(dummy) / ysd ) #ãã¼ã¿ã®è¨ç®æ¹æ³ï¼2å¤æ°ã®SDã®åã«å帰ä¿æ°ãããã res.beta[lab] <- beta } }else{ #æ°å¤ã ã£ããç°¡åã«Î²ãè¨ç®ã§ãã lab <- paste(colnames(idv)[j],sep="") #対象ã®å¤æ° beta <- b[lab] * ( sd(xxx) / ysd ) res.beta[lab] <- beta } } res.beta }
使ãæ¹
lm <- (y ~ x1 + x2 + ...) ã®çµæã lm.Beta() ã®ä¸ã«å
¥ãã¦ãã ããã
使ç¨ä¾
> #### y = x + z ... ã®éå帰åæ > y <- c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) > x <- c(2, 1, 4, 3, 6, 5, 8, 7, 10, 9) > z <- factor(c("A","A","B","B","B","B","C","C","C","C")) > > #y, x, z ãããããã¹ã±ã¼ã« > Y <- scale(y) > X <- scale(x) > Z.B <- scale(as.numeric(z=="B")) > Z.C <- scale(as.numeric(z=="C")) > > #ãµã¤ãã®éå帰 > res <- lm(y ~ x + z) > #ã¹ã±ã¼ã«åããéå帰 > res.scale <- lm(Y ~ X + Z.B + Z.C) > > res Call: lm(formula = y ~ x + z) Coefficients: (Intercept) x zB zC 0.7143 0.5238 1.4286 3.3333 > #lm.Beta()ãã¤ãã£ã¦æ¨æºåå帰ä¿æ° > lm.Beta(res) x zB zC 0.5238095 0.2436580 0.5685352 > > #ã¹ã±ã¼ã«åãããã¼ã¿ã®å帰ä¿æ° > res.scale$coef[2:4] X Z.B Z.C 0.5238095 0.2436580 0.5685352
æå¾ã®æ°è¡ã«æ³¨ç®ã
lm.Beta()ã«ããä¿æ°ã¨ãã¹ã±ã¼ã«åãããã¼ã¿ã®å帰ä¿æ°ãä¸è´ãã¦ãããã¨ããããã¾ãã
lm.beta() ãééãå ´åãããã¯ã±
çµè«ããããã°ãå義尺度ã®å¤æ°ã sd() é¢æ°ã«ç´æ¥ã¶ã¡è¾¼ãã§ããã¨ããã
sd() é¢æ°ã¯ãè¦ãç®ããããããã¨ããæ¨æºåå·®ãåºåããé¢æ°ã§ãããå義尺度ï¼factorå½¢å¼ï¼ãå ¥ããã¨åæã«æ°å¤ã«èªã¿æ¿ãã¦ãã¾ãã¾ãã
ãã¨ãã°ããï¼ãï¼ãï¼ãï¼ã ã¨ãã5æ°´æºã®å¤æ°ãã以ä¸ã®ããã«
> aiueo <- factor(c("ã","ã","ã","ã","ã")) > sd(aiueo) [1] 1.581139
ãªããè¨ç®ã§ãã¦ãã¾ãã¾ãã
ãã®çç±ãsd()é¢æ°ã®ä¸èº«ãè¦ã¦ããããã°è©±ã¯æ©ããã§ãããsd()é¢æ°ã¯ãå義尺度ãããã¨ããèªåçã« 1, 2, ..., n ã¨ããããã«çªå·ãæ¯ã£ã¦ããããè¨ç®ãã¦ãã¾ãããã§ãã以ä¸ããã®ã¤ã¡ã¼ã¸
> hoge <- c(1,2,3,4,5) > sd(hoge) [1] 1.581139
SPSSã§ã¯ã©ãè¨ç®ãã¦ãããæãã¦ãã ãã
ã¡ãªã¿ã«ãã£ããæ°ã«ãªãã®ã¯ãSPSSããããã©ãè¨ç®ãã¦ããã®ãã¨ããç¹ã§ãã
ç§ã¯SPSSãæã£ã¦ããªãã®ã§ãä¸è¨ã®è¨ç®çµæãä¸è´ãããã©ãããããã¾ããã
ã©ãªããåªããæ¹ã試ãã¦ã¯ãããã¾ããã§ããããããããããé¡ããããã¾ãã
åå¤æ°ã¯ãããªæãã§ãã
- Y
- 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
- x
- 2, 1, 4, 3, 6, 5, 8, 7, 10, 9
- z
- A, A, B, B, B, B, C, C, C, C