คำถามติดแท็ก repeated-measures

ข้อมูลการวัดซ้ำเกิดขึ้นเมื่อมีการรวบรวมการวัดมากกว่าหนึ่งรายการในหน่วยเดียวกัน (เช่นหัวเรื่อง) ใช้แท็กนี้สำหรับ RM-ANOVA พร้อมกับแท็ก [anova]

2
ความแปรปรวนร่วมในภาษาธรรมดาคืออะไร?
ความแปรปรวนในภาษาธรรมดาคืออะไรและวิธีการที่จะเชื่อมโยงกับเงื่อนไขการพึ่งพาอาศัยกัน , ความสัมพันธ์และโครงสร้างความแปรปรวนความแปรปรวนที่เกี่ยวกับการออกแบบซ้ำมาตรการ?

3
การแปลความหมายของตัวทำนายการแปลงสภาพบันทึกและ / หรือการตอบสนอง
ฉันสงสัยว่ามันจะสร้างความแตกต่างในการตีความไม่ว่าจะเป็นเพียงขึ้นอยู่กับทั้งขึ้นอยู่กับและเป็นอิสระหรือตัวแปรอิสระเท่านั้นที่ถูกเปลี่ยนเข้าสู่ระบบ พิจารณากรณีของ log(DV) = Intercept + B1*IV + Error ฉันสามารถตีความ IV เป็นเปอร์เซ็นต์เพิ่มขึ้น แต่จะเปลี่ยนแปลงได้อย่างไรเมื่อฉันมี log(DV) = Intercept + B1*log(IV) + Error หรือเมื่อฉันมี DV = Intercept + B1*log(IV) + Error ?
46 regression  data-transformation  interpretation  regression-coefficients  logarithm  r  dataset  stata  hypothesis-testing  contingency-tables  hypothesis-testing  statistical-significance  standard-deviation  unbiased-estimator  t-distribution  r  functional-data-analysis  maximum-likelihood  bootstrap  regression  change-point  regression  sas  hypothesis-testing  bayesian  randomness  predictive-models  nonparametric  terminology  parametric  correlation  effect-size  loess  mean  pdf  quantile-function  bioinformatics  regression  terminology  r-squared  pdf  maximum  multivariate-analysis  references  data-visualization  r  pca  r  mixed-model  lme4-nlme  distributions  probability  bayesian  prior  anova  chi-squared  binomial  generalized-linear-model  anova  repeated-measures  t-test  post-hoc  clustering  variance  probability  hypothesis-testing  references  binomial  profile-likelihood  self-study  excel  data-transformation  skewness  distributions  statistical-significance  econometrics  spatial  r  regression  anova  spss  linear-model 

2
การใช้ lmer สำหรับวัดซ้ำโมเดลเอฟเฟกต์เชิงเส้นซ้ำ
แก้ไข 2: ตอนแรกฉันคิดว่าฉันต้องใช้ ANOVA สองปัจจัยพร้อมมาตรการซ้ำ ๆ บนปัจจัยเดียว แต่ตอนนี้ฉันคิดว่าโมเดลเชิงเส้นผสมเอฟเฟกต์จะทำงานได้ดีขึ้นสำหรับข้อมูลของฉัน ฉันคิดว่าฉันเกือบจะรู้ว่าต้องเกิดอะไรขึ้น แต่ฉันก็ยังสับสนอยู่บ้าง การทดลองที่ฉันต้องวิเคราะห์มีลักษณะเช่นนี้: อาสาสมัครถูกกำหนดให้กับหนึ่งในหลายกลุ่มการรักษา การวัดแต่ละเรื่องถูกถ่ายในหลายวัน ดังนั้น: ผู้ทดลองถูกทำซ้อนในการรักษา รักษาข้ามกับวัน (แต่ละวิชาได้รับมอบหมายให้ทำการรักษาเพียงครั้งเดียวเท่านั้นและจะทำการวัดในแต่ละเรื่องในแต่ละวัน) ชุดข้อมูลของฉันมีข้อมูลต่อไปนี้: Subject = ปัจจัยการปิดกั้น (ปัจจัยสุ่ม) Day = ภายในหัวเรื่องหรือปัจจัยการวัดซ้ำ (ปัจจัยคงที่) การรักษา = ระหว่างปัจจัยเรื่อง (ปัจจัยคงที่) Obs = ตัวแปร (ขึ้นอยู่กับ) ที่วัดได้ อัปเดต ตกลงฉันเลยไปคุยกับนักสถิติ แต่เขาเป็นผู้ใช้ SAS เขาคิดว่าแบบจำลองควรเป็น: การรักษา + วัน + วิชา (การรักษา) + วัน * วิชา …

