我正在尝试理解 R 中的回归。我正在尝试解决一个包含 100 个随机男女数据集的练习,如下所示:
sex sbp bmi
male 130 40.0
female 126 29.0
female 115 25.0
male 120 33.0
female 128 34.0
...
我想要得到一个数值摘要 (0),绘制 sbp 和 bmi (1) 之间的关系,并使用 R^2 (2) 估计 beta1、beta2 和 sigma 参数。然后,检查模型的良好性 (3) 并获取置信区间 (4)..
我认为性别是一个分类变量,所以这是我的代码:
as.numeric(framingham$sex) - 1
apply(framingham, 2, class)
#0
framingham$sex <- factor (framingham$sex)
levels (framingham$sex) <- c("female", "male")
resultadoNumerico <- compareGroups(~., data = framingham)
resumenNumerico <- createTable(resultadoNumerico)
resumenNumerico
# 1
framinghamMatrix <- data.matrix(framingham)
pairs(framinghamMatrix)
cor(framinghamMatrix)
#2
regre <- lm(sbp ~ bmi+sex, data = framingham)
regreSum <- summary(regre)
regreSum
# Sigma
regreSum$sigma
# Betas
regreSum$coefficients
#3
plot(framingham$bmi, framingham$sbp, xlab = "SBP", ylab = "BMI")
abline (regre)
但我认为我做得不对...你能帮助我吗?预先感谢...
要检查变量之间的关系,请尝试使用 psych 库中名为pairs.panels 的绘图。它给出了分布、散点图和相关系数。
library(psych)
pairs.panels(framingham)
这里的性别变量是分类变量,因此将其转换为因子,然后作为线性回归模型的输入。按字母顺序排列,因子中的第一个水平成为您的参考水平,因此在模型摘要中您只能看到参考水平以外的水平(在这种情况下,女性是基础参考水平)
framingham$sex<-as.factor(framingham$sex)
现在创建您的线性模型。
model <- lm(sbp ~ bmi+sex, data = framingham)
model
summary(model)
摘要给出了系数、截距、标准误差(95% 置信度)、t 值和 p 值(表明变量的显着性)、多重 R 平方(拟合优度)、调整 R 平方(拟合优度)根据模型复杂度调整拟合)等
我为分类变量设置了 sex-1:
regre <- lm(sbp ~ bmi+sex***-1***, data = framingham)
regreSum <- summary(regre)
regreSum
现在我得到了
Call:
lm(formula = sbp ~ bmi + sex - 1, data = framingham)
Residuals:
Min 1Q Median 3Q Max
-28.684 -13.025 -1.314 8.711 73.476
Coefficients:
Estimate Std. Error t value Pr(>|t|)
bmi 1.9338 0.3965 4.877 4.21e-06 ***
sexhombre 79.0624 11.0716 7.141 1.71e-10 ***
sexmujer 82.1020 10.5184 7.806 6.93e-12 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 18.48 on 97 degrees of freedom
Multiple R-squared: 0.9813, Adjusted R-squared: 0.9808
F-statistic: 1700 on 3 and 97 DF, p-value: < 2.2e-16
也许我走的路是对的?