WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

chi2 für Häufigkeitstabelle zweier Merkmale Fehler

 

Schröder

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.01.2020, 11:08     Titel: chi2 für Häufigkeitstabelle zweier Merkmale Fehler
  Antworten mit Zitat      
es soll eine Prozedur programmieert werden für eine Häufigkeitstabelle die die quadratische Kontingenz chi2 berechnet.
Inputparameter: die Häufigkeitstabelle und Konfidenzniveau. wenn kein Konfidenzniveau angegeben: soll WErt 95% eingestellt sein.
Outputparameter: chi2 und w, der 1 ist wenn wenn H0 abgelehnt werden muss, sonst 0.

Hier meine Prozedur. Leider läuft es nicht.

Code:
function [chi2,w] = chi2(n,1-alpha)
%%Berechnen der quadratischen Kontigenz chi² für Häufigkeitstabelle für
%%zwei Merkmale
%H0=Die Merkmale sind stochastisch unabhängig
%H1=Die Merkmale sind stochastisch abhängig
%Ablehnung von H0 wenn chi2>chi2(k-1)*(l-1); 1-alpha
n=input('Eingabe einer Matrix')
alpha=input('Eingabe eines Wertes zwischen 0 und 1')
if alpha>1
    error('Deine Zahl ist zu groß. Bitte eine Zahl zwischen 0 und 1 eingeben')
elseif alpha<1
    error('Deine Zahl ist zu klein. Bitte eine Zahl zwischen 0 und 1 eingeben')
end
%Berechnung von chi2 als Prüfgröße
absHeufigkeit1=sum(n,2);
absHaeufigkeit2=sum(n,1);
Erwartung=absHaeufigkeit1*absHaeufigkeit2;
b=((n-erwarteteHaeufigkeit).^2)./erwarteteHaeufigkeit;
chiquadrat=sum(b(:));
%Berechnung kritischer Wert
[numRows,numCols]=size(a);

kritWert=chi2inv(1-0.05, (numRows-1)*(numCols-1))

if chiquadrat>kritWert
    erg=('w=1')
else chiquadrat<kritWert
    erg=('w=0')
 


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.432
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 11.01.2020, 13:24     Titel:
  Antworten mit Zitat      
Hallo,

auf den ersten Blick sehe ich ein fehlendes end ganz am Ende.
Die elseif-Abfrage sollte wohl alpha < 0 statt alpha < 1 sein.
Zudem sind n und alpha Eingabeargumente der Funktion, d.h. sie sollten auch beim Aufruf übergeben und nicht über input-Befehle abgefragt werden.

Ansonsten: was heißt "Leider läuft es nicht"? Bekommst du eine Fehlermeldung? Welche? Ein unerwartetes Verhalten? Für welche Inputs und wie weicht das Verhalten vom erwarteten ab?

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.