8
มันถูกต้องหรือไม่ที่จะรวมการวัดพื้นฐานเป็นตัวแปรควบคุมเมื่อทดสอบผลกระทบของตัวแปรอิสระต่อคะแนนการเปลี่ยนแปลง?
ฉันพยายามเรียกใช้การถดถอย OLS: DV: การเปลี่ยนแปลงของน้ำหนักในช่วงหนึ่งปี (น้ำหนักเริ่มต้น - น้ำหนักสุดท้าย) IV: ไม่ว่าคุณจะออกกำลังกายหรือไม่ก็ตาม อย่างไรก็ตามดูเหมือนว่าคนที่มีน้ำหนักมากจะลดน้ำหนักได้มากขึ้นต่อการออกกำลังกายมากกว่าคนที่ผอมลง ดังนั้นฉันต้องการรวมตัวแปรควบคุม: CV: น้ำหนักเริ่มต้นเริ่มต้น อย่างไรก็ตามตอนนี้น้ำหนักเริ่มต้นจะใช้ทั้งสองในการคำนวณตัวแปรตามและเป็นตัวแปรควบคุม ไม่เป็นไร สิ่งนี้ละเมิดสมมติฐานของ OLS หรือไม่

3
เหตุใดจึงมีความแตกต่างระหว่างการคำนวณช่วงความเชื่อมั่นแบบโลจิสติก 95% ด้วยตนเองและการใช้ฟังก์ชัน confint () ใน R
เรียนคุณทุกคน - ฉันสังเกตเห็นบางสิ่งแปลก ๆ ที่ไม่สามารถอธิบายได้ไหม โดยสรุป: แนวทางแบบแมนนวลเพื่อคำนวณช่วงความมั่นใจในโมเดลการถดถอยโลจิสติกและฟังก์ชัน R confint()ให้ผลลัพธ์ที่แตกต่างกัน ฉันเคยผ่านการถดถอยโลจิสติกประยุกต์ของ Hosmer & Lemeshow แล้ว (ฉบับที่ 2) ในบทที่ 3 มีตัวอย่างของการคำนวณอัตราส่วนอัตราต่อรองและช่วงความมั่นใจ 95% ด้วย R ฉันสามารถสร้างโมเดลได้อย่างง่ายดาย: Call: glm(formula = dataset$CHD ~ as.factor(dataset$dich.age), family = "binomial") Deviance Residuals: Min 1Q Median 3Q Max -1.734 -0.847 -0.847 0.709 1.549 Coefficients: Estimate Std. Error z value …
34 r  regression  logistic  confidence-interval  profile-likelihood  correlation  mcmc  error  mixture  measurement  data-augmentation  r  logistic  goodness-of-fit  r  time-series  exponential  descriptive-statistics  average  expected-value  data-visualization  anova  teaching  hypothesis-testing  multivariate-analysis  r  r  mixed-model  clustering  categorical-data  unsupervised-learning  r  logistic  anova  binomial  estimation  variance  expected-value  r  r  anova  mixed-model  multiple-comparisons  repeated-measures  project-management  r  poisson-distribution  control-chart  project-management  regression  residuals  r  distributions  data-visualization  r  unbiased-estimator  kurtosis  expected-value  regression  spss  meta-analysis  r  censoring  regression  classification  data-mining  mixture 

