2016-11-16 5 views
-2

Je suis en train de comprendre la régression dans R. Je suis en train de résoudre un wich d'exercice a un ensemble de données 100 hommes-femmes au hasard comme ceci:régression en R avec des variables

sex  sbp  bmi 
male  130  40.0 
female 126  29.0 
female 115  25.0 
male  120  33.0 
female 128  34.0 
... 

Je veux un résumé numérique (0) trace la relation entre sbp et bmi (1) et estime les paramètres beta1, beta2 et sigma avec R^2 (2). Ensuite, vérifiez la bonté du modèle (3) et obtenir les intervalles de confiance (4) ..

Je pense que le sexe est une variable, alors voici c'est mon code:

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) 

Mais je pense que je ne fais pas les choses correctement ... Pourriez-vous m'aider? Merci d'avance ...

+1

Je n'ai pas encore exécuté le code mais pourriez-vous dire pourquoi vous pensez que vous vous trompez? –

+0

Cause alors j'ai besoin de comparer les droites de régression des hommes et des femmes et le résumé du modèle n'en donne qu'un: Coefficients: Estimation Std. Erreur t valeur Pr (> | t |) (Interception) 79.0624 11.0716 7.141 1.71e-10 *** bmi 1.9338 0.3965 4.877 4.21e-06 *** sexfemale 3.0395 3.7731 0.806 0.422 –

+6

Vous obtenez seulement une estimation pour un niveau d'un facteur à 2 niveaux car l'autre niveau est le niveau de référence. Si vous aviez les deux, vous tomberiez dans le «piège à variables factices» et les résultats seraient insignifiants. http://www.algosome.com/articles/dummy-variable-trap-regression.html –

Répondre

0

Pour vérifier la relation entre les variables, essayez un graphique appelé paires.panels de la bibliothèque psych. Il donne les distributions, les diagrammes de dispersion et les coefficients de corrélation. La variable de sexe est ici catégorique, donc la convertir en facteur et fournir comme entrée à votre modèle de régression linéaire. Par ordre alphabétique le premier niveau du facteur devient votre niveau de référence et par conséquent dans le résumé du modèle, vous pouvez voir que des niveaux autres que le niveau de référence (dans cette femelle de cas est le niveau de -Référence de base)

framingham$sex<-as.factor(framingham$sex) 

Maintenant, créez votre modèle linéaire.

model <- lm(sbp ~ bmi+sex, data = framingham) 
model 
summary(model) 

Le résumé donne les coefficients, interception, erreur standard (95% de confiance), t-valeur et la valeur de p (qui indique l'importance des variables), plusieurs R-carré (qualité de l'ajustement), ajusté R-carré (qualité de l'ajustement adapté à la complexité modèle), etc.

+0

Oui mais alors ... comment puis-je comparer les lignes droites entre les mâles et les femelles? Et la prédiction? Et l'hypothèse opposée pour beta1 = 1.75? Je suis dans un désordre :( –

0

J'ai fait le sexe-1 pour la variable catégorique:

regre <- lm(sbp ~ bmi+sex***-1***, data = framingham) 
regreSum <- summary(regre) 
regreSum 

Et maintenant, j'obtiens

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 

Peut-être que je vais dans le bon sens?