文章引用 Linear models and linear mixed effects models in R with linguistic applications
https://doi.org/10.48550/arXiv.1308.5499 |
Part 1: Linear modeling(线性模型)
探究性别对音高的影响
性别是自变量/解释变量/固定效应(fixed effect) 下文均用固定效应表示自变量
1.先创建关于性别和音高的数据框
pitch <- c(233,204,242,130,112,142)
sex <- c(rep("female",3),rep("male",3))
my_df <- data.frame(sex,pitch)
my_df
结果为
> my_df
sex pitch
1 female 233
2 female 204
3 female 242
4 male 130
5 male 112
6 male 142
2.用lm()函数构建性别和音高之间的线性回归模型
xmdl <- lm(pitch~sex,my_df)
summary(xmdl)
summary() 输出整理好的结果
结果为
Call:
lm(formula = pitch ~ sex, data = my_df)
Residuals:
1 2 3 4 5 6
6.667 -22.333 15.667 2.000 -16.000 14.000
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 226.33 10.18 22.224 2.43e-05
sexmale -98.33 14.40 -6.827 0.00241
(Intercept) ***
sexmale **
---
Signif. codes:
0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 17.64 on 4 degrees of freedom
Multiple R-squared: 0.921, Adjusted R-squared: 0.9012
F-statistic: 46.61 on 1 and 4 DF, p-value: 0.002407
3.结果解释:
①R-squared
Multiple R-squared: 0.921 性别可以解释92.1%的音高变异
Adjusted R-squared(调整R方): 0.9012
固定效应增多的情况下(age, psychological traits, dialect etc), Adjusted R-squared可能会降低
一元线性回归,则使用 R-squared评估,多变量,则使用adjusted R-squared。
增加更多无意义的变量,则 R-squared 和adjusted R-squared之间的差距会越来越大,Adjusted R-squared会下降。但是如果加入的显著的变量,adjusted R-squared 也会上升。
②p_value
在单变量线性模型中 总模型的p_value=0.002407 与 Coefficients表中的p值相同
但在多变量线性模型中,总模型的p值与 Coefficients表中的p值不同,Coefficients表中的p值表示各个固定效应所对应的p值
③Coefficients表中sexmale 的原因
计算女性音高平均值和男性音高平均值
####计算female_mean和male_mean 的两种方法
filter() 用于筛选列 %>%管道符 Ctrl + Shift + M 快捷键产生
mean(my_df[my_df$sex=="female",]$pitch)
mean(my_df[my_df$sex=="male",]$pitch)
my_df %>% filter(sex=="female") %>%summarise(female_mean=mean(pitch))
my_df %>% filter(sex=="male") %>% summarise(male_mean=mean(pitch))
结果
female_mean
1 226.3333
male_mean
1 128
女性音高平均值-男性音高平均值=98.33
Coefficients表中Intercept(截距)的Estimate(估计值) 表示女性音高的平均值
sexmale 的Estimate(估计值)表示不同性别下音高的变化
4.线性回归满足的假设
(1) Linearity(线性关系假设)
检验方法:可视化预测值与残差之间的关系——随机
###探究年龄(连续变量)对音高的影响
age <- c(14,23,35,48,52,67)
pitch <- c(252,244,240,233,212,204)
my.df <- data.frame(age,pitch)
xmdl <- lm(pitch~age,my.df)
summary(xmdl)
###绘制预测值与残差的散点图
plot(fitted(xmdl