5
การสร้างแบบจำลองข้อมูลระยะยาวที่ผลกระทบของเวลาแตกต่างกันไปในรูปแบบการทำงานระหว่างบุคคล
บริบท : ลองนึกภาพคุณมีการศึกษาระยะยาวซึ่งวัดตัวแปรตาม (DV) สัปดาห์ละครั้งเป็นเวลา 20 สัปดาห์สำหรับผู้เข้าร่วม 200 คน ถึงแม้ว่าฉันจะสนใจ DV ทั่วไป แต่ฉันคิดว่ารวมถึงการทำงานตามการจ้างงานหรือมาตรการความเป็นอยู่ที่หลากหลายหลังจากการแทรกแซงทางจิตวิทยาคลินิก ฉันรู้ว่าการสร้างแบบจำลองหลายระดับสามารถใช้เป็นแบบจำลองความสัมพันธ์ระหว่างเวลาและ DV นอกจากนี้คุณยังสามารถอนุญาตค่าสัมประสิทธิ์ (เช่นการสกัดกั้นความลาดชัน ฯลฯ ) เพื่อเปลี่ยนแปลงระหว่างบุคคลและประเมินค่าเฉพาะสำหรับผู้เข้าร่วม แต่จะเกิดอะไรขึ้นถ้าเมื่อตรวจสอบข้อมูลด้วยสายตาคุณจะพบว่าความสัมพันธ์ระหว่างเวลากับ DV นั้นเป็นอย่างใดอย่างหนึ่งต่อไปนี้: แตกต่างกันในรูปแบบการใช้งาน (อาจมีบางแบบเป็นแบบเส้นตรงและแบบอื่นอาจมีเลขยกกำลังหรือบางแบบอาจมีความไม่ต่อเนื่อง) แตกต่างกันในความแปรปรวนข้อผิดพลาด (บุคคลบางคนมีความผันผวนจากจุดหนึ่งไปยังอีกครั้ง) คำถาม : อะไรจะเป็นวิธีที่ดีในการเข้าถึงแบบจำลองข้อมูลเช่นนี้ โดยเฉพาะวิธีการใดที่ใช้ระบุความสัมพันธ์ประเภทต่าง ๆ ได้ดีและจัดประเภทบุคคลตามประเภทของพวกเขา มีการใช้งานอะไรบ้างใน R สำหรับการวิเคราะห์เช่นนี้? มีการอ้างอิงใด ๆ เกี่ยวกับวิธีการทำเช่นนี้: ตำราหรือแอปพลิเคชันจริง?

1
การเปรียบเทียบแบบจำลองเอฟเฟกต์แบบหลากหลาย
ฉันพยายามวิเคราะห์ข้อมูลบางอย่างโดยใช้แบบจำลองเอฟเฟกต์ผสม ข้อมูลที่ฉันรวบรวมนั้นเป็นตัวแทนของน้ำหนักของสัตว์เล็กที่มีจีโนไทป์ต่างกันตามเวลา ฉันใช้แนวทางที่เสนอที่นี่: https://gribblelab.wordpress.com/2009/03/09/repeated-measures-anova-using-r/ โดยเฉพาะฉันใช้โซลูชัน # 2 ดังนั้นฉันมีสิ่งที่ชอบ require(nlme) model <- lme(weight ~ time * Genotype, random = ~1|Animal/time, data=weights) av <- anova(model) ตอนนี้ฉันต้องการเปรียบเทียบหลายอย่าง ใช้multcompฉันสามารถทำได้: require(multcomp) comp.geno <- glht(model, linfct=mcp(Genotype="Tukey")) print(summary(comp.geno)) และแน่นอนฉันสามารถทำเช่นเดียวกันกับเวลา ฉันมีสองคำถาม: ฉันจะใช้mcpเพื่อดูปฏิสัมพันธ์ระหว่างเวลาและจีโนไทป์ได้อย่างไร เมื่อฉันวิ่งglhtฉันได้รับคำเตือนนี้: covariate interactions found -- default contrast might be inappropriate มันหมายความว่าอะไร? ฉันสามารถเพิกเฉยได้อย่างปลอดภัยหรือไม่? หรือฉันควรทำอย่างไรเพื่อหลีกเลี่ยง แก้ไข: ฉันพบPDF นี้ที่ระบุว่า: …

1
การคำนวณซ้ำของเอฟเฟกต์จากโมเดล lmer
ฉันเพิ่งอ่านบทความนี้ซึ่งอธิบายถึงวิธีการคำนวณความสามารถในการทำซ้ำ (ความน่าเชื่อถือหรือความสัมพันธ์ภายในอินทราเน็ต) ของการวัดผ่านการสร้างแบบจำลองเอฟเฟกต์ผสม รหัส R จะเป็น: #fit the model fit = lmer(dv~(1|unit),data=my_data) #obtain the variance estimates vc = VarCorr(fit) residual_var = attr(vc,'sc')^2 intercept_var = attr(vc$id,'stddev')[1]^2 #compute the unadjusted repeatability R = intercept_var/(intercept_var+residual_var) #compute n0, the repeatability adjustment n = as.data.frame(table(my_data$unit)) k = nrow(n) N = sum(n$Freq) n0 = (N-(sum(n$Freq^2)/N))/(k-1) #compute …
28 mixed-model  reliability  intraclass-correlation  repeatability  spss  factor-analysis  survey  modeling  cross-validation  error  curve-fitting  mediation  correlation  clustering  sampling  machine-learning  probability  classification  metric  r  project-management  optimization  svm  python  dataset  quality-control  checking  clustering  distributions  anova  factor-analysis  exponential  poisson-distribution  generalized-linear-model  deviance  machine-learning  k-nearest-neighbour  r  hypothesis-testing  t-test  r  variance  levenes-test  bayesian  software  bayesian-network  regression  repeated-measures  least-squares  change-scores  variance  chi-squared  variance  nonlinear-regression  regression-coefficients  multiple-comparisons  p-value  r  statistical-significance  excel  sampling  sample  r  distributions  interpretation  goodness-of-fit  normality-assumption  probability  self-study  distributions  references  theory  time-series  clustering  econometrics  binomial  hypothesis-testing  variance  t-test  paired-comparisons  statistical-significance  ab-test  r  references  hypothesis-testing  t-test  normality-assumption  wilcoxon-mann-whitney  central-limit-theorem  t-test  data-visualization  interactive-visualization  goodness-of-fit 

5
ตัวอย่างรายงานการวิเคราะห์แบบผสมโดยใช้ lmer ในชีววิทยาจิตวิทยาและการแพทย์?
เนื่องจากฉันทามติทั่วไปดูเหมือนว่าจะใช้ตัวแบบผสมผ่านทางlmer()ใน R แทน ANOVA แบบคลาสสิก (ด้วยเหตุผลที่อ้างถึงบ่อยครั้งเช่นการออกแบบที่ไม่สมดุลการข้ามเอฟเฟกต์แบบสุ่มเป็นต้น) ฉันต้องการลองกับข้อมูลของฉัน อย่างไรก็ตามฉันกังวลว่าฉันจะสามารถ "ขาย" วิธีการนี้ให้กับหัวหน้างานของฉัน (ซึ่งคาดว่าการวิเคราะห์แบบดั้งเดิมด้วยค่า p ในท้ายที่สุด) หรือในภายหลังกับผู้ตรวจสอบ คุณสามารถแนะนำตัวอย่างที่ดีของบทความที่ตีพิมพ์ที่ใช้แบบจำลองผสมหรือlmer()สำหรับการออกแบบที่แตกต่างกันเช่นมาตรการซ้ำ ๆ หรือหลายแบบภายในและระหว่างเรื่องสำหรับชีววิทยาภาคสนามจิตวิทยาการแพทย์

3
ความแตกต่างระหว่าง MANOVA และ ANOVA มาตรการซ้ำแล้วซ้ำอีก?
อะไรคือความแตกต่างระหว่างการวัด ANOVA ซ้ำ ๆ กับปัจจัยบางอย่าง (พูดว่าเงื่อนไขการทดลอง) และ MANOVA โดยเฉพาะอย่างยิ่งเว็บไซต์หนึ่งที่ฉันสะดุดพบว่า MANOVA ไม่ได้ทำการสันนิษฐานแบบเดียวกันกับความกลมกลืนของมาตรการ ANOVA ซ้ำ ๆ ว่าเป็นเรื่องจริงหรือไม่? ถ้าใช่ทำไมไม่ใช้ MANOVA เสมอ ฉันพยายามดำเนินการมาตรการ ANOVA ซ้ำ ๆ กับ DV หลาย ๆ ตัววิธีที่เหมาะสมคืออะไร?

2
เหตุใด lme และ aov จึงให้ผลลัพธ์ที่แตกต่างกันสำหรับมาตรการ ANOVA ใน R ซ้ำ ๆ
ฉันกำลังพยายามเปลี่ยนจากการใช้ezแพคเกจเป็นlmeมาตรการ ANOVA ซ้ำ ๆ (เพราะฉันหวังว่าฉันจะสามารถใช้ความแตกต่างที่กำหนดเองได้ด้วยlme) ตามคำแนะนำจากบล็อกนี้โพสต์ก็สามารถที่จะตั้งค่ารูปแบบเดียวกันโดยใช้ทั้งaov(เช่นเดียวกับezเมื่อมีการร้องขอ) lmeและ อย่างไรก็ตามในตัวอย่างที่ให้ไว้ในโพสต์ค่าFเห็นด้วยอย่างสมบูรณ์ระหว่างaovและlme(ฉันตรวจสอบและพวกเขาทำ) นี่ไม่ใช่กรณีของข้อมูลของฉัน ถึงแม้ว่าค่าFจะใกล้เคียงกัน แต่ก็ไม่เหมือนกัน aovส่งคืนค่า f ที่ 1.3399, lmeส่งคืน 1.36264 ฉันยินดีที่จะยอมรับaovผลลัพธ์ว่า "ถูกต้อง" เนื่องจากนี่คือสิ่งที่ SPSS ส่งคืน (และนี่คือสิ่งที่นับให้กับฟิลด์ / หัวหน้างานของฉัน) คำถาม: มันจะดีถ้ามีคนอธิบายได้ว่าทำไมความแตกต่างนี้จึงมีอยู่และฉันจะใช้lmeเพื่อให้ผลลัพธ์ที่น่าเชื่อถือ (ฉันก็ยินดีที่จะใช้lmerแทนlmeสิ่งประเภทนี้ถ้ามันให้ผลลัพธ์ "ถูกต้อง" อย่างไรก็ตามฉันยังไม่ได้ใช้จนถึงตอนนี้) หลังจากแก้ปัญหานี้แล้วฉันต้องการเรียกใช้การวิเคราะห์ความเปรียบต่าง โดยเฉพาะฉันจะสนใจความแตกต่างของการรวมสองระดับแรกของปัจจัย (เช่นc("MP", "MT")) และเปรียบเทียบสิ่งนี้กับระดับที่สามของปัจจัย (เช่น"AC") นอกจากนี้การทดสอบระดับที่สามกับระดับที่สี่ของปัจจัย (เช่น"AC"กับ"DA") ข้อมูล: tau.base <- structure(list(id = structure(c(1L, 2L, 3L, 4L, 5L, 6L, 7L, …

3
โพสต์ทดสอบเฉพาะกิจหลังจาก ANOVA พร้อมมาตรการซ้ำโดยใช้ R
ฉันใช้ ANOVA ในมาตรการ R ซ้ำแล้วซ้ำอีกดังนี้: aov_velocity = aov(Velocity ~ Material + Error(Subject/(Material)), data=scrd) summary(aov_velocity) ซินแท็กซ์ใดบ้างใน R ที่สามารถใช้ในการทำการทดสอบหลังการทำ ANOVA ด้วยมาตรการซ้ำ การทดสอบของ Tukey กับการแก้ไข Bonferroni จะเหมาะสมหรือไม่ ถ้าเป็นเช่นนั้นสิ่งนี้สามารถทำได้ใน R?

2
มันสมเหตุสมผลหรือไม่ที่เอฟเฟกต์คงที่จะถูกซ้อนภายในแบบสุ่มหรือวิธีการกำหนดมาตรการซ้ำ ๆ ใน R (aov และ lmer)
ฉันได้ดูภาพรวมของสูตร lm / lmer R โดย @conjugatepriorและสับสนโดยรายการต่อไปนี้: ทีนี้สมมติว่า A สุ่ม แต่ B ได้รับการแก้ไขและ B ถูกซ้อนภายใน A aov(Y ~ B + Error(A/B), data=d) ด้านล่างสูตรโมเดลผสมแบบอะนาล็อกlmer(Y ~ B + (1 | A:B), data=d) มีไว้สำหรับกรณีเดียวกัน ฉันไม่เข้าใจความหมายของมัน ในการทดลองที่วิชาถูกแบ่งออกเป็นหลายกลุ่มเราจะมีปัจจัยสุ่ม (วิชา) ซ้อนอยู่ภายในปัจจัยคงที่ (กลุ่ม) แต่ปัจจัยคงที่สามารถซ้อนภายในปัจจัยสุ่มได้อย่างไร มีการแก้ไขบางอย่างซ้อนกันภายในวิชาแบบสุ่มหรือไม่ เป็นไปได้ไหม หากเป็นไปไม่ได้สูตร R เหล่านี้มีเหตุผลหรือไม่ ภาพรวมนี้เป็นที่กล่าวถึงให้เป็นไปตามบางส่วนบนหน้าบุคลิกภาพของโครงการในการทำ ANOVA ใน Rตามตัวเองเกี่ยวกับเรื่องนี้สอนเกี่ยวกับวัดซ้ำใน R มีตัวอย่างต่อไปนี้สำหรับการวัดซ้ำ ANOVA ที่ได้รับ: …

1
แสดงให้เห็นว่าการวัด 100 ครั้งสำหรับ 5 วัตถุให้ข้อมูลน้อยกว่าการวัด 5 ครั้งสำหรับ 100 วัตถุ
ในการประชุมฉันได้ยินคำสั่งต่อไปนี้: การวัด 100 ครั้งสำหรับ 5 วิชาให้ข้อมูลน้อยกว่าการวัด 5 รายการสำหรับ 100 วิชา เห็นได้ชัดว่ามันเป็นเรื่องจริง แต่ฉันสงสัยว่าจะพิสูจน์ได้ในเชิงคณิตศาสตร์อย่างไร ... ฉันคิดว่าแบบจำลองเชิงเส้นผสมสามารถใช้งานได้ อย่างไรก็ตามฉันไม่รู้อะไรมากเกี่ยวกับคณิตศาสตร์ที่ใช้ในการประมาณค่า (ฉันเพิ่งเรียกใช้lmer4สำหรับ LMM และbmrsสำหรับ GLMMs) คุณช่วยแสดงตัวอย่างของสิ่งที่เป็นจริงได้ไหม ฉันต้องการคำตอบกับสูตรบางอย่างมากกว่าแค่บางโค้ดใน R. รู้สึกอิสระที่จะตั้งค่าอย่างง่ายเช่นตัวแบบผสมแบบเชิงเส้นที่มีการสกัดแบบสุ่มและการลาดชันแบบกระจายตามปกติ ป.ล. คำตอบทางคณิตศาสตร์ที่ไม่เกี่ยวข้องกับ LMM ก็ถือว่าใช้ได้เช่นกัน ฉันคิดถึง LMM เพราะพวกเขาดูเหมือนจะเป็นเครื่องมือตามธรรมชาติที่จะอธิบายว่าทำไมการวัดน้อยลงจากวิชาเพิ่มเติมนั้นดีกว่าการวัดเพิ่มเติมจากบางวิชา แต่ฉันอาจผิด

5
โพสต์ -hocs สำหรับการทดสอบภายในวิชา?
วิธีการที่ต้องการสำหรับการทำ post-hocs สำหรับการทดสอบในวิชาคืออะไร? ฉันเคยเห็นงานตีพิมพ์ที่มีการใช้ HSD ของ Tukey แต่การตรวจสอบ Keppel และ Maxwell & Delaney ชี้ให้เห็นว่าการละเมิดความกลมกลืนในการออกแบบเหล่านี้ทำให้คำผิดพลาดไม่ถูกต้องและวิธีนี้เป็นปัญหา Maxwell & Delaney ให้แนวทางในการแก้ไขปัญหาในหนังสือของพวกเขา แต่ฉันไม่เคยเห็นมันทำอย่างนั้นในแพคเกจสถิติใด ๆ พวกเขาเสนอวิธีการที่เหมาะสมหรือไม่ การแก้ไข Bonferroni หรือ Sidak ของการทดสอบตัวอย่างแบบหลายคู่จะสมเหตุสมผลหรือไม่ คำตอบที่ยอมรับได้จะให้รหัส R ทั่วไปที่สามารถดำเนินการโพสต์ hocs ในการออกแบบที่เรียบง่ายหลายทางและผสมที่ผลิตโดยezANOVAฟังก์ชั่นในezแพคเกจและการอ้างอิงที่เหมาะสมที่มีแนวโน้มที่จะผ่านการชุมนุมกับผู้ตรวจสอบ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.