我试图理解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)
但我认为我不做对了......你能帮助我吗?提前谢谢......
答案 0 :(得分:0)
要检查变量之间的关系,请尝试从心理库中调用一对名为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平方(拟合优度调整为模型复杂度等等。
答案 1 :(得分:0)
我为分类变量做了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
也许我会以正确的方式前进?