rstudio
options
- らしい
scr
scr2
1+1
## [1] 2
x<- 1 + 1
x
## [1] 2
x * 10
## [1] 20
x ^ 2
## [1] 4
sqrt( x )
## [1] 1.414214
y <- x ^ 2
z <- x * 10
sum( y , z )
## [1] 24
dat = read.csv("dataset.csv", na.strings = ".", head=T, row.names=1)
summary(dat)
## class grade sex zikokaizi1
## Min. : 1.00 Min. :1.000 Min. :0.0000 Min. :-1.025
## 1st Qu.:12.00 1st Qu.:1.000 1st Qu.:0.0000 1st Qu.: 2.207
## Median :23.00 Median :2.000 Median :1.0000 Median : 3.125
## Mean :23.16 Mean :2.019 Mean :0.5503 Mean : 3.101
## 3rd Qu.:35.00 3rd Qu.:3.000 3rd Qu.:1.0000 3rd Qu.: 3.937
## Max. :46.00 Max. :3.000 Max. :1.0000 Max. : 7.573
## NA's :5
## zikokaizi2 zikokaizi3 igokochi1 igokochi2
## Min. :-0.5137 Min. :-0.7089 Min. :-0.1827 Min. :-0.5368
## 1st Qu.: 2.5293 1st Qu.: 2.3409 1st Qu.: 2.9950 1st Qu.: 2.6355
## Median : 3.4322 Median : 3.2326 Median : 3.6417 Median : 3.4315
## Mean : 3.4002 Mean : 3.2021 Mean : 3.6664 Mean : 3.4255
## 3rd Qu.: 4.2295 3rd Qu.: 4.0573 3rd Qu.: 4.3452 3rd Qu.: 4.2637
## Max. : 8.1928 Max. : 7.3596 Max. : 6.9891 Max. : 7.0810
## NA's :2 NA's :1
## igokochi3 igokochi4 igokochi5
## Min. :0.531 Min. :-0.1365 Min. :-0.07205
## 1st Qu.:3.324 1st Qu.: 3.0179 1st Qu.: 2.85282
## Median :4.013 Median : 3.8398 Median : 3.64251
## Mean :3.994 Mean : 3.7679 Mean : 3.60712
## 3rd Qu.:4.679 3rd Qu.: 4.5045 3rd Qu.: 4.32881
## Max. :7.442 Max. : 7.3863 Max. : 6.76755
## NA's :2 NA's :1 NA's :1
table(dat$sex, dat$grade)
##
## 1 2 3
## 0 199 211 225
## 1 258 258 261
dat$sex2<-factor(dat$sex, labels=list("boy", "girl"))
dat$grade2<-factor(dat$grade, labels=list("1st", "2nd", "3rd"))
table(dat$sex2, dat$grade2)
##
## 1st 2nd 3rd
## boy 199 211 225
## girl 258 258 261
dat$zikokaizi<- (dat$zikokaizi1+dat$zikokaizi2+
dat$zikokaizi3)/3
dat$igokochi<- (dat$igokochi1+dat$igokochi2+dat$igokochi3+
dat$igokochi4+dat$igokochi5)/5
dat$zikokaizi<- apply ( dat [ , 4 : 6 ], 1 ,mean, na.rm = TRUE )
dat$igokochi<- apply ( dat [ , 7 : 11 ], 1, mean, na.rm = TRUE )
san <- subset(dat, grade2=="3rd")
head(san)
## class grade sex zikokaizi1 zikokaizi2 zikokaizi3 igokochi1 igokochi2
## 306 11 3 0 2.426850 2.289442 3.809834 3.558017 2.318262
## 307 11 3 0 3.084496 5.212387 4.056563 3.239719 4.375513
## 308 11 3 0 3.293465 2.332457 3.097077 3.466792 2.435147
## 309 11 3 0 2.868459 3.383862 3.175218 4.128947 3.252894
## 310 11 3 1 4.194919 4.163725 4.478951 4.781364 4.686919
## 311 11 3 0 1.308495 1.087232 2.546142 1.131737 2.416010
## igokochi3 igokochi4 igokochi5 sex2 grade2 zikokaizi igokochi
## 306 3.444321 2.933151 2.458916 boy 3rd 2.842042 2.942533
## 307 3.664370 4.941441 4.357842 boy 3rd 4.117815 4.115777
## 308 3.976130 2.908981 3.968420 boy 3rd 2.907666 3.351094
## 309 5.032416 3.685323 4.416290 boy 3rd 3.142513 4.103174
## 310 5.617944 3.198245 3.760299 girl 3rd 4.279199 4.408954
## 311 3.297775 1.422641 1.933586 boy 3rd 1.647290 2.040350
dat2<- dat[,c("class", "grade2", "sex2", "zikokaizi", "igokochi")]
dat3 <- subset(dat, select=c(class, grade2, sex2, zikokaizi, igokochi))
write.csv(dat2, "dataset2.csv", row.names=F)
hist(dat2$igokochi)
bar <- tapply(dat2$igokochi, dat2$sex2, mean, na.rm=T)
barplot(bar)
plot(dat2$zikokaizi, dat2$igokochi)
library(ggplot2)
ggplot(dat2, aes(x = igokochi))+
geom_histogram(na.rm=T, bins=30)
ggplot(dat2, aes(x = igokochi, y=..density..))+
geom_histogram(fill="white", colour="black", na.rm=T, bins=30)+
geom_density(na.rm=T)
ggplot(dat2, aes(x = igokochi, fill=grade2))+
geom_histogram(bins=20, na.rm=T)
ggplot(dat2, aes(x = igokochi, fill=grade2))+
geom_histogram(bins=20, position = "identity", na.rm=T, alpha = 0.7)
ggplot(dat2, aes(x = grade2,y = igokochi))+
geom_bar(stat="identity",position = "dodge", na.rm=T)
ggplot(dat2, aes(x = grade2,y = igokochi, fill=sex2))+
geom_bar(stat="identity",position = "dodge", na.rm=T)
ggplot(dat2, aes(x = grade2,y = igokochi, fill=sex2))+
geom_bar(stat="identity",position = "dodge", na.rm=T)+
scale_fill_discrete(na.translate = F)
ggplot(dat2, aes(x = grade2,y = igokochi, fill=sex2))+
geom_bar(stat="identity",position = "dodge", na.rm=T)+
scale_fill_discrete(na.translate = F)+
labs(x="学年", y="居心地の良さの感覚", fill="性別")
ggplot(dat2, aes(x=zikokaizi, y=igokochi))+
geom_point(na.rm=T)
ggplot( dat2, aes (x = zikokaizi, y = igokochi ) )+
geom_point( aes ( colour = sex2 ), na.rm=T ) +
stat_smooth( method ="lm", na.rm=T )
ggplot( dat2, aes (x = zikokaizi, y = igokochi ) )+
geom_point( aes ( colour = grade2 ), na.rm=T ) +
stat_smooth( method ="lm", na.rm=T )
cor.test( dat2$zikokaiz , dat2$igokochi )
##
## Pearson's product-moment correlation
##
## data: dat2$zikokaiz and dat2$igokochi
## t = 36.452, df = 1415, p-value < 2.2e-16
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## 0.6680392 0.7218218
## sample estimates:
## cor
## 0.695905
library(psych)
cordat <- data.frame(dat$sex,dat$igokochi, dat$zikokaizi)
corr.test(cordat)
## Call:corr.test(x = cordat)
## Correlation matrix
## dat.sex dat.igokochi dat.zikokaizi
## dat.sex 1.00 0.04 0.04
## dat.igokochi 0.04 1.00 0.70
## dat.zikokaizi 0.04 0.70 1.00
## Sample Size
## dat.sex dat.igokochi dat.zikokaizi
## dat.sex 1412 1412 1412
## dat.igokochi 1412 1417 1417
## dat.zikokaizi 1412 1417 1417
## Probability values (Entries above the diagonal are adjusted for multiple tests.)
## dat.sex dat.igokochi dat.zikokaizi
## dat.sex 0.00 0.22 0.22
## dat.igokochi 0.13 0.00 0.00
## dat.zikokaizi 0.11 0.00 0.00
##
## To see confidence intervals of the correlations, print with the short=FALSE option
library(GGally)
ggpairs(na.omit( dat2[ , 3 : 5 ] ), aes_string( colour = "sex2", alpha = 0.5 ) )
library(GGally)
ggpairs(na.omit( dat2[ , 3 : 5 ] ), aes_string( colour = "sex2", alpha = 0.5 ) )
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
t.test( dat2$igokochi~ dat2$sex2 )
##
## Welch Two Sample t-test
##
## data: dat2$igokochi by dat2$sex2
## t = -1.5251, df = 1349.4, p-value = 0.1275
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -0.17481276 0.02188864
## sample estimates:
## mean in group boy mean in group girl
## 3.651579 3.728041
daihiko_t<-function(x,y,paired=TRUE) {
if (paired) {
d<-data.frame(x,y)
d<-subset(d,complete.cases(d))
rt<-t.test(d$x,d$y,paired=TRUE)
rsd<-c(sd(d$x,na.rm=T),sd(d$y,na.rm=T))
cohend<-abs(mean(d$x-d$y)/(sd(d$x-d$y)/sqrt(2*(1-cor(d$x,d$y)))))
return(list(meanx=mean(d$x),meany=mean(d$y),SD=rsd,t=rt,cohend=cohend))
}
else {
rt<-t.test(x~y)
rsd<-tapply(x,y,sd,na.rm=TRUE)
rt1<-table(y,x)
rt2<-apply(rt1,1,sum)
cohend<-(rt$estimate[1]-rt$estimate[2])/sqrt(((rt2[1]-1)*rsd[1]^2+(rt2[2]-1)*rsd[2]^2)/(rt2[1]+rt2[2]-2))
cohend<-unname(cohend)
return(list(N=rt2,SD=rsd,t=rt,cohend=cohend))
}
}
result1<- lm( igokochi ~ sex2 + grade2 + zikokaizi, dat2 )
summary(result1)
##
## Call:
## lm(formula = igokochi ~ sex2 + grade2 + zikokaizi, data = dat2)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2.00520 -0.45220 -0.01092 0.44681 2.31704
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.77400 0.06391 27.756 <2e-16 ***
## sex2girl 0.02030 0.03611 0.562 0.574
## grade22nd 0.02644 0.04432 0.597 0.551
## grade23rd -0.03735 0.04396 -0.850 0.396
## zikokaizi 0.59114 0.01632 36.215 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.6743 on 1407 degrees of freedom
## (5 observations deleted due to missingness)
## Multiple R-squared: 0.4833, Adjusted R-squared: 0.4819
## F-statistic: 329.1 on 4 and 1407 DF, p-value: < 2.2e-16
library(betas)
betas.lm(result1)
## beta se.beta
## sex2girl 0.01078395 0.01918542
## grade22nd 0.01330044 0.02229397
## grade23rd -0.01895142 0.02230322
## zikokaizi 0.69495665 0.01918961
dat2$zikokaizi_m <- tapply( dat2$zikokaizi,
dat2$class, mean, na.rm=T )[ as.character( dat2$class ) ]
dat2$zikokaizi_sd <- tapply( dat2$zikokaizi,
dat2$class, sd, na.rm=T )[ as.character( dat2$class ) ]
dat2$zikokaizi_i <- dat2$zikokaizi - dat2$zikokaizi_m
dat2$zikokaizi_mc <- dat2$zikokaizi_m - mean( dat2$zikokaizi_m, na.rm=T )
dat2$zikokaizi_sdc <- dat2$zikokaizi_sd - mean( dat2$zikokaizi_sd, na.rm=T )
library(lmerTest)
result2 <- lmer( igokochi ~ sex2 + grade2+
zikokaizi_i*zikokaizi_mc +
zikokaizi_sdc +
( zikokaizi_i|class )
, REML = F, data = dat2 )
summary(result2)
## Linear mixed model fit by maximum likelihood . t-tests use
## Satterthwaite's method [lmerModLmerTest]
## Formula:
## igokochi ~ sex2 + grade2 + zikokaizi_i * zikokaizi_mc + zikokaizi_sdc +
## (zikokaizi_i | class)
## Data: dat2
##
## AIC BIC logLik deviance df.resid
## 2906.9 2969.9 -1441.4 2882.9 1400
##
## Scaled residuals:
## Min 1Q Median 3Q Max
## -2.9573 -0.6622 -0.0097 0.6655 3.4932
##
## Random effects:
## Groups Name Variance Std.Dev. Corr
## class (Intercept) 0.001049 0.03239
## zikokaizi_i 0.005682 0.07538 -1.00
## Residual 0.444856 0.66698
## Number of obs: 1412, groups: class, 46
##
## Fixed effects:
## Estimate Std. Error df t value Pr(>|t|)
## (Intercept) 3.68498 0.03839 521.15488 95.995 < 2e-16
## sex2girl 0.02220 0.03584 1393.15021 0.619 0.536
## grade22nd 0.02628 0.04523 374.05749 0.581 0.562
## grade23rd -0.03696 0.04691 356.57693 -0.788 0.431
## zikokaizi_i 0.58867 0.01992 50.80338 29.556 < 2e-16
## zikokaizi_mc 0.64014 0.09615 201.21679 6.658 2.59e-10
## zikokaizi_sdc 0.02652 0.15386 330.36663 0.172 0.863
## zikokaizi_i:zikokaizi_mc 0.07145 0.10264 50.21259 0.696 0.490
##
## (Intercept) ***
## sex2girl
## grade22nd
## grade23rd
## zikokaizi_i ***
## zikokaizi_mc ***
## zikokaizi_sdc
## zikokaizi_i:zikokaizi_mc
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Correlation of Fixed Effects:
## (Intr) sx2grl grd22n grd23r zikkz_ zkkz_m zkkz_s
## sex2girl -0.525
## grade22nd -0.609 0.009
## grade23rd -0.627 0.018 0.508
## zikokaizi_i -0.047 -0.037 -0.004 -0.005
## zikokaiz_mc 0.037 -0.001 0.042 -0.124 -0.002
## zikokaz_sdc -0.160 -0.009 0.115 0.289 -0.021 -0.009
## zkkz_:zkkz_ -0.004 0.010 -0.002 -0.002 0.011 -0.143 -0.002
## convergence code: 0
## singular